Last night, at Mobile Monday London (#MoMoLo), we saw the latest edition of the HTML5 versus Native Apps debate. That never ending debate where a bunch of ‘experts’ get together and pontificate over which platform is the best.
The MoMoLo debate was prescient since Facebook CEO, Mark Zuckerberg, said his company’s biggest mistake was using HTML5 for mobile development, sending shockwaves across the development landscape. The comment re-ignited the conversation over whether to go native or HTML5 and Web-standards based when building mobile apps.
The following are key tenets of the perennial discussion:
- Distribution – Native apps (based on iOS, Android, etc.) are distributed through app stores and markets controlled by the owners of the platform ecosystems. HTML5-based apps are distributed through the rules of the open Web: the link economy.
- Monetisation – Native apps come with one-click purchase options (a.k.a. in-app purchases) built into the platform. HTML5-based apps tend to be monetised through advertising and subscriptions. Native apps are often subject to a revenue share model, HTML5-based apps do not have that constraint.
- Functionality – Right now, native apps can do a lot more than HTML5-based apps because they have access to core platform APIs. HTML5-based apps will get better, but not as fast as some HTML5 advocates seem to think since, arguably, it’s not in the interest of each platform to support a full HTML5 feature set any time soon. Some suggest taking a hybrid approach — wrapping HTML5-based apps with something like PhoneGap or Appcelerator’s Titanium — but that has it’s own challenges.
On the side of HTML5 based web-apps was Andrew Betts of the FT, Sam Arora of Keynote Systems and José Valles of BlueVia; on the side of native apps was Alex Caccia of Marmalade, Chris Book of Bardowl and Nick Barnett of Mippin.
Here is an overview of the two camps’ arguments (and apologies if I’ve missed a whole bunch of them; please feel free to comment):
- The strength of native apps is in the business model, payment mechanism and distribution mechanism. App stores allow users to search and download apps with relative ease.
- The ‘footfall’ of users in the app stores is vast.
- In-app purchases and subscription mechanisms reduce purchase friction.
- The browser is a black box. If a bug exists in it, which prevents some functionality from working, there’s little you can do about it. Native apps on the other hand have access to the core API of the device, so limitations become the expertese of the developer.
- HTML5 and its sister technologies are still fragmented and ill-defined/implemented. The W3C are dragging their feet in ratifying the standard.
- App stores are no different from the traditional retail model found in shops such as Selfriges and John Lewis. They provide the mechanism to get the product to the customer, for a percentage.
- You can’t do decent high-end games in HTML5.
- You can’t deliver large amounts of content securely and in a way that allows for offline storage.
- The user experience of HTML5-based web-apps is hindered by needing to seek permission of the user every step of the way. Permission is implied when you buy a native app.
- Native is monopolistic, which isn’t good for the user experience.
- HTMl5-based web-apps are device agnostic. If a new device or ecosystem emerges, the apps can be made to adapt relatively easily.
- Need to think about TV, kiosks, etc., which don’t have app architectures.
- There is a direct relationship with the customer. You’re not constrained by intermediaries, i.e., the device/ecosystem manufacturers.
- The Web succeeds by breaking boundaries; Native creates boundaries.
- If you subscribe to the notion that experiences should be branded to the organisation rather than device, we should standardise on a brand UI rather than a platform UI.
- Can cater for different input paradigms, e.g., gestures, keyboard/mouse, etc.
- We don’t need an imtermidiary with the Web (a la the traditional retail model of app stores).
- Security isn’t an issue in HTML5 apps, since we have the likes of online banking for desktop users.
- A more granular permissions can be applied to your apps, e.g., with localStorage.
Unfortunately the native camp won the debate. I say unfortunately because overall the debating wasn’t terribly coherent! Apart from gaming and the need to protect DRM’ed content, the supporters of native apps didn’t justify clearly why you should choose their paradigm. Similarly, the HTML5 camp didn’t make any profound arguments, but everyone largely agreed that Telefónica’s partnership with Mozilla on Firefox OS will be a proving ground to see if the Web can truly be set free on mobile devices.
But in essence, whether the app is native or HTML5-based, normal people simply don’t care! They want a frictionless experience using an app that satisfies their needs. They just want things to work. Like everything, you need to choose the best tool for the job.
What other people are saying