March 6, 2012
The buzz around HTML5 in the context of mobile applications has been growing exponentially over the last year. The prospect of cross-platform applications that are as powerful and elegant as native applications is too exciting for serious mobile solution developers to ignore, and leaders in the mobile space are pushing the limits of Mobile Web hard, trying to turn the promise into reality.
The release of jQuery Mobile 1.0 in November 2011 has garnered considerable attention as “A unified, HTML5-based user interface system for all popular mobile device platforms”, and has enabled Web developers to target ‘near native’ feeling web applications to all modern smartphones. The advancement of local web storage, and emerging support for direct hardware access fuels the excitement about the possibilities of mobile web applications.
Combine advancements in the capability of mobile browser based applications with the exploding ‘Bring Your Own Device’ (BYOD) trend, and enterprises cannot ignore Mobile Web as a realistic option when considering their mobile strategies… but is HTML5 ready for Enterprise Class applications?
Enterprise Class Mobile Applications
Enterprise Class mobile applications differ from their Consumer Grade counterparts in three major ways: Data Complexity, Security Requirements and Workflow Characteristics. Mobile workers are dealing with detailed business records, whether work orders, sales orders, customer files or financial transactions. This type of data puts different pressures on an architecture than the typically data-light (though graphically intensive) consumer applications. Dealing with corporate sales, customer and financial data requires much more significant security consideration than typical ‘App Store’ applications. Additionally, workers leveraging mobile solutions are often executing complex dynamic workflows that are synchronized with the mobile application UI. The amount of data used throughout the workflow must be thoughtfully presented at the right points within the workflow in order to reduce resistance to adoption, and to minimize training and support costs. A mobile platform must be able to effectively deal with complex data, workflows and security requirements in order to be viable for Enterprise Class applications.
Mobile Support for HTML5
HTML5 is a standard that has been evolving for several years, but has become a very hot topic for the mobile community as the commitment to open standards for mobile support has become more tangible. Because of the level of buzz in the mobile sector around HTML5, it is a common mistake to assume that the standard is fully supported by mobile browsers. Nearly all major Mobile Browsers support HTML5 features to some extent, though there are some significant holes. Some of the most significant capabilities supported by mainstream mobile browsers are: GPS Access, Offline Web Applications, WebStorage, CSS3 and 2D Animation. Notable exceptions include 3-D animation, FileReaderAPI, IndexedDB and WebWorkers (Background Threading) support.
Of the unsupported features, the most problematic for enterprise applications is the lack of truly robust local storage. If the application must work while disconnected, and if it deals with the complex data often required by corporate applications, the lack of WebSQL or IndexedDB could be a deal breaker for HTML5 in its current state. If internet/network connectivity is not an issue, or data requirements are fairly light weight, then these local storage limitations will likely not be an issue either.
The primary security risk related to HTML5 is that the specification allows for local storage of potentially sensitive data on mobile devices. The storage of this data, and the ability for Web applications to read data from the device combine to form a real threat to data security. The good news is that that there are tools and techniques available to mitigate these risks (outlined by the W3C here: http://www.w3.org/TR/2010/PR-mwabp-20101021/#bp-security ). The bad news is that even though these mitigations exist, they require well thought out and executed programming to implement, just as ‘terrestrial’ web applications do.
The argument that the user experience on a browser-based mobile application is ‘no comparison’ to that of a native app is rapidly becoming obsolete. Several HTML5 based development plug-ins and frameworks have emerged in recent years. These libraries provide rich controls and interface options that enable developers to create excellent user interfaces that run in all of the major mobile browsers. Environments such as jQueryMobile, Sencha Touch and Dojo Mobile provide varying degrees of support for building very elegant mobile web applications, from UI libraries only to DOM manipulation, AJAX and other utilities. These types of tools have fueled an explosion in both the number and quality of Web Based mobile applications that rival their native counterparts. A great example of just how capable and powerful an HTML5 based mobile UI can be is the You Tube mobile web app… which you can find at m.youtube.com.
When are Native Apps a Must
There are a few scenarios where Mobile Web just can’t replace Native applications as the right solution for an enterprise application. If the requirement calls for camera access (e.g.; taking pictures of damage in an insurance claims application), if it requires complex, off-line data availability (e.g.; access to detailed oil-well maintenance history in the field) or integration with purpose-built device peripherals like RFID scanners, there may be no choice but to build a native application. Other factors can also come into play, such as a desire to make the application available through the Apple App Store for marketing purposes, or an absolute requirement to provide the fastest and most supple user experience possible. HTML5 and the surrounding mobile web technologies are still catching up in all these areas, so for the time being some valid situations that require native apps still remain.
Hybrid Apps as an Alternative
So… Is HTML5 Ready for Enterprise Mobility?
If you have a well-defined business requirement that can be addressed by a mobile solution, this should be a fairly straight forward question to answer. HTML5 is definitely the up and comer for mobile applications, rapidly growing in power and capabilities. Many enterprises are starting to consider mobile web as a viable platform, particularly in the face of the BYOD trend, and it will continue to gain traction as the standard HTML5 matures.
Here are some rules of thumb that can help determine if HTML5 is a good solution for your Enterprise Mobile solution:
Not a fit
There are two major requirements that would prevent a pure Mobile Web solution from being the right fit. If either of these conditions applies, you will need to take a native app approach.
- Intensive Off-Line data requirements that can realistically only be handled by an IndexedDB or SQL database, (well served by iPhoneAndroid/Blackberry/Windows7 native apps)
- Hardware requirements such as RFID or more than occasional Barcode scanning. (Likely to drive you towards a Windows solution on purpose built hardware… but also keep an eye on Motorola’s work with Android on rugged devices)
The hybrid approach is a good fit in several scenarios; consider something like PhoneGap if:
- You need cross-platform support,
- You need access to the Camera or some other hardware component in the app,
- You want to make the application available through the major public app stores (usually for marketing purposes in the case of Enterprise-class applications)
Pure HTML5 mobile apps definitely have their place in the enterprise if:
- Your off-line data requirements are not intense,
- You don’t need to access any hardware components other than GPS or local storage,
- You need cross-platform support.