Art.sy sent me to attended DevCon5 at NYU a few weeks ago. What a great title. It gets better, "DevCon5: Prepare for the evolution to HTML5". You know what happens to those that don't evolve?
EXTINCTION. Are you scared yet?
Word play really is the best play.
So the term "HTML5" carries a lot more than markup: CSS3, offline storage, 3D! Checkout the HTML5 logo page for the complete picture.
Not Your Father's Web Apps
I think the most inspiring presentation I saw was Charles Jolley's (creator of the SproutCore JavaScript framework and CEO of Strobe), HTML5 Is The Future (But Not Like You Think).
I remember when SproutCore was released after Apple mirrored their new iPhoto events with MobileMe galleries. Steve Jobs demoed the web galleries in his keynote and while I knew what was possible in a web browser, I was blown away. When I went to MobileMe and looked under the hood, I was led to SproutCore. SproutCore also drives Apple's new iCloud web applications.
Jolly described a future of multi-head applications (aka multi-screen, multi-client, multi-device). Some possible elements of "multi":
- A web app to run in a desktop browser
- A mobile web app optimized for mobile devices (maybe a tablet optimized web app too?)
- iOS/Android/WebOS/RIM/Windows? native app for phones
- iOS/Android/WebOS/RIM native app for tablets
- Televisions?
- Game Consoles?
- Refrigerators?
That's a lot of clients. Check out this article that discusses how Netflix is coping with over four hundred devices. Spoiler alert... HTML5 is a big part of their solution. HTML5 and a custom build of Webkit to run it on.
The Trifecta
Maybe your app doesn't need to support 400+ devices. Let's settle on smart phones, tablets, and traditional web browers (the Trifecta!). Jolley mentioned the different ways these sets of devices are interacted with. Each user interface must be designed specifically for the device that will run it.
Jakob Nielson is a well known web usuability guru. His article, Transmedia Design for the 3 Screens (Make That 5), offers some insite on how different screen sizes are used. The data presented here can help developers focus and prioritize their efforts. Not surprisingly, for many applications, the standard PC still offers the most benefit. When supporting "multi", Nielson strongly advocates separate and distinct UIs accross devices:
Create separate and distinct UI designs for device categories that are sufficiently different. It's okay to have a similar design for, say, iOS and Android, with only a few modifications to suit each platform vendor's human interface guidelines. But your mobile sites and full desktop sites must be different, just as your mobile and desktop applications should be different.
He defines a transmedia design strategy as focusing on success in balancing these four areas: visual continuity, feature continuity, data continuity, and content continuity.
To conclude: cross-platform UIs should be different but similar.
A Basic Strategy
While the unique business goals of each device's interface can get quite complex, we can apply good software design principles to a larger system and reap the same benefits.
-
A RESTful (HTTP) JSON API
HTML5 apps, iOS, and Android all speak HTTP, the data transfer protocol of the web. Decoupling your data and common logic through a RESTful API is the first step to supporting multiple applications on different devices. This layer can be independently tested, versioned, and abstracts all of the common concerns any client application will require.
(I specified JSON above because XML isn't a great fit for the HTML5 clients consuming the API.)
-
Thick HTML5 Clients
This is the future Chris Jolley presented. Thick HTML5 web clients with common JavaScript layers that can be deployed on different devices. In some cases these common JavaScript layers can be leveraged in "hybrid" mobile apps that can be packaged as an iOS or Android native application while still using web technologies for much of the UI.
Art.sy
We're taking this approach at Art.sy. Supporting smart phones and tablets is part of our core mission of helping people discover art while they're out enjoying it as well as researching at home on a PC. We started with an API from day one and plan to decouple thick clients for web as well as mobile devices.
It's a very exciting time to be developing with web technologies and the future looks very bright for HTML5. Whether we need not fear extinction, clearly HTML5 offers a lot to a multi-device supported system and is worth investing in.