Advice on how to achieve cross-platform offline mobile storage

36 views
Skip to first unread message

Vikram Sitaram

unread,
Apr 16, 2015, 7:09:46 PM4/16/15
to mobile-...@googlegroups.com
Hello!

The firm that I work for is venturing into building a cross-platform mobile app for sales folks that are "out in the field".
As a part of this, offline data storage (both text and images) is a critical requirement and we estimate that we will have several hundred MB of data that we need stored on the device.
We are in the process of evaluating various Cordova-based tools including Adobe PhoneGap, Intel XDK, Visual Studio (with the Cordova plugin) and IBM MobileFirst.
The part where we are struggling is in trying to understand what device-based data storage we should use and the how we should sync the offline data with our database server.

Our data is stored on Oracle and SQL server databases and this data will need to sync with the offline data stored on a device.
We are trying to determine what would be the best way to achieve this and we would love to hear of the approach that you took to implementing this and the challenges faced in doing this.

With regard to device storage we have considered the following so far:
1. localStorage - very basic (name/value pair storage) and seems to have limitations on the total amount of data that we can store
2. IndexedDB - looks like a promising candidate but seems to have serious shortcoming with regard to it's implementation on iOS 8.
3. SQLite - is available on all platforms but we are unsure as to the app performance in being able to store, retrieve and modify thousands of records when offline.
4. File API - provides both read and write access to store data but we will need to manage the data structure within the file ourselves.

Any additional advice/suggestions that you have based on past experience would very helpful.

Regards,
Vikram

Leon Yeh

unread,
Apr 19, 2015, 4:49:48 PM4/19/15
to mobile-...@googlegroups.com
Have you checked Firebase ?

Sent from my iPhone
--
You received this message because you are subscribed to the Google Groups "Mobile Portland" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mobile-portla...@googlegroups.com.
To post to this group, send email to mobile-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mobile-portland.
For more options, visit https://groups.google.com/d/optout.

Lokkju Brennr

unread,
Apr 19, 2015, 5:04:38 PM4/19/15
to mobile-...@googlegroups.com
I'm a bit biased, as I've been working with SQLite for years, both for servers and for embedded devices.  I've found that SQLite is *very* performant, in some cases (as an in-memory database), more so than using a traditional RDBMS - even on heavy duty hardware.
I haven't used it extensively on a phone platform, but I did use it on embedded devices a few years back, for a white-box navigation device.  We had no problems running heavy duty geospatial queries against it, with an approximately 4GB database with hundreds of tables and millions of records; and this was on a crappy 600Mhz ARM CPU, with 64MB of RAM.

For your synchronization problem, using SQLite gives you something of a head start, as there are multiple commercial solutions for remote database synchronization.  There is also one open source solution that has been recommended to me as worth checking out in the past, but I've not used it yet - http://www.symmetricds.org/ .  Of course, rolling your own synchronization is an option - depends on how complex your needs are.

~ Loki

Brent

unread,
Apr 25, 2015, 3:40:51 PM4/25/15
to mobile-...@googlegroups.com
This blog from Raymond Camden may help you.  I think he experiments with the same stack that you are developing with.
Reply all
Reply to author
Forward
0 new messages