HTML5 Apps have been seen by many developers as the next generation platform to native app development. And it all comes down to two things: open and everywhere.
Native app development has always been seen as closed. If you write for iOS, for example, there’s a whole bunch of NDA you need to sign for pre-release builds and your app could get rejected for whatever reason they come up with. Some of it is true and some of it are special situations. However, many developers like to develop for a platform that is completely open. No restrictions, no bullshit policies.
The second feature that the HTML5 platform is trying to implement is write-once-run-everywhere. I say trying to, because ever since the first Internet browser wars, there was always pages that were displayed differently on each browser. There was never consistency in browsers - except that one time when IE was the only browser out there.
But what are the benefits of native app development? The apps are faster, more powerful, and take advantage of more hardware (and software) features. The only way for web apps to be on the same level as native apps is for the chips to be so fast that the reduction in speed for web apps is negligible. However, by then, the native apps would be of a much higher quality, leaving the web apps to play catch up forever.
Forever? Yes. Look at current photo editing apps for example. On iPhoto, you can quickly scan your whole library and find (and thumbnail) all face shots of a particular person. On web apps, you get nothing more than basic color & brightness adjustment and cropping. Native photo apps were doing that 10 years ago. By the time the web photo app can scan faces and such, native photo apps will be able to tag photos based on who is smiling or not.
The reason why web apps will never be as fast as native apps is that the web app is not specifically designed for one platform. Web apps are processes and executed on the fly. Native apps are already pre-processed and thus saves the time needed to process it.
The benefits of web app development are nice, but, with two dominating platforms in the smartphone arena, why does there need to be a third, all-encompassing platform? Android and iOS represent 90+% of the market. Spending a considerable amount of effort to develop an “other” platform just for the single-digit percentage of users seems to me a waste of time and money.
Ok, but you might say that the “write-once-run-everywhere” idea is nice, which may ultimately save you 2/3 of your cost if you want to develop for all platforms, Android and iOS included. However, you still must test each browser and the reduction in speed means that most mobile users will use a similar, native app instead of your web app. The costs you saved from development will be pointless in the face of your unearned revenue potential.
Some people say one platform (or two) is bad and prevents competition. Well, I didn’t hear much of that from the same people when Windows was the only platform. Sure, as much as I didn’t like Windows, it did provide consistency. Everyone knew how to use one. App developers had only one platform to worry about. Now, there are 2. Why do we need a third?
I’ll end with this sentence from the authour, Josh Constine:
Maybe one day an Instagram or even an Infinity Blade could run straight from your mobile browser.
There’s a problem for both. Like I said before, native app development will always be faster and more powerful. Instagram as a web app would lack the fast reacting filter selections you get with the current app. And Infinity Blade would be sluggish and/or lack the great graphics engine it runs on (imagine them porting the Unreal Engine 3 to HTML).
All in all, I say, let’s just focus on making the best apps for each platform and not fret over how we can do the least amount of work.