With continued work with HTML5, the mobile app ecosystem inches closer and closer to a cross-platform world.
endif; ?>Next Monday the HTML5 Developer Conference will kick off in San Francisco. Since Facebook founder and CEO Mark Zuckerberg waxed that HTML5 was Facebook’s biggest mistake, many have misjudged the maturity and capability of this technology.
The root of the controversy began when the Write Once Run Anywhere (WORA) design goal of HTML5 was stretched to be a solution to cross-platform mobile applications. HTML5 is a method for presenting content on a webpage. It is still a work in progress with a target date for a World Wide Web Consortium final specification in 2016.
MORE FROM THIS AUTHOR: Android or iOS for a young company’s first mobile app?
Why Apple intentionally sacrificed Maps quality in iOS 6
HTML5 is a very large and complex subject that has many features described in its lengthy draft specification. An over-simplified working description is HTML5 combines the capabilities of HTML, XHTML and Javascript to create dynamic web pages that act and feel like apps. Many public and private enterprises develop with HTML5 today, including Facebook, Google, and Yahoo.
HTML5 provides website and product designers the ability to automatically adapt to a wide range of screen sizes and pixel densities while dynamically responding to website updates and user input. There are many websites, Facebook included, that scale nicely between mobile, tablet and desktop. Developers can put a wrapper around a mobile HTML5 app and set it to launch from an icon and behave similarly to a native app.
One problem is that HTML5 apps run in a browser, which limits their mobile capabilities. As compared to building a native iOS or Android app, the HTML5 approach limits the developer’s ability to interact with the mobile device hardware because browsers necessarily sandbox code running in webpages for security reasons. Also, the developers do not have access to the native user interface libraries and APIs so the HTML5 browser app behaves differently. So if the developer’s goal is WORA, there can be compromises in the UI and responsiveness of the application because of the added burden of running the app in a browser.
Another problem is the competition between iOS and Android. The teams that are building iOS and Android want to differentiate their products for developers and they will never agree to standardize their APIs, libraries, security and permissions so that an HTML5 browser app can be made indistinguishable from a native app. Imagine an Android user could download apps from the Apple app store and iOS users from Play. This would never occur given the rivalry between Apple and Google.
There are many good methods for accomplishing WORA with cross-platform development solutions, such as HTML5, Sencha Touch, JQuery Mobile and Phonegap. The results will be pretty good. In many cases, good is good enough. If the developer wishes to avoid disappointment he needs to understand the design of his app and the capabilities of the cross-platform solution he chooses. The biggest project failures are not due to the limits of cross-platform solutions, but the designers failing to understand the limits of the tools employed. There are very good reasons for incurring the expense of writing a native app for one platform and then painfully rewriting it as a native app for another platform.
It will be very interesting to follow the HTML5 conference discussions about extending and clarifying the cross-platform capabilities. It seems that the definition of the HTML5 cross-platform capabilities should be: the ability to run dynamic apps on many different screens with different sizes and pixel densities, and not a unified development solution for building apps that make use of rich and extensive capabilities by running identically on iOS and Android.




