HTML5 is a set of standards for web development that can be used to create both mobile websites and apps. So the decision to use HTML5 is not a decision about whether you should do a mobile website or an app. It’s just a question of how you will code your apps.

For Mobile Websites

Yes, our mobile websites use HTML5 exclusively.

For Native Applications

We use HTML5 for some of our application screens where it provides a benefit.

HTML5 is only a draft standard at this point, and not all browsers support it. It includes specifications for both front-end interactivity and internal data storage in web-based apps. We use HTML5 tag structures, (following the draft standard) in our development currently, but we have to use Javascript workarounds to support older browsers.

HTML5 simply doesn’t provide the performance and flexibility for advanced mobile applications that native iOS or Android code does. There’s a noticeable difference in performance and behavior between an HTML5 app and a true native app.

That may change in the future – when it does, the power of the Nomad platform comes into play as we can then create an HTML5 “back-end” that delivers your same content using this additional delivery platform. Nomad gives you the flexibility of native applications on the most popular two smartphone device families (by far) today, with the ability to leverage the benefits of HTML5 as it matures and is supported in a wider range of mobile browsers.

Simply put, there are some cool things we do in our native apps on the Nomad platform that you can’t do yet with HTML5. We’re paying close attention to the developing HTML5 standard for mobile devices, and while the technology is very promising, the reality does not yet match the hype.

If we built our apps entirely in HTML5 today, we would lose:

  • offline maps and customization of map pins and disclosure boxes
  • sophisticated manipulation of large sets of content
  • responsiveness of some of our screen interactions – HTML5 is often slower than native device code.
  • in-app purchasing, ability to download and merge new sets of content

Also, geolocation in HTML5 does not work on BlackBerry or Nokia devices, so it wouldn’t be much help in cross-platform travel apps yet.

Finally, HTML5 relies on the phone’s built-in web browser, even when you use it inside an app. Browser capabilities on mobile devices are still widely different, even among iOS devices, so the “write once run anywhere” claims are not possible until HTML5 becomes a standard and the majority of phones support it consistently. Here’s a chart showing webkit feature support across many mobile devices and versions:

This technology will one day be widely available and working. But it is not the case today. We want to caution you against anyone who says that you should be doing everything in HTML5 today. That would be a mistake, and it would significantly limit the experience you can offer in your apps.

What is HTML5? (Geek warning)

  • More semantic markup (“article,” “header,” “section”)
  • The “canvas” element, which brings drawing and animating up to about Flash MX level
  • CSS3 animations, selectors, transitions, etc.
  • LocalStorage, a client-side SQLLite database built into the browsers
  • Geolocation (which is pretty sketchy still)

You can use HTML5 to make some nice cloud-based applications, some of which can operate for a while if the net connection disappears. For example, the Kindle Cloud Reader which uses HTML5 can be set up for offline reading – you can download your books into LocalStorage and continue to read them even if there’s no connection. But it’s still usually reliant on the client/server relationship, whereas Nomad’s native apps only interact with the server to get periodic content updates or when live data is essential to the experience.