Mobility planning with planes, subways, dead zones in mind
Although it sometimes seems that we live in a world of ubiquitous connectivity, there are times mobile devices will be offline. Whether organizations are building applications to serve their customers or crafting internal-facing business tools, enterprises would be wise to consider those times mobile devices won't be online rather than developing for an unrealistic, always-on world.
"When it comes to building apps, we often assume our users are very much like us. We picture them with the latest devices, the most recent software and the fastest connections," writes Berlin-based freelance developer Alex Feyerke in a recent post at A List Apart. The fact that app users will at some point be offline is simply a fact of life, he adds.
Not every application is dependent on a robust connection, notes Feyerke. For example email is still usable offline. It's simple and expected that once a connection is restored, whatever is in the outbox sends and whatever is waiting to be received arrives in the inbox.
Email does this by creating local copies and storing them until server access is back, but, for apps things are a bit more complicated. In-browser databases are maturing but Feyerke says there are still not many options for solving this problem. Developers need a strong catalog of guides and patterns for offline scenarios, he says.
Until there's more precedent in this area, Feyerke suggests developers take the following considerations into account when constructing apps:
Communicate when connectivity is lost and note what functionality in the app is suspended
Enable some features offline, such as client-side creation and editing
Disable, modify or hide what doesn't work offline, for example "send" buttons can turn into "send later" buttons.
Feyerke notes that many apps fail because they cannot adapt to an offline environment; however, it's a challenge developers have largely addressed alone without tapping collective knowledge on the issue. Feyerke and others created a GitHub resource for app creators to learn more about developing for offline first, which they hope will become a central repository for information on this development challenge.
- read the post at A List Apart