Offline Native Mobile applications

Official Content
This documentation is valid for:

Offline Native Mobile applications are applications that can execute in scenarios of limited or without connection.

Why is this so important?

Because, even though there are many wifi hotspots and 3G connections, there are still places where the connectivity is limited or null, and some applications have to be able to get, insert, update or delete data on its own, without the intervention of a web server.

Even though offline applications can work on their own, it is very common for this kind of apps to be part of a bigger system. This is why this kind of applications is not thought to work on a completely isolated environment forever, at some point they are going to communicate with a server, at least to check if everything is ok. For this kind of application, for sure, a server counterpart is going to exist and the interaction with it is something the application needs to take care of.

Offline Knowledge

The key component of an offline application (and the main difference with Online Applications) is the local database and local processing of the business logic. This local database is a subset of this big system's database. This subset is an independent database where the Native Mobile application reads and writes data. This is different from an Online Native Mobile Application where all the application's data is received from the server in real-time.

Because of this, online applications cannot execute any action involving data when the connection is down or partially down: online applications may use a caché, but cannot insert or update data if the server cannot be reached.

Scenarios and architecture

Offline Applications, as described in many of the Offline Native Mobile Applications Scenarios, will have a server backend they are going to communicate with. The architecture of the whole system is going to be very similar to the one explained on the Offline Native Mobile applications architecture document. The communication with this server is mainly to send/receive data, for this reason the data synchronization is a key concept on this kind of application.

See also