Blog Post

How Can We Make Mobile Apps Suck Less Offline?

Stay on Top of Enterprise Technology Trends

Get updates impacting your industry from our GigaOm Research Community
Join the Community!

On my daily commute to the GigaOM office, I spend 10-30 minutes offline, depending on the whims of the San Francisco MUNI gods. I carry an iPhone 4 (s aapl) and an HTC Droid Incredible, and I grab one or the other from my purse to amuse myself. The best possible scenario is if I grab my iPhone before I go offline, sync up Instapaper, and happen to have recently saved some interesting articles that I haven’t yet read. If I haven’t made those stars align, I play a game — usually Angry Birds or Word Warp.

But for the most part, as soon as I lose connectivity, my mobile apps are mostly broken. Tapping my most-used apps — Gmail (s goog), Facebook and Twitter — only gets me error messages and frustration. Even Angry Birds and Word Warp are handicapped when they’re offline; they lose their social features and word lookups, respectively. If I organized my apps into panels of those that were useful offline and ones that needed connectivity, it’d be incredibly lopsided.

For a better user experience, I’d like to suggest two things:

  1. More offline content until we have more universal connectivity. This would probably in the Instapaper model where you refresh before you go out of range, and then access the content offline.
  2. Better transitions between offline and online experiences. Instead of giving you an error message, it would be great if an app cached what you’re doing and dealt with it next time it reconnects to the server.

For instance, it would be cool if you could press a button in your Facebook and Twitter apps to grab and cache the 50 latest updates from your contacts as well as all the web pages they linked to, so you get a capsule of the experience offline. This would probably be pretty hard to execute, as it would require fetching a whole bunch of diverse and not pre-formatted content in a short amount of time that wouldn’t necessarily even be consumed by the user. And it would increase mobile data usage even when that content went unread. But it would be super useful.

[inline-pro-content]Another experience that seems promising is the HTML5 version of Gmail on mobile. When you press send on a message, Google (s GOOG) immediately gives you a yellow confirmation bar saying it’s been sent, so you can return to your other business in your inbox. In reality, the message hasn’t actually been sent, but is being sent in the background. This is a dangerous little trick, because it’s possible that the message could fail to send after the user has already been told it’s gone through successfully. But — perhaps with a tweak to make the wording more explicit, like “we’ve got this and we’re dealing with it” — it’s actually a really neat trick.

HTML5 promises to help solve the offline app problem (along with the climate crisis and world hunger). I was recently talking with Giles Goodwin, co-founder and CTO of Widgetbox, who has been working on some nifty mobile web app creation tools using HTML5. Goodwin and I spoke a bit about the tools that HTML5 provides to make offline work: The manifest holds rules for offline storage, web storage stores data on the device, and SQLite in WebKit gives access to stored complex data.

Goodwin says,

One good way to go about using this group of technologies is to create a manifest file that supports offline [access] then store[s] all remote data in the Web SQL DB as it is accessed. This way when the app is loaded you can fetch the latest feed data, stick it in the db, then read out of the db when the app is used offline. There are a number of tricks to do this right including setting up all the assets correctly in the manifest and dealing with binary data like images correctly.

That’s easier said than done. The first version of the new Widgetbox mobile product won’t be released with offline support. “[I]t’s one of the more difficult technical problems we had to solve in building our mobile app builder, and we’re not quite ready to release it due to some issues across devices and with some content,” Goodwin says.

We all want universal connectivity — and San Francisco MUNI should really just get Wi-Fi already — but in the meantime, apps should work to bridge the offline gap. Or maybe next time I commute I should bring a paper book.

Related content from GigaOM Pro (subscription req’d):

13 Responses to “How Can We Make Mobile Apps Suck Less Offline?”

  1. anderlan

    I love the idea of using android phones as ultra portable laptops, iPods, GPS units, home wifi Voip phones, the list is endless. The idea–as Verizon tells me, and some to whom $30/mo. is spare change tell me–of a smartphone without cellular internet from an oligopolist carrier hellbent on becoming AT&T v.2 is just plain silly. Not!

    Fortunately, most of the personal productivity apps don’t require a constant connection. Serendipitously, these apps are more useful, and more used, because they are on a handheld device. These devices are miracles that we dreamed of and hoped for, even without confiscatory fees.

    If more people exerted market pressure, fees would go down and phones would be more portable between carriers. I recall activity around mesh networks of wifi routers. Well, now we have potential mesh network nodes in everyones’ pockets. Think about how we don’t have to get dictated to if we don’t want to.

  2. jimhuinink

    Offline is one scenario in many where usability of mobile apps is poorly or not-at-all tested. We’ve written a variety of articles detailing issues we’ve discovered and fixed through user testing mobile apps and websites. Usability of mobile and wireless apps and devices is really similar to desktop circa 1994 and the issue does not get enough attention. Why does mobile suck so often, offline or online? Why do we expect it to?

  3. Not sure which iPhone Twitter app you’re using, but the official Twitter app, formerly Tweetie, works for me offline. If I refresh online, go offline, I can read whatever was just refreshed online, offline.

    I can understand why apps like or stock quotes don’t work offline as people can easily mistake the last update for current conditions so it would be better to have nothing come up at all than to mistakenly use old info, but many apps could handle the offline condition much more gracefully.

    News apps should especially work offline, but some I use don’t even cache the latest updates. For that type of app, that’s a cardinal sin. NYTimes, HuffPo does, NPR and BBC don’t.

  4. Scott Jenson

    Excellent post. I agree with you but getting offline caching to work is still unfortunately too much work for most developers. It’s best for storing simple, phone only state (such as a stand alone todo app) However if you are truly caching web content in the cloud, getting a reasonable set always fresh and on the device, and then caching changes to upload, takes a considerable effort and is very bug prone.

    Longer term, there need to be libraries for developers to help manage this data management chore.

  5. I’m really surprised more mobile apps don’t gracefully deal with offline access either. Why throw an error message into your customer’s face? Your two suggestions seem so simple; I’m perplexed that more mobile app developers don’t do it.

    Or, at the very least, hide that modal error message and signal to the customer an a less intrusive way that there is no connectivity right now – but don’t worry, we’ll update your data once we’re connected again.

  6. Hi Liz,

    As you know we at CouchOne are creating technology to solve exactly this problem. Currently, offline apps are hard to build because two-way sync is hard to get right and is in essence a database replication problem.

    The CouchOne platform uses CouchDB, which has robust two-way replication. Developers are freed from worrying about offline sync because CouchDB does that for you transparently behind the scenes and you don’t have to write a single line of sync related code. This means developers can focus on building better apps and know that they get offline capability for free.

    We hope that once our technology is in the hands of more developers, more and better offline apps will be created and the offline mobile experience will become a lot less sucky.

    You can contact me errr .. offline :-) and I can show you what we are doing in more detail.

  7. Offline storage was hot a couple of years ago, more on desktop and mobile. Google gears popularized it, and on mobile devices we have built in native facilities to support offline access.

    I believe that in ways mobile is suffering from its own success. Data connectivity between 3G and wireless is so ubiquitous that it’s not really a problem, unless you ride Muni or Bart or any other underground system that doesn’t have connectivity. And there’s always being on a plane though there, chances are that you’ll use your laptop, rather than your phone.

  8. Why not design it with offline use in mind and have the internet connection as an extra? Sending an email should be just like sending a text message offline…it waits and sends when it has a connection.

    I prefer to use a cellular data connection as little as possible and when people always assume there is a connection for many types of applications this is a poor design choice.