Your connection is lost in the middle of a payment via a mobile app and you keep wondering where that money went.
Now imagine, a patient wearing an IoT monitoring device when the connection fails. The medical data gets lost forever.
A user of a map app is trying to follow the verbal instructions on his smart phone while driving to a job interview. His connection dies, he becomes lost and is late for the interview. Now he is trying to explain to the hiring manager, who is clearly irritated. Big fail.
How About a New Scenario?
That user of the map app doesn’t lose his directions. They continue. How? When he connected and requested those directions, they were loaded into his device where they sit and continue until he has arrived at his destination. Payments can continue offline and be processed once back online; that medical provider can access the data from the monitor once it is back online and so on.
And this is precisely why building offline mobile applications is both critical and a huge trend.
As early as 2010, developers began to figure out ways that computers could continue to work offline.
In 2014, Google rolled out offline support for its both Android and iOS map apps. It also developed an offline version of Google Search and enhanced the offline capabilities of its Chromebook. It was soon followed by Facebook, allowing users to create content for later posting. Square also “joined the club.”
Since these events in 2014, there has been a rush to build offline mobile apps on the part of all types of mobile app developers. As it turned out, the ability to make apps work offline has been a relatively simple procedure.
Why You Should Support Offline Mode
Let’s consider a few stats first, and then what those implications might be for offline business apps.
As of March 2017, the lowest penetration of internet access is still Africa and Asia (China excluded). However, between 2000-2017, that penetration has increased by 7,557.2% and 1,539.4% respectively. And this shows no sign of stopping. This is a huge population of current and potential app users. Unfortunately, infrastructure still lags and consistent connectivity is a big issue.
Many in Africa and Asia do not have geographical access to banks and have never used them. They bank and shop using fintech apps when they make purchases; they access apps that provide news and education because they have skipped the whole “television” thing. Many are involved in online education programs because they do not have the wherewithal to get to physical institutions.
Even in the U.S., it is estimated that 15% of users are actually using offline apps at any given time. They are on airplanes; they are on subways; they are in areas famous for “dead zones”.
Businesses and organizations that do not build an offline app mode lose all of these people. The implications for e-commerce are obvious – customers (and thus revenues) are lost. But here are some other losses that organizations can incur.
Online news agencies depend upon large followings. When they have large followings, they get more advertisers (revenue again) and, if in early startup phases – investors. One of the things that an offline app can do is continue to track readership even when users are not connected. That business traveler who has downloaded a daily newspaper before getting on an airplane is reading that newspaper in the air, and he will be counted. The ability to add another 15% to readership can have financial consequences.
Educational enterprises, both for-profit and non-profit can ensure that their students will have the lessons and the assignments they need to complete their coursework. For-profit institutions ensure more revenue, and non-profit ones can prove their enrollment and retention figures.
Medical institutions. When medical care has to be remote, data that must be transported between providers and between patients and their providers will never be lost.
How Offline Apps Are Developed
To make an app work offline, you can chose either of the next approaches:
- Use local storage/database to cache data on the user’s device.
- Enable data synchronization with a central repository.
In the first case, you can take advantage of the browser application and set up an app cache manifest, which would prompt the browser to render the downloaded pages and content in certain ways, when no network connection is available.
You can also rely on cookies for storing downloaded user data. However, those can support only 4KB of data. Their nature isn’t long term either.
Additionally, you can rely on internal device storage and retrieve it whenever there’s no network connection. Or better, use an SQLite database to store files externally. It’s a powerful open source database system supporting all mobile platforms (iOS, Android, Windows Phone), which can store and retrieve large chunks of data at lightning speed.
Data synchronization will allow you to add more interactivity to your app in offline mode. In that case, users would be able to perform certain actions in offline mode e.g. add favorite items to wishlists or edit documents and have that data synced once they are connected to the network again.
There are multiple approaches to enabling data sync within an app, yet the golden rule here is to use the simplest implementation that meets the requirements. In a nutshell, that how offline apps are developed.
Features You Can’t Ignore
Now, if you study how some of the most popular apps operate in offline mode, you will experience some great features and some not-so-great ones.
As you scrutinize these, you can then identify those features that will be important for you to include in your own offline app development. Here are a couple of tips that will help you weigh the pros and cons of offline apps:
Be consistent with messaging, especially informing the user that they are now offline.
Create a custom screen informing the user what they can and cannot do and what kind of data will be saved. Instagram recently introduced offline mode for Android users, which supports a lot of common online interactions:
As users access cached pages, be certain that there are messages for them. For example, when a user creates a Facebook post, they are told that the message will not post and why, but also that the post will be submitted as soon as the user is back online.
Consider a page that lists all of the things your users can do when using the offline app.
If you have multiple apps a list of those that will work offline will be very useful. Google lists these for its users, both in its app store and for users of Chrome.
Source: Google Play
Inform Users About Data Sync
If your app is collecting important information or data (e.g., payment or medical), then be certain that users know that a sync with the database exists and that the data will be moved into that database upon connectivity.
Test your app regularly
When an offline app is first developed, it must be treated as any online app. Every function must be tested. You can do this using AWS Device Farm.
Experiment with offline connectivity.
Though it has not gained a great deal of popularity yet (there are certain requirements and bugs still to work out), there are methods by which someone can actually get online without a connection on their device. This is called “mesh networking” or “peer-to-peer” connections.
Wireless mesh networks use radio nodes that can connect devices with wireless mesh. A type of chain is developed from one device to the next and, ultimately to a device with internet connectivity.
The important thing is that you identify all that you want your offline app to do for your users and that you find the right people to then develop according to your specifications.
Developing an offline app mode will involve additional time and cost, but not all that much if you find the right developer. You really have nothing to lose and quite a bit to gain if you do!