There is an expectation for constant connectivity today. We’ve all experienced the frustration of not being able to access email on the subway or needing an urgent file on the road but being in a dead spot.
That’s why it’s surprising for me to continue to see mobile development teams neglect a vital part of their applications: making sure they work offline. It seems counter-intuitive, yet it’s one of the most important and least understood characteristics in mobile-first development. The promise of true mobility means technology should work everywhere.
As is often the case, consumer apps are way ahead of the game. iTunes, Mail, Contacts, Calendar, Dropbox and Evernote share something in common: they sync data locally on the device, which enables them to work offline. But for professionals, very few business apps work this way today. Of anyone, professionals are in the most need of connectivity and efficiency, yet the vast majority of mobile apps aren’t designed to work offline.
Besides the frustration of being in a dead spot, offline capabilities matter for a number of other reasons. First, it mitigates the service issues caused by congestion. Poor connections are caused by the number of people connected to a tower and the impact of distance and microcell density. More apps that work offline means less tower congestion in crowded spots like a football stadium.
Next, offline affects speed. Offline capable apps remain responsive in slow times when servers are overloaded. And finally, offline works wonders on your battery life. Chatty apps needing a constant internet connection to transmit data back and forth are draining.
Even when mobile developers recognize the importance of offline capabilities, they may still choose to overlook it because of the complexity of development. It’s harder. But, in order to have long term app success, developers need to tackle it from the ground up – from the start.
Here are three tips to start building offline-first apps that work with local data and sync when connected:
- Use what your “mama” gave you: Take advantage of what’s inherent – and at your fingertips. If you’re developing for iOS, use CloudKit to move structured data from your app to iCloud. This allows you to use people’s iCloud accounts rather than creating new user accounts. It’s also baked into the SDK so there is no need to add third party libraries. There are some limitations to be aware of though when it comes to data size.
- Tap the experts for a cross-platform data sync solution: You don’t need to reinvent the wheel and create a unique data sync solution for each platform. To speed up the development process, try one the following: Parse Local Datastore, Firebase/Google, Dropbox Datastore API, Couchbase Mobile Sync. These tools will allow you to work across iOS, Android and other platforms, as well as work with specialists that can more quickly fix bugs and enhance your app. You do need to learn their SDKs though.
- Know when to roll your own: There are some cases where it’s just better to rely on your own team. Warning: this can be expensive. For example, you may have very specific use case requirements. When we built Tactile’s sync platform, it had to handle email and CRM data, each with very different characteristics. We needed to create a custom version control and merge logic that’s domain specific. Secondly, if your server side involves a significant amount of processing and external integration, doing device sync using a third party solution might actually be harder - you’d have to learn their way of doing things and you’re locked in. On the plus side to going at it on your own, you’ll have more control, especially over data governance and security.
The fact is, if you don’t start with offline first, it’s nearly impossible to fix it later. Take the time upfront to consider how the app will be used and the importance of speed and responsiveness in delivering the best possible experience. With these tips in mind, you’ll be well on your way to building an essential app that delivers on the true promise of mobility.
Chuck Ganapathi is the Founder and CEO Tactile, which is on a mission to make the world a happier place to work, by creating tools to empower individuals and enrich companies. He incubated the idea for Tactile while serving as an entrepreneur-in-residence at Accel Partners.
Edited by Peter Bernstein