Monday, September 24, 2012

HTML5, Native, Hybrid Apps – You Can Have It All!

Facebook’s explanation for why they rebuilt their app
There’s been a lot of noise recently about Mark Zuckerberg’s recent talk on TechCrunch where he said Facebook’s biggest mistake was betting completely on HTML5. Since then, bloggers from both the HTML5 and native app camps have been out claiming superiority over the other. Yes, both technologies have their own advantages and disadvantages. And often developers’ best options are to use them as complementary, not standalone technologies.

HTML5 looks appealing because it allows developers to reduce costs and develop apps more quickly by using one code to create a consistent user experience across multiple platforms and devices. However, in an expensive but important lesson, Facebook realized that despite its advantages of cost-efficiency and agility, sometimes HTML5 alone just can’t deliver the necessary performance and user experience required to make an app acceptable to its users.

As a general rule, HTML5 is better for content-centered apps that don’t need to use device-specific capabilities, such as the address book, GPS or camera. HTML5 also enables developers to take advantage of ready-made cross-platform libraries for pie charts and other graphical interfaces that may or may not be readily available in native mobile operating systems.

One of the main drawbacks of HTML5 is its execution and rendering speed, or the lag time in parsing the code into the application user interface. In addition, it takes a lot of extra effort to replicate the native UI experience of multiple platforms working with HTML5. Doing so leads to quality and compatibility issues. While matching the look and feel of each native UI may be a minor concern in some cases, when users are used to their handset OS, there could be a great deal of user confusion, frustration, and mistakes if, for example, the back button is not in the expected place.

In general, native apps are better when the user experience and performance are most important and also when applications are used offline, for instance when work is done on a plane. In addition, use of the device’s native UI helps users instinctively know how to operate the app. Tight integration with embedded device capabilities provide a superior user experience and faster performance.

Luckily, today’s enterprise application developers no longer have to make a choice between HTML5 or native apps. Today’s multi-platform middleware platforms know how to integrate HTML5 and native apps on the client, as well as provide easy integration with back-end enterprise systems (e.g. Salesforce.com, JD Edwards, SAP and others) on the server. Use of these platforms give enterprise application developers the tools to quickly and cost-effectively build enterprise apps that let them take advantage of the best features of both technologies.