This is Part 1 of 3 in a series on Offline Connectivity.
Read Part 2: Offline functionality is a no brainer (and how Twitter dropped the ball)
Read Part 3:8 Tips For Building a Badass Offline App
The first step to fixing a problem is admitting that you have one.
Losing our home or work Internet connection is now as rare — and inconvenient — as losing power. When it does happen, we’re faced with a serious problem because we rely on our data to be accessible 24/7. But that level of trust doesn’t apply on-the-go: unless you’re a serious agoraphobe, you know what its like to lose your connection multiple times in one day.
Despite the fact that our mobile and WiFi connections are anything but a sure thing, we keep building apps that assume they are.
We’re not as connected as we think
For a moment, consider your …
Mobile connection: You can access your data on your phone any time — unless you happen to be on the elevator, in the subway, driving through the “sticks,” or hunkered down in the back of the gym by the old Stairmasters. And don’t forget that moment right after midnight on New Year’s — not to mention all the times when your connection just stops working for no obvious reason.
WiFi connection (on your laptop, tablet, or phone): Ever ride Amtrak to upstate NY? Forget about checking your email. Wireless on a plane is a damn miracle — when it’s available. (Just 24 percent of domestic flights currently offer it.) Consider, too, the connectivity issues you’ve probably encountered at tech conferences and presentations.
Finally, what happens if your server goes down or gets swamped? Your disk runs out of space? The EC2 gets “flakey”? (I’m not even going to get into the havoc wreaked by freak occurrences like Hurricane Sandy.)
Development teams don’t get it … yet
I’ve talked to many development teams about this problem, but so many just shrug their shoulders. It’s easy to think connectivity issues “aren’t that bad” when you build and test your apps right at your desk, sometimes when the server is even running right on your machine! (I’d bet my retirement fund most developers haven’t ever seen their own apps crap out mid-process.)
I’ve also been told “Networks are getting better all the time, and this won’t be an issue forever.” I’m sure this is true, but how long do we we have to wait — five years? 10 years? It’s an open question, as is the definition of “better.” If you think the network problem will be eradicated within six months to a year — the future time period all app development teams should be gunning for anyway — you’re in serious denial.
Constant connectivity may be the wave of the future, but the future isn’t here yet.
What happens next?
Most frustrated users won’t complain about connectivity issues to you — they’ll just stop using your app. But if one smart development team begins to adopt offline functionality into their best practices, more and more will follow suit. Users will quickly get used to apps “just working,” and those that design mediocre ones — when it’s actually pretty easy to make great apps — will fall behind.
The bar will be raised — might as well start practicing your jumps.
Are you one of the best Android developers out there who likes solving problems, working on a small, agile team and building only the best solutions? Maybe we should talk, get in touch.