The Offline World
Author: Adi Deutscher
When designing mobile applications there are many questions to consider, including which device to choose, should it be native or not, and which OS should it be compatible with. One question sometimes remains overlooked: should the application support offline mode?
What is offline you ask? Good question. It doesn’t mean that the application will work with absolutely no internet connection with predefined data. It simply means that it can continue working even if the internet connection is lost for a small period of time (like when using the elevator), or for a large period of time (while flying or in remote areas). The application will continue working, and will know to automatically sync all the data and all the performed actions when it regains connectivity.
So how is it done? Most browsers allow the application to use an embedded database (such as SQLite) or to connect to a local database if it’s a native application, or in some cases just a regular file. Such capability will allow storing all the required operational data while loading (so when the application loses its connection it will have all the required data to continue working with no interruptions). In addition, the application will store all the added data by the user in the local database so that once connection is regained, it can pull all the entered data and sync.
When designing a mobile application, you need to consider how many of your users will use this mode and therefore use the right method to prepare local storage support accordingly.
Another aspect of working off-line is the authentication and security. Some mobile applications, especially enterprise applications, require some sort of security mechanism, and in most cases can be done on the web site level (IIS for example). While working offline, applications now have the ability to authenticate remotely. So when designing apps today, local authentication should be available.
In summary, there is no downside to working offline and if the application needs to work in this mode, you don’t need to ask yourself “should I support it or not?” You simply must support it.