Offline experience of apps

Provide an offline experience by default

If your app doesn't require much data, then cache that data by default. Users can become increasingly frustrated if they can only access their data with a network connection. Try to make the experience as stable as possible. An unstable connection will make your app feel untrustworthy, where an app that lessens the impact of a network failure will feel magical to the user.

  • You’re on a flight, and you don’t want to pay for WiFi.
  • You’re on a trip in a remote location.
  • You can’t afford a data plan for your phone.
  • Poor coverage of a provider.
  • Extreme weather conditions.
  • Traveling on a train and going through a tunnel.
  • Internet connection is managed by a third party and time-boxed when it will be active or inactive like in an airport or hotel.

Offer key content and functionally for offline usage

Ideally, your app should work equally well when users are offline and online. If your app doesn’t require a lot of data, then you should cache all data by default.

In this case, it’s recommended to adapt to connection — load available content and cache it while users are online (auto-download and auto-save it locally on the device). It will help you create engagement even when the user is offline.

Inform users of their current state and change of state

Educate the user so they understand what they can do in the offline mode. Add this information to user onboarding.

Save user’s in-app progress

Reassure users that their progress will be saved and no data that they’ve entered be deleted. For example, when a first-time user writes a new message and taps “Send” in messenger, they should have a reassuring message “Message will be sent when the connection is restored.” For regular users, it will be enough to have a visual indication of progress.