The seemingly never ending debate in the mobile community around the benefits and drawbacks of apps developed using primarily native vs. HTML5 technologies continues to rage on. But is anyone winning? From a cursory Google search, the results speak for themselves:
“Mobile app developers’ interest in HTML5 is slipping…”
“Native vs HTML5 – You’re asking the wrong question…”
“HTML5 now neck and neck with native apps…”
Bloggers and pundits can’t decide which side will win. To be clear, it’s important to have a clearly defined client-side development strategy. Architectural decisions often have lingering consequences that take time and money to address, often when it’s too late. Facebook’s now famous “HTML5 bet” certainly backfired. But within all of the debate, one topic rarely seems to get coverage. And in my mind, it’s actually the most important component.
The Backend System
Whether fronted by a native or HTML5 client side application, the key differentiator for any mobile application is, in fact, the backend system. Think about it, as great as your favorite app’s UI can be, if the service is slow, unstable, or not synced to your desktop or other devices, what are the chances you’ll continue to use that app? The reality is that the most responsive UI in the world still has to wait for backend service calls to complete, in order to show backend data. If those calls linger, or are not efficient, the UI waits. An enterprise application, no matter how innovative, must be able to be managed, measured, and able to respond to different circumstances and needs. If the infrastructure supporting that client is not able to serve those changes effectively, the client app is static, and over a short time, will become useless.
What’s the Answer?
Ultimately, the best enterprise apps require best of breed infrastructures to support them. If too much thought goes into the app, whether it’s natively built or with HTML5, without enough thought put into the supporting backend systems, the app, whether native or not, will ultimately suffer the consequences. A well architected, efficient, responsive infrastructure will be able to serve the needs of any client application, and in many cases, will help ultimately guide client side architectural decisions.