Mark Zuckerberg opened up recently about HTML5 and the difficulties that Facebook has faced in developing mobile apps. In a quote heard round the world, Zuckerberg called HTML5 “one of the biggest strategic mistakes we made.” Those are pretty strong words from the CEO of the most influential company in the mobile market today.
Facebook is experiencing slower performance with HTML5 compared to native apps on mobile devices and the diversity of mobile browsers, which leads to confusion among web hosting developers over which parts of the programming they can use—hence, the appeal of native apps.
A native app doesn’t need an internet connection to run; it’s much faster than loading an HTML5 web app; and, because native apps run directly from the phone, they have easier access to the microphone and camera, making them more capable than HTML5-based web apps.
Long live HTML5!
Before you take Mark Zuckerberg’s HTML5 bashing as evidence that web apps are dead, remember that there are plenty of reasons why developers still like web apps in some circumstances.
HTML5 is an example of the “write once, run everywhere” mentality. Because most browsers function the same way, one app can run on almost all browsers, unlike native apps, which are operating system-specific. This obviously streamlines development, but for the user it means continuity, regardless of the operating system. Switching from iPhone to Android? Instead of having to get accustomed to the different interface of the new operating system, HTML5 guarantees that the app will look, run and feel the same, no matter what.
HTML5 also allows for constant updating, without the need for an app store. Every time a user logs into the web app, they get the most recent version of the program.
With a website such as Facebook, which is constantly updating and changing, an HTML5 base seemed like a no-brainer. Instead of having to wait for approval from Google’s Play store or Apple’s store, the web app simply updates itself. Again, this appeals to both users and developers. For developers, it eliminates the need to have to rewrite and resubmit the app every time it needs updating; for users, it frees them from having to reach for the “Update” button every few weeks or months.
The root issue for Facebook isn’t the little differences between HTML5 coding and native apps, but rather how to condense content born on desktop browsers for mobile browsers.
According to CNET, Facebook has 955 million monthly users, 543 million of whom are mobile users, which is an increase of 67% year over year. This is a huge shift in the very basics of how Facebook works.
Native or web app?
Although they are different types of websites, Twitter and Facebook do have some of the same requirements: Facebook needs to be constantly updated with the most recent content, just like Twitter (although perhaps to a lesser extent). The whole point of both networks is to keep users constantly updated on their friends and followers, a need to which HTML5 programming lends itself. But both websites also need a smooth interface and quick upload time, which demand something like a native app. However, Twitter’s use of multiple coding languages might be the direction that Facebook needs to go in. The different code, at least for Twitter, has made for a better, smoother app than either a native app or an HTML5-only app could deliver.
Native apps definitely came first. Recall that preinstalled programs (i.e. apps)—such as address books, calendars and calculators—appeared on mobile devices long before the availability of Web connectivity. One of the most memorable instances was Nokia’s implementation of the classic arcade game Snake in 1998, which became a massive hit around the world.
Until HTML5 catches up to native apps in enabling users to play games and load social networks quickly, the latter will dominate those segments. Still, HTML5 is ahead with weather and shopping apps, both of which rely more on user analytics, which web-based apps can access and provide faster.
The characteristic that Facebook is pursuing—the one that all app developers will eventually have to learn—is adaptability.
Learning how your platform works and what functions are the most important to users is the key to guiding development.
Do you build mobile apps in HTML5 or native code? Do you think HTML5 will come to dominate or will there always be support for native apps? Let us know in the comments.
Featured image/thumbnail, HTML5 image via Shutterstock.