[Offline Apps] Readonly Native Mobile App

[Offline Apps] Readonly Native Mobile App

Forge Component
Published on 2015-11-19 by Labs
26 votes
Published on 2015-11-19 by Labs
I have an application with a module for a read-only mobile app. There are only three pages in the app that show data - a google map, list and detail pages.

The data for the app comes from a webservice with only one 'table' returned althoug the records store the html path to web based images and the images would need to be downloaded to local cache also.

I'm trying to make the app as responsive as possible (speed not layout).  To do that I'd like to force the caching of all resources and data upon first run of the application, storing the data offline in a local file and loading in the preparation fo the map, list and detail screens.  There is never any need to send data back to the server. 

Any help on the best way to go about it would be appreciated.

Updating the data cache will need to be done from time-to-time but I'm thinking a push notification asking the user to update when on wifi that triggers an action may be a good way.

Gavin Horne
Hi Gavin,

That certainly looks feasible. Here are some notes:

  • Google maps might require an online connection
  • The Offline Apps component does not have support for dynamic images, although it should not be very hard to implement something like an AddURLToCacheManifest method
In any case, if you take a deep look into the internals of existing component, I'm pretty sure you'll be able to get an idea of what you need to do.

Although your application seems to be simple, be prepared to spend some time into making it offline, mainly because of the challenges stated above, because HTML5 cache manifest technology is not that easy, and because javascript is too easy to break.

Feel free to add more specific questions here, and don't forget to share your work (dynamic images support certainly sounds like something interesting to add to this component :)).

Tiago Simões


Thanks Tiago, I'll defintely share my work and my problems :)