Two forces have converged: 1) Mobility has gone from an optional differentiator to an expected component of any software offering, and 2) HTML5 has been crowned as the solution that will solve the cross-platform problem that Java, Flash, and Silverlight failed to solve before it.
This collision of forces has turned HTML5 into a buzzword with a life of its own. In fact, it appears to be on its way to becoming as detached from reality as the all-time-champion of promising technology turned meaningless buzzword: SOA.
Don’t get me wrong, I believe HTML5 is the best current answer to cross-platform mobile software. Before recommending to my executive management that we build our cross-platform offering in JavaScript, using the family of features loosely known as HTML5, I looked at pure native, cross-platform native with Mono, frameworks like Titanium. I made that recommendation before HTML5 became the cool thing to do, and I haven’t regretted it for a second.
A sure sign that a technology has reached fad level is when articles start to appear pointing out that said new technology will not, in fact, usher in world peace. Such an article was the popular 11 hard truths about HTML5.
The title was a little ominous and I began to read it with some trepidation, as we were still a couple of months away from being ready to ship our HTML5 client application. However, as I read, I was comforted by the fact that although all 11 truths were valid challenges, our team had faced and dealt with each of them.
The article lays out eleven challenges when building an HTML5 application:
- Security is a nightmare.
- Local data storage is limited
- Local data can be manipulated.
- Offline apps are a nightmare to sync.
- The cloud owes you nothing.
- Forced upgrades aren’t for everyone.
- Web Workers offer no prioritization.
- Format incompatibilities abound.
- Implementations are browser-dependent.
- Hardware idiosyncrasies bring new challenges.
- Politics as usual.
It’s a scary list, and they are all true. My team was able to handle and mitigate each of these challenges largely because we had years of experience building native mobile applications and desktop Web applications and much of what we learned there applied in the HTML5 world.
If you don’t have solid answers for each of these challenges, you really ought to get someone on the team who has confidence in dealing with each of them.
You can check my current availability here.