Today, enterprise developers typically select their development approach from a spectrum that spans from pure native development on one end to pure HTML5 development at the other. Aside from the familiarity of this topic in the current context of the mobile computing explosion, this discussion is surprisingly familiar in a more historical context.
A quick Web search uncovered an article from 1997 contrasting the merits of client-server development using a fat client model vs. pure Web-based development. The article aptly noted that, at the time, there was a spectrum from fat client to Web client, and that applications could exist at different points on that spectrum. The article concluded (correctly, with the benefit of hindsight) that Web development should be the path of choice for enterprise development.
Rather than relearn the lessons of history the hard way (that is, after building a portfolio of native mobile apps), it makes sense to remember why the Web won the enterprise:
- HTML is an open, cross-platform standard for app development. No similar alternative exists today for cross-platform native mobile app development.
- Web applications solve a major headache for IT: Upgrades are instant, and IT can be assured that users are always running the latest version of an application. These benefits enable IT to update applications at a much faster pace that meets the dynamic needs of the business.
- Mobile devices, much like desktops and laptops, are all slightly different. The challenges of hardware fragmentation, variations in behavior across OS versions, and unintended client application interactions are a never-ending challenge in managing a portfolio of fat client applications.
With these benefits in mind, it would seem obvious that HTML5 is the right strategic choice for developing mobile enterprise apps. However, much like the early Web, there are challenges with HTML5 that must be addressed before it is truly enterprise ready.
Overcoming HTML5's Limitations
Whenever HTML5 is suggested as a solution, it encounters these principal objections:
Security. Security is and should be of primary concern as enterprises embrace mobility and select a development methodology for mobile apps. Unlike the device feature gap, there is no tidy solution to securing enterprise applications available on laptops and desktops that can be easily migrated to mobile devices. In this case, the migration to mobile presents an opportunity to address security better and more cleanly.
I believe the first line of defense should be separating the browser for the trusted Web from the browser for the untrusted Web. Mobile devices come with the untrusted browser installed already, so the enterprise needs to ensure that enterprise mobile apps are only run in a trusted browser.
Beyond this separation of trusted vs. untrusted browsing, the trusted browser itself must protect the data managed by the browser and the connection to the corporate network used by the browser against infiltration from malware on the device. There is no way to prevent the device from being infected by malware, but it is possible to select a browser that can at least defend against a sophisticated malware attack. (Separately, the enterprise should also be securing the data accessed by the browser, but that is a separate topic.)
Performance. Rounding out the top enterprise objections to HTML5 is the concern that native applications perform better than their HTML5 counterparts. While this is true in general, the more important question is for what category of applications is this performance difference perceptible to an end user? As in the desktop world, real-time and media driven applications (games, video editing, etc.) stress the performance limits of the device. Data-driven applications, which include the vast majority of enterprise applications, do not. While there will always be a niche for native apps, it is just that a niche that should only be used when the business needs offset the significant cost and complexity of developing, delivering, and supporting native apps.
Selecting an HTML5 Development Platform
If an enterprise chooses to move ahead with HTML5, it is important to avoid pitfalls in choosing technologies for developing mobile apps. The first pitfall is using a hybrid-native approach when deploying mobile HTML5 apps. The second pitfall is relying on proprietary platforms that masquerade as standard HTML5.
A plugin-enhanced browser is far different from an application that ships with a browser, but the model of hybrid-native packaging today is to ship the browser with the app. Thanks to the offline capabilities of HTML5, there is no reason that a pure HTML5 application cannot deliver the same functionality online and offline as a hybrid-native application. The difference is solely in the associated overhead of delivering, upgrading, and maintaining the app. Along all of these dimensions, a pure HTML5 app is, I believe, a superior choice.
Mobility is an opportunity for every enterprise to enable productivity anytime and anywhere. Reaching that goal requires extending the enterprise applications that drive business processes to mobile devices while also developing new applications that leverage the unique capabilities of mobile devices. The benefits of embracing mobility are significant; however, realizing those benefits requires selecting the right app development methodology and supporting technology stack.
Selecting pure HTML5 development as that development method ensures that the lessons (and investments) of 15 years of enterprise Web development are not lost. Choosing a browser technology that addresses the enterprise's requirements for security and performance without compromising on HTML5's benefits ensures a successful and cost-effective strategy for application development and mobilizing the enterprise.