Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

DataService - offline data / incremental load

Avatar

Level 1

Hello,

We're working on a mobile app with offline mode, and got a few questions to cover in order to design the best solution.

1. When we enabled offline caching for DataService with approach including setting DataService.cacheID peroperty, it worked, but it was way too slow.

It seems that saving cached data into local SQLite DB is too slow on iPad.

Example: online data (no caching): 1000 objects loaded in 2 secs (incuding DB call and ADEP processing); offline data (w/ caching): 1000 objects loaded in 5 secs, and app is freezing on iPad after data receved from server and storing locally.

Question 1.1: do you have any performance stats / limitations on the SQLite storage managed by ADEP libraries on mobile devices (iPad)?

Question 1.2: is there anything we should adjust on DataSevice level to speedup data storage?

Question 1.3: custom offline adapters are using the same SQLite approach. Is there any other approach that we can use for a faster data caching to work with DataService?

2. We want to store some part of database locally (SQLite or other storage), but if we want to reload data, we don't want to load a full dataset.

The solution woul dbe to load initial data set on first start. Then when needed - load only data that were changed on a database server.

Question 2.1: is there a way to incrementally load data (a new .fill() with params that define a last change timestamp), but keep the whole collection managed?

I saw a similar question here: http://forums.adobe.com/message/4465780#4465780 but there was no reply.

3. The full offline support for user means that all (s)he changed is stored on device and on app restart or even version update the data will be stored and changes commited on next online session.

Question 3.1: how can we store the DataService instance in local storage, so that on next app start/connection the DataService will be able to connect and commit the changes?

I would really appreciate any comments that will help us to find the best solution from both stability and performance points of view.

Thanks,

Ivan

0 Replies