Offline Smart Devices 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 are not thought to work on a completly isolated environment forever, at some point they are going to comunicate with a server, at least to check if everything is ok. For this kind of applications, 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 Smart Device application reads and writes data. This is different from an Online Smart Devices 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 comunicate 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 applications.

See also