Importance of offline compatible apps

When to go offline compatible?

When designing an application, it is important to consider the areas in which is will be used, for example a busy city or remote location. At Atom Engine we consider offline compatibility just as important in both of these cases. In this article we will explain the various reasons why.

1.Better user experience

If we take an example of a shopping app where a user has found and selected a product to view. The data is downloaded and after a short period of loading a pretty product detail page is shown. We would always recommend creating a cache of this product page meaning that when the product is viewed again the product detail page is shown instantly. We would also store the time this record had been cached and use that to know when a refresh from the server is required.

As you can see this approach would slowly build up a local store of data resulting in much quicker browsing as well as allowing the user to browse previous items without the need for a data connection.

2.Constant availability

For companies using mobile apps, the last thing they want is their staff sitting watching a loading message or running around the room trying to grab an inch of signal. By replicating the online data structure on the phone, mobile apps are able to take ‘snapshots’ when they are in good coverage areas. They can then update the snapshot of the database on site whilst being completely offline and re-sync on completion. Over the years we have developed complex conflict management data systems to cater for such synchronisations.

3.Save battery

Network connections are particularly heavy on battery usage. Good offline compatible apps store information and reduce network connections where possible. High battery usage is a major concern for users, those apps with a constant high battery usage are much more likely to be deleted.

4. Speed

Offline datasets can be searched almost instantly. A large dataset sent all at once is much more efficient on network usage compared to downloading each record on demand. A large proportion of each network connection is actually made up of establishing and closing it.  By using clever machine learning techniques of what a user is likely to want to see developers can download relevant data in one API call resulting in lightening fast offline searches. These searches can be backed up with a background network search if results are not present. This sort of offline first approach is our preference as it results in quick, as well as up to date results.

Offline storage methods

There are tons of ways to store mobile app data offline. By far our preferred method is using a SQLite based solution Realm https://realm.io/. It far out performs other solutions we have used such as iOS’s CoreData and standard SQLite and is available on iOS, Android and Javascript. It also offers great encryption to ensure data stored locally is secure. For any developer wanting to make their apps offline compatible we definitely recommend Realm.

If you would like to talk to us more about offline compatibility, or you have a project in mind, please get in touch.