The case for native apps on mobile devices

Start-up time

I find start-up time for native apps generally much shorter than their web-based counterparts. A crucial feature if you want to whip out your device for a quick check while waiting in the supermarket queue (if you have network access in your local supermarket, but that’s a different story). Plus, native apps don’t need to pull functionality & UI over the network, which takes time, too. They just pull raw data. Which shortens the time from “clicking the app in the Springboard” to “seeing the content I want to”. Even if most of the JavaScript is cached locally, there’s still the need to periodically pull updated functionality.

More elaborate UI

Native UIs tend to be more elaborate, more sophisticated and, most importantly, much smoother and faster than any Web-based UI. Which isn’t that much surprising if you think about JITing, network latency issues and the need to download at least part of the UI over the network. Native UIs & apps shave off a few more milliseconds from that crucial start-up time.

Off-line mode

I need a full-featured offline mode. There’s no such thing as 100% cell coverage. Connection to the 3G network is (and will be for the foreseeable future) spotty at best (No, most of us don’t live, work & play next to a cell tower 24/7). I even have dead WLAN spots in my house. And you do, too. I can’t get to my carrier’s data network from the local supermarkets checkout line. That said, there’s some room for improvement even for native apps whose primary purpose is displaying content pulled from the internet: Off-line access should be designed right into the app instead of being tagged-on as a second thought.

Battery

Pulling less bytes over the network, no need for JITing etc. means less battery drain on my device.

Cost

There are iPhones users out there which do not have a flat rate data plan. Having native apps, even for simple games or utility apps which could be done as a web-page, is crucial for this type of mobile user. Even a few bytes send over the carrier’s network cost these users an arm and a leg (on non jail-broken iPhones, access to the carriers network cannot be easily turned off).

Update I

There has been quite some discussion on Twitter about Web apps featuring offline modes, slick Javascript UI libraries for iPhone etc. I seriously doubt that @chockenberry‘s stupendous Twitterific could be done as a Web app with the same attention to detail & performance. And while web apps & technologies are catching up in terms of functionality (and they still have some significant catching up to do), native technologies do not stagnate, either… I think each every point I made still applies today (and will apply for the foreseeable future) in the mobile space.

Web technologies are great for building certain types of applications, e.g. traditional database-driven applications, fully replacing what used to be client-server applications back in the paleozoic era. Web applications work great in an environment where either network connectivity is the norm or where you have discreet slices of time with stable network connectivity – but they will have a hard time catching on big-time in the mobile space.

Update II

John Gruber makes a similar, albeit way more elaborate and way more well-thought-out point. He is still more optimistic about the future of web apps on mobile devices than I am.