Perceived performance is what matters
16 Jul 2013 by Michael Boeke
Recently, Drew Crawford’s excellent article Why Mobile Web Apps are Slow got a lot of attention on the intertweets. It is a worthwhile read, and I recommend it.
As someone who has been a proponent of the open web and HTML5 apps, I have to admit to participating in some of the blind booster-ism the author identifies at the beginning of the article. While some of the technical discussion in the piece is beyond my expertise, I find it to be a pretty compelling argument against my default position.
But while I can’t dispute his arguments for the advantages of native apps, I can’t agree completely with Crawford’s conclusion. Basically he makes a super-compelling argument for why native apps are faster than mobile web apps (and will likely remain faster) and then concludes that people shouldn’t create mobile web apps. I think what he ignores is that web apps can achieve perceived performance on a par with native apps in many cases. There are apps out there that prove it is possible to create beautiful, responsive, web apps on current hardware.
For two good examples, check out Forecast.io on an iPhone 5 or the Financial Times app on a current-generation iPad. The producers of those apps traded some ultimate performance away, but didn’t really have to compromise user experience (at least for current-generation devices). They gained some substantial advantages by doing so: writing one app for multiple platforms, updating apps automatically, avoiding the App Store tax, and more. The folks behind Forecast.io even published a great article about how to build mobile web apps that feel native.
One of the other advantages that web apps have, is the ability to provide a great user experience within the web view of another app. When you link to something within Twitter, or search using the Google app on the iPhone, you’re going to end up at the web view. GitHub points to this very use case in their recent blog post.
I’m certainly not claiming that people shouldn’t make native apps. Most of the apps I love are native apps. However, I think most products would best serve their customers by providing an excellent mobile web experience to complement their apps. I’m curious to watch the Mozilla folks and others push the boundaries of modern mobile web apps, where performance will be the primary challenge. There is much to be gained by continuing down that path, despite the challenges.