Upgrade to Pro — share decks privately, control downloads, hide ads and more …

eseconf-zurich

 eseconf-zurich

HTML5: sprinkling magical pixie dust wherever it goes, Excellence in Software Engineering Conference 2012, Zurich

f you read the tech press or hysterical analysts, you'd be forgiven for thinking that HTML5 cures cancer, brings about world peace and turns water into beer (proper beer - the English stuff).

Bruce will harsh your mellow by exploding the myths and deflating the hype. We'll look at what HTML5 is really good for, where we are today and where we're going and look at when to go native and when to use HTML5.

No hype, no hysteria, just HTML5. And a little bit of pixie dust.

bruce lawson

April 24, 2012
Tweet

More Decks by bruce lawson

Other Decks in Technology

Transcript

  1. If your site is unusable, or an organisational vanity project

    rather than serving customers, HTML5 won't change that
  2. HTML5 is not just about mobile “Features should be designed

    for universal access. ... Features should, when possible, work across different platforms, devices, and media.” dev.w3.org/html5/html-design-principles/
  3. Analyst nonsense (with spurious statistics!) “While most new mobile browsers

    support HTML5, some older browsers still don’t.” “By 2016, more than 2.1 billion mobile devices will have HTML5 browsers, up from just 109 million in 2010.” articles.businessinsider.com/2012-03-29/tech/31253432_1_mobile-experience-mobile-developers- mobile-devices www.totaltele.com/view.aspx?ID=466497
  4. © Copyright 2004-2010 Apple Computer, Inc., Mozilla Foundation, and Opera

    Software ASA. You are granted a license to use, reproduce and create derivative works of this document. http://www.whatwg.org/specs/web-apps/current-work/
  5. “...extending the language to better support Web applications, since that

    is one of the directions the Web is going in and is one of the areas least well served by HTML so far. This puts HTML in direct competition with other technologies intended for applications deployed over the Web, in particular Flash and Silverlight.” Ian Hickson, Editor of HTML5 lists.w3.org/Archives/Public/public-html/2009Jan/0215.html
  6. built-in validation (of course you should still validate on the

    server) <input type=email> <input type=url required> <input type=range min=10 max=100> <input type=date min=2010-01-01 max=2010-12-31> <input pattern="[0-9][A-Z]{3}" placeholder="9AAA"> http://people.opera.com/brucel/demo/html5-forms-demo.html
  7. localStorage/sessionStorage like cookies... document.cookie = 'key=value; expires=Thu, 15 Feb 2010

    23:59:59 UTC; path=/' … /* convoluted string operations go here … */
  8. Web Database – full relational DB / SQL var db

    = openDatabase(dbName, version, displayName, expectedSize); db.transaction(function(tx) { tx.executeSql(sqlStatement, [], function (tx, result) { /* do something with the results */ }); });
  9. Web Database – full relational DB / SQL var db

    = openDatabase(dbName, version, displayName, expectedSize); db.transaction(function(tx) { tx.executeSql(sqlStatement, [], function (tx, result) { /* do something with the results */ }); });
  10. Geolocation JavaScript API to get device's latitude and longditude, with

    user permission. Device Orientation Events: information about the physical orientation and motion of a hosting device.
  11. Web Sockets, Server-Sent Events Web Sockets – a 2-way connection

    to server that ends wasteful polling and minimises bandwidth-hogging headers. Think chat / multi-player games. Server-Sent Events allow you to push information to the browser without polling. Think latest headlines/ stock prices.
  12. WebRTC WebRTC is a free, open project that enables web

    browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose. The WebRTC initiative is a project supported by Google, Mozilla and Opera. http://sites.google.com/site/webrtc/ http://www.whatwg.org/specs/web-apps/current-work/complete/video-conferencing- and-peer-to-peer-communication.html
  13. Native or HTML5? • HTML is the Web, so works

    anywhere JavaScript runs (with polyfills for old browsers) • HTML is simple to distribute and update – just a URL • Native allows you access to more device capabilities (for now) • Native is a little faster (does that matter?) • Native apps are easier to control/ monetise
  14. “When we update the Facebook product we have to update

    about seven different versions. We have to update the website that runs on your PC, the iPhone app, the Android app, the Blackberry app, the mobile site and a number of other device-specific versions of Facebook. It's becoming a real engineering challenge for us, as well as other technology companies. Because of that, I think we're spending a lot of our time investing in HTML 5.” Bret Taylor, Facebook CTO http://www.bbc.co.uk/news/business-12406171
  15. Golden Rules of HTML5 Development • Code to the standard,

    not browsers • Validate and test in desktop and mobile (use Opera Mobile Emulator and Opera Dragonfly) • Start with a base of valid, accessible HTML and progressively enhance • No browser-sniffing. Use feature detection. • Use all vendor prefixes in your CSS
  16. Resources • These slides http://speakerdeck.com/u/brucel/p/eseconf-zurich • Browser support matrix www.caniuse.com

    • Modernizr www.modernizr.com • Polyfill collection https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills • HTML5 Spec (Web Developer's View) http://developers.whatwg.org/ • Articles: http://dev.opera.com/ • Articles: http://html5doctor.com/ • Mobile-friendly: The mobile web optimization guide http://dev.opera.com/articles/view/the-mobile-web-optimization-guide/ • Dragonfly, Opera Mobile Emulator http://www.opera.com/developer/tools/
  17. Thanks Fairy – Lisa Meek larissameek.com/2008/08/11/fairy-dust-a-free-desktop-wallpaper/ Brian May's site guide

    http://www.brianmay.com/siteguide.html Fingernails - Mamipeko NEWT + Shield - Rob Winters, Mike Brennan, W3C