It’s a familiar experience: You’re on the subway using an app on your phone or tablet, when suddenly you lose network coverage. Without warning, the app becomes completely unusable.
Applications are all too often designed on the assumption that connectivity is ubiquitous. But we all know that even in the most connected metropolis, loss of coverage is an everyday reality that degrades the user experience.
While inability to check e-mail on the subway is a mild annoyance, connection loss can have more serious ramifications as critical services are conducted online. Web, mobile and IoT applications play a huge role in creating economic growth and promoting healthier communities in developing countries, which are often the very places that lack the infrastructure for consistent connectivity. The reality is that humans are dependent on applications, and in the absence of constant connectivity, developers need to turn their attention to offline functionality.
Feeding the goldfish
It’s widely acknowledged that consumers are more easily distracted than ever. A 2015 report revealed that average attention spans declined from 12 seconds to eight between 2000 and 2013 (memorably noting that even the humble goldfish has more ability to focus than the average human). So if an app becomes unresponsive because the connection is weak or intermittent, users are likely to switch their attention to another app or website. After repeat offenses of your service being slow or unreliable whenever its connection falters, these users are likely gone for good.
Data usage is another concern, as most consumers have monthly data limits built into their smartphone or tablet contract. If using an app eats up too much of their data allowance, they will simply look for alternatives.
On the business side, more and more of us rely on web and mobile apps in our working lives as company operations become increasingly mobile. Unlike consumers, mobile professionals might not have the luxury of abandoning an app when its connectivity fails.
The paradox is that in an increasingly connected world, offline functionality has become a bigger differentiator than ever before precisely because it is so often passed over in favor of online-only features. This presents an opportunity for app developers to flip their approach and meet the expectations that customers didn’t know they had: a user experience that doesn’t depend on connectivity.
Fundamental change in app design
The key to meeting this challenge is to fundamentally rethink how we build apps. Specifically, it’s time to start thinking “Offline First.”
Offline First (a concept that dates back at least as far as a 2013 blog post by Alex Feyerke) means, in general, that an app should deliver core functionality in the absence of network connectivity and progressively enhance its capabilities to take advantage of connectivity when available. For example, periodic connections to the Internet could allow it to update content, sync local data, or enable enhanced location features.
Historically, app developers haven’t used the Offline First approach because it has been much easier to let the back end handle all data access requirements. Keeping data management on the server-side results in a clean and simple architecture and less front-end code to write.
Fortunately, taking an Offline First approach is becoming easier with the rise of offline-friendly data stores like Apache CouchDB or PouchDB. The advanced replication and syncing capabilities of these clustering document databases have dramatically reduced the difficulty and cost of building and maintaining applications that sync data between the client and a central cloud data store.
A great example of Offline First success is YukonBaby, a project funded by the Technology Innovation program of the Yukon Research Centre and the Yukon government’s Health and Social Services department. The app lets expecting parents in remote areas look up information even when connectivity drops. This is possible because the YukonBaby app will automatically download new content to the mobile device whenever a connection is available. YukonBaby keeps data costs low for users because it only updates data that has changed since the previous sync.
YukonBaby is among a first wave of companies that see an Offline First philosophy as essential to the core of their business operations. As technology supporting reliable, scalable offline replication becomes more widely understood, both B2C and B2B application developers need to take note: Apps that only work well when there’s a fast and reliable network with great coverage will soon be a thing of the past.