A PM’s guide to introducing offline mode in your mobile app

A superior software product is one that is informative yet concise, simple yet empowering, and above all, seamless. Product managers strive to build the best software/ apps for their customers — to take those very customers through a smooth journey towards achieving their goals with the product.

In this endless process of delivering the best user experience, product managers often come across ‘Uh-oh! No internet connection’ as a major show-stopper. While cloud software on the web steers clear of this scenario by stating internet connection as a minimum requirement, it is not the same as mobile apps. With an increasing number of mobile apps being developed on an offline-first approach, and given the portability of mobile devices across different networks, it is only a matter of time before ‘offline mode’ becomes a norm for every app.

If you’re about to make your mobile app work without network connectivity, here are some questions you need to have answers for.

1 What data/ features should be available offline?
Apps like Facebook let you view cached posts, reactions, friend requests, and a lot of other data while offline, whereas Netflix only shows manually downloaded content. You need to be clear on what users would do with your app while offline and so, what data you should cache.

2 Should users consume data (read-only), or should they perform actions while offline?
If you check Google Pay while offline, you can see the transactions you’ve made earlier, but you cannot initiate a new transaction. On the other hand, Gmail lets you view your inbox and even draft responses that get sent when internet connectivity is restored.

3 If the latter, how should conflict resolutions be handled while syncing?
One of the most important and time-consuming decision is conflict resolution. This will require multiple stakeholders to be involved and be one of the high-impact areas as data across channels will be modified.
Some thoughts around this will be:
If an offline user updates a document while another online user updates the same document at the same time, whose change will be included in the final version?”
“Should there be an automatic overwrite, or should there be an approver role in managing such conflicts manually?

4 How often should data be refreshed?
This is tricky, and there is no right answer for this. Depending on the app's utility and how important it is for users to see the most recent data, you may need to strike a balance between refresh frequency and the impact on the device battery.

5 How will the user experience(UX) be?

Can users choose what data they want downloaded on their device?

How will they know that they’re using the app in offline mode and not necessarily viewing the latest data?

Should we display a persistent banner? Will specific icons be disabled or hidden?

How will the app behave when users get disconnected intermittently?

Have internet connectivity error messages been handled appropriately in the app so far?

How will these messages be handled now with an offline mode?

Will users be able to see the last synced time?

Can users manually sync data?

6 What should be the limit of data available offline?
Here again, you need to be cognizant of how much data your app downloads for offline use as both device space and data consumption are precious. When limiting data, you can think about the size of data downloaded, say 50MB, or the number of unique items downloaded, say 100 posts.

7How long should the offline data be available?
Sometimes stale data may be misleading or maybe a security concern, depending on your industry. Make sure this is looked into if the app especially handles sensitive data. Along the same security lines, you need to ensure that the data downloaded is deleted when the user signs out of the app and that it is securely stored on the device until then.

Rolling out an offline mode is not the end of the journey. For every new feature that gets launched after this, remember to add offline behavior to the design and specifications.