Feb 9, 2011
HTML5 versus native apps. It’s a debate as old as — well, at least three years ago. And pretty much since the beginning of that debate, there has been a general underlying current among the geek community that HTML5 is good and native is bad. Native is what we have to deal with as we wait for HTML5 to prevail.
But what if that never happens?
Let’s be honest: right now, most HTML-based mobile apps are a joke when compared to their native counterparts. It’s not even remotely close. In fact, you could argue that the discrepancy isn’t much smaller than it was three years ago. And considering that the App Store was only on the verge of launching at that point, in many ways, the discrepancy is even bigger. Just look at mobile games now, for example.
Developers often state their love of HTML5 and their commitment to it going forward. But many have no choice. Native app development is not only difficult, it’s expensive.
These days, if you’re going to do native apps, you at least have to support iOS and Android. That means at least two developers for each different language, and preferably more. And if your startup is big enough or hot enough (like Foursquare, for example), you’ll probably want to have apps for Windows Phone, Blackberry, and webOS as well (which, to be fair is largely HTML-based).
Talking to developers, this is the single biggest pain point on the mobile side of things. And many talk about HTML5 as the remedy. A number now choose to build an iOS app then settle on a web app for Android at first. Others do both iPhone and Android but only offer rudimentary sites for the other platforms.
But the fact that very few, if any, choose to go HTML5-only is telling. If we were anywhere close to the language being a unifier and savior, at least some would. We’re not close.
Let’s look at the debate from the perspective of the three hottest technology companies right now: Apple, Google, and Facebook.
Apple is basically all-in on native apps. Google is half-in on native apps, half-in on HTML5. Facebook is seemingly all-in on HTML5 (at least going forward).
Apple is very interesting in this regard. When the iPhone launched in 2007, the only native apps were the ones made by them. Developers were told to build web apps in order to get on the device. Who knows if Apple planned third-party native apps all along or if they pivoted when they saw the opportunity, but a year later, we had the App Store.
It’s the single reason there’s any debate right now.
Apple is now obviously native app all the way. But it’s on their own terms. When a developer makes an app that Apple doesn’t like in some way, they recommend that they make an HTML5 app to bring it to one of their devices.
It’s more or less a “my way or the highway” approach — it’s just a nice way of putting it. Apple is using the hype around HTML5 to their advantage here. They know that those apps can’t compete with their native apps, but so many people are so bullish about the future of the technology (and, to be fair, Apple seems to be as well at least on the Safari side of things) that Apple is able to play that to their advantage.
They might as well say, “you’re welcome to build an HTML5 app *snicker*.”
Google is significantly more gray with regard to their position.
At the past two Google I/O conferences, all we’ve heard about from the search giant is HTML5-this and HTML5-that. But their actions speak louder than their words.
Google has done some great work with HTML5 — some of their mobile web apps are quite good. In fact, they’re arguably the best web apps out there. But they too are nowhere near native app good.
And take something like their Jules Verne logo today — it utilized the iPhone’s accelerometer via the HTML5 baked into Safari to move around. Very cool. But would anyone have thought twice about it if it were a part of a native app? No.
It seems like Google is well aware of this native app/HTML5 app discrepancy. That’s why we’re seeing an increasing number of their once HTML-based apps going native. And it’s not only on their own Android platform, but on the iPhone as well.
And that’s not all. Recent reports underscore Google going a bit native app crazy. There’s apparently a big push inside the company to hire any good app developers that they can get their hands on. And they’re even offering for them to work inside Google as their own startups. Essentially, it sounds like the Googleplex is becoming an app incubator of sorts. One that pays a salary.
But wait, this is Google. Again, aren’t they supposed to be the main torchbearers of the HTML5 movement? Yes. But they’ve also been hedging their bet this entire time. That’s exactly why development of both Android and Chrome OS has continued totally separate from one another.
Chrome OS, an operating system built entirely around HTML5 is still very much in beta mode. Android, an operating system built entirely around native apps is exploding with growth. Which would you back right now?
And then there’s Facebook.
Speaking at the Inside Social Apps conference last month, Facebook CTO Bret Taylor made it very clear that HTML5 is a the key focus for the social network in 2011. He reiterated as much to me when I spoke with him afterwards.
In fact, Facebook is so committed to HTML5 that they’re going to be offering tools to their broad development community in order to help them bring their apps up to speed. Most significantly, this includes games, which are today largely based on Flash.
Taylor echoed the hardships that startups face with mobile development across several platforms these days. Facebook, while much larger than a typical startup, still works in relatively small teams. And while he said that structural changes would help in 2011, they too are betting that HTML5 is the ultimate unifier.
Facebook has an odd history in the mobile app space. When the iPhone first launched, they had easily the best mobile web-based app — which was developed by Joe Hewitt. When native apps were finally allowed, Hewitt built that as well, and again, it was clearly one of the best apps available (and the top downloaded app of all time for iOS).
Then Hewitt decided he was fed up with some of the App Store rules. So he stopped doing iOS work. The Facebook app stood neglected for quite some time. And while it’s better today, it still has the same basic look and feel of the app that Hewitt built.
Meanwhile, on the Android side of things, it has been a nightmare. The Facebook Android app has long been a joke when compared to its iPhone brother. Facebook keeps slowly improving it, but it’s still not as good.
On the tablet side of things, Taylor said the iPad was an unfortunate casualty of Facebook’s lack of mobile team structure leading up to that device’s launch. He spoke about the importance of having a tablet-optimized version of the service soon.
That seemed to indicate that this would be an HTML5-based web app. But I’ve heard reports from two different sources that Facebook has been internally testing a native iPad app in recent months.
Maybe they won’t release such an app. And maybe they take an HTML5-only approach to tablets. But I certainly wouldn’t bet against a native iPad app. And maybe one optimized for Honeycomb as well.
It sounds as if Facebook is all about HTML5 — except when native apps offer a better experience. Which, love it or hate it, is still always.
And such a stance is more or less the attitude that everyone with the necessary resources seems to have. And that’s the point. After all these months and years, we’re still debating the HTML5 versus native app thing — but it still has yet to be a contest.
Everyone seems to pay HTML5 plenty of lip-service. But look at their actions. Apple, Google, Facebook, and developers are all focusing on native apps, not HTML5 apps.
And look at the platform pipelines. Android is (finally) about to get in-app purchasing. iOS is likely to (finally) get a revamped Push Notification system with the next iteration of iOS. Android Honeycomb will offer developers a whole new set of tools and APIs. Both platforms are likely to expand quickly into NFC and everything that can offer.
All of that will be native app only. And that’s just the tip of the iceberg. It was actually Hewitt who said it best when he ripped the state of web development a new one last year with a series of tweets. The best was: “I want desperately to be a web developer again, but if I have to wait until 2020 for browsers to do what Cocoa can do in 2010, I won’t wait.”
If HTML5 is an oncoming train, native app development is an oncoming rocket ship. And everyone seems to know that’s not going to change anytime soon. Even if they don’t want to admit it, their native apps speak for them.
[photo: flickr/tom hilton]