SlideShare a Scribd company logo
HTML 5 and the Mobile
        Web
  ILRT Staff Development Week, July, 2010

      Mike Jones (mike.a.jones@bris.ac.uk)
     & Damian Steer (d.steer@bristol.ac.uk)
Overview
•   Native applications vs Mobile Web

•   Current mobile support for Webkit

•   W3C recommendations for mobile websites

•   HTML 5 ... a very brief potted history

•   The video and audio tags

•   Offline storage and application cache

•   CSS 3 support

•   Support for gestures
Phone            SMS           Contacts


      GPS            Compass         Bluetooth


     Storage         Offline use       Video


Why bother with web applications?

      Audio          Graphics        Animation


       3D         Motion detection   Gestures


     Camera            Music         Calendar
Why bother with web applications?
Phone            SMS           Contacts


      GPS            Compass         Bluetooth


     Storage         Offline use       Video


Why bother with web applications?

      Audio          Graphics        Animation


       3D         Motion detection   Gestures


     Camera            Music         Calendar
Current mobile support
      for webkit
                                   Engine                  HTML 5 (*)
      Mobile Safari                Webkit                       Yes
        Android                    Webkit                       Yes
  Blackberry 6 Browser             Webkit                       Yes
       Symbian 3                   Webkit                       Yes
        MeeGo                Webkit (Chromium)                  Yes
    Internet Explorer         Internet Explorer 7               No
    WebOS Browser                  Webkit                       Yes
    Bada OS Browser                Webkit                      Yes?
     Opera Mobile             Opera Presto 2.2                  Yes
       Opera Mini             Opera Presto 2.2                  Yes
         Fennec                     Firefox                     Yes
Myriad (former Openwave)           Webkit                       No
     BOLT Browser                  Webkit                        ?

    (*)HTML support might not mean support for the whole specification.
Source: http://radar.oreilly.com/2010/05/mobile-operating-systems-and-b.html
W3C Recommendations
 for the Mobile Web
•   Mobile Best Practices (last updated 2008)
    http://www.w3.org/TR/mobile-bp/

•   One Web

•   Expected stuff: reduce network traffic, set
    caches, set character encoding, don’t use tables
    for layout, dump image maps etc.

•   mobileOK validator:
    http://validator.w3.org/mobile/
HTML 5 ... a very brief
      potted history
•   2004: Web Hypertext Application Technology Working
    Group (WHATWG) - Apple, Mozilla and Opera - started
    work on Web Applications 1.0

•   Meanwhile W3C is working on XHTML 2.0

•   2007: W3C drops XHTML and forms HTMLWG

•   2008: first draft of HTML 5 is published

•   WHATWG and W3C both maintain specification
    documents

•   Watching the process is entertaining, if not confusing:
    http://lastweekinhtml5.blogspot.com/
The video and audio tags

• video and audio tags are similar
• Strategies for dealing with browsers that
  don’t support the tag, or those that
  support the tag but specific codecs
• They are just elements - can be
  manipulated by CSS and JavaScript
Big Buck Bunny in Stages
On the iPhone
Working offline:
    the application cache

• <html manifest=”my.manifest”>
• text/cache-manifest
• Specify which resources can be cached,
  which are live
• Seems easy. Bit fiddly in practice.
Working offline:
       Persistence

• No more google gears or cookie hacks!
• Not one, but three options!
• Tread carefully, standards politics beast
  approaching...
Working offline:
       localStorage
• localStorage.setItem(key, value)
• localStorage.getItem(key)
• removeItem(key), clear()
• same domain origin scope
• Simple! Widely supported!
Working Offline:
  Web SQL Database
• Finally, SQL in your browser
• Transactions, prepared statements, joins...
• Synchronous and Asynchronous APIs
• Available in WebKit
• ][ chance of being a recommendation
• Firefox and IE won’t support it
Working Offline:
Indexed Database API
• Store objects with fields
• Create indexes over the object store
• Transactions, key ranges, cursors
• Synchronous and Asynchronous API
Working Offline:
Indexed Database API
connection = db.indexedDB.open("Fruits", "A Fruit Database!");

fruits = connection.createObjectStore("A Fruity Object Store", "fruit", true);
fruitIndexByColor = fruits.createIndex("A Fruity Index", "color", false);

fruits.put({ fruit: "Apple", color: "Red" });
fruits.put({ fruit: "Tangerine", color: "Orange" });
fruits.put({ fruit: "Grape", color: "Purple" });

var cursor = fruitIndexByColor.openCursor(undefined, db.IDBCursor.NEXT_NO_DUPLICATE);

assertEquals("Orange", cursor.key);
assertEquals("Tangerine", cursor.value);
cursor.continue();

assertEquals("Purple", cursor.key);
assertEquals("Grape", cursor.value);
cursor.continue();

assertEquals("Red", cursor.key);
assertEquals("Apple", cursor.value);
assertFalse(cursor.continue());
cursor.close();
Working Offline:
Indexed Database API
• No implementations currently
• Mozilla and Webkit working on it
• Much better chance of becoming a
  recommendation
• Suspect libraries will fill usability gap
CSS 3 Support
•   WWDC 2010 videos via iTunes (need a developer
    account - free)
    http://developer.apple.com/videos/wwdc/2010/

          •   Session 503 - CSS Effects, Part 1: UI
              Elements and Navigation

          •   Session 504 - CSS Effects, Part 2:
              Galleries and 3D Effects

•   Introduction to CSS 3 (Working Draft)
    http://www.w3.org/TR/2001/WD-css3-
A few features ...
• @font-face
• webkit-box-shadow
• -webkit-gradient (linear and radiant). These
  can be assigned to a background image.
• border-radius
• -webkit-box-reflect
• -webkit-transition
A pointless example in
       stages ...
A richer demo from
         WWDC 2010




No images or plug-ins are used - just HTML, CSS and
                     JavaScript.
Works on a phone ...




      Source code
Apple demo - transitions
     and JavaScript




        Source code
Support for gestures
•




                               http://commons.wikimedia.org/wiki/File:Gesture_raised_fist_with_index_and_pinky_lifted.jpg
    Touch screen devices
    emulate a mouse with
    buttons reasonable well

•   WebKit supports new
    event types for gestures

•   Also supports low-level
    touch events

•   Not standard!
Support for gestures:
         high level

• gesturestart, gesturechange, gestureend
• element.addEventListener(..., handler, false)
• event.scale, event.rotation
Support for gestures:
         low level
• touchstart, touchmove, touchend,
  touchcancel
• event.touches
• event.targetTouches
• event.changedTouches
• Handle cancel
Questions?

More Related Content

PDF
HTML 5 & The Modern Web
PDF
The mobile browser world
PDF
Mobile Web High Performance
PPT
Firefox os the web, mobile (for yahoo! hack europe - april 2013)
PDF
Introduction to Phonegap
PDF
Personal Success An Inner City Perspective Ebook
PDF
Lcf Wid090909 Presentation
PDF
MyMobileBristol
HTML 5 & The Modern Web
The mobile browser world
Mobile Web High Performance
Firefox os the web, mobile (for yahoo! hack europe - april 2013)
Introduction to Phonegap
Personal Success An Inner City Perspective Ebook
Lcf Wid090909 Presentation
MyMobileBristol

Similar to HTML5 and the Mobile Web (20)

PDF
DDive- Giuseppe Grasso - mobile su Lotus
PDF
Mobile App Development
PDF
HTML5 or Android for Mobile Development?
KEY
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
PDF
Best practices for delivering quality web experiences
KEY
HTML5, PhoneGap and What's Next
KEY
Philly ete-2011
PDF
PPTX
Html ppts
PPTX
PDF
Unify - JSConf.EU 2010
PPT
HTML5 Webinar - Mind Storm Software
PDF
Mobile Web High Performance
PDF
Smau milano 2012 arena social media emanuele-bolognesi
PDF
The Mobile Web Revealed For The Java Developer
KEY
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
KEY
Appcelerator Titanium at Mobile 2.0
ZIP
Mobile for the rest of us
PPTX
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
KEY
HTML5 로 iPhone App 만들기
DDive- Giuseppe Grasso - mobile su Lotus
Mobile App Development
HTML5 or Android for Mobile Development?
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
Best practices for delivering quality web experiences
HTML5, PhoneGap and What's Next
Philly ete-2011
Html ppts
Unify - JSConf.EU 2010
HTML5 Webinar - Mind Storm Software
Mobile Web High Performance
Smau milano 2012 arena social media emanuele-bolognesi
The Mobile Web Revealed For The Java Developer
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Appcelerator Titanium at Mobile 2.0
Mobile for the rest of us
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
HTML5 로 iPhone App 만들기
Ad

More from MrJ1971 (9)

PDF
KYBOTM poster for DHOxSS
PPT
Map Your Bristol
PPTX
Prospectus Editing Tool (PET)
KEY
Bibliographic management on mobile devices


PDF
MyMobileBristol and Nature Locator @ osjmob11
KEY
MCA and MyMobileBristol @ osjmob11
KEY
Nature Locator @ Dev8D
KEY
MyMobileBristol @ Dev8D
ZIP
Mobile Campus Assistant - Dev8D Lightening Talk
KYBOTM poster for DHOxSS
Map Your Bristol
Prospectus Editing Tool (PET)
Bibliographic management on mobile devices


MyMobileBristol and Nature Locator @ osjmob11
MCA and MyMobileBristol @ osjmob11
Nature Locator @ Dev8D
MyMobileBristol @ Dev8D
Mobile Campus Assistant - Dev8D Lightening Talk
Ad

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Modernizing your data center with Dell and AMD
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Transforming Manufacturing operations through Intelligent Integrations
PDF
Advanced IT Governance
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
cuic standard and advanced reporting.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Sensors and Actuators in IoT Systems using pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
MYSQL Presentation for SQL database connectivity
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
Dropbox Q2 2025 Financial Results & Investor Presentation
Modernizing your data center with Dell and AMD
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Transforming Manufacturing operations through Intelligent Integrations
Advanced IT Governance
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
cuic standard and advanced reporting.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Sensors and Actuators in IoT Systems using pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...

HTML5 and the Mobile Web

  • 1. HTML 5 and the Mobile Web ILRT Staff Development Week, July, 2010 Mike Jones ([email protected]) & Damian Steer ([email protected])
  • 2. Overview • Native applications vs Mobile Web • Current mobile support for Webkit • W3C recommendations for mobile websites • HTML 5 ... a very brief potted history • The video and audio tags • Offline storage and application cache • CSS 3 support • Support for gestures
  • 3. Phone SMS Contacts GPS Compass Bluetooth Storage Offline use Video Why bother with web applications? Audio Graphics Animation 3D Motion detection Gestures Camera Music Calendar
  • 4. Why bother with web applications?
  • 5. Phone SMS Contacts GPS Compass Bluetooth Storage Offline use Video Why bother with web applications? Audio Graphics Animation 3D Motion detection Gestures Camera Music Calendar
  • 6. Current mobile support for webkit Engine HTML 5 (*) Mobile Safari Webkit Yes Android Webkit Yes Blackberry 6 Browser Webkit Yes Symbian 3 Webkit Yes MeeGo Webkit (Chromium) Yes Internet Explorer Internet Explorer 7 No WebOS Browser Webkit Yes Bada OS Browser Webkit Yes? Opera Mobile Opera Presto 2.2 Yes Opera Mini Opera Presto 2.2 Yes Fennec Firefox Yes Myriad (former Openwave) Webkit No BOLT Browser Webkit ? (*)HTML support might not mean support for the whole specification. Source: http://radar.oreilly.com/2010/05/mobile-operating-systems-and-b.html
  • 7. W3C Recommendations for the Mobile Web • Mobile Best Practices (last updated 2008) http://www.w3.org/TR/mobile-bp/ • One Web • Expected stuff: reduce network traffic, set caches, set character encoding, don’t use tables for layout, dump image maps etc. • mobileOK validator: http://validator.w3.org/mobile/
  • 8. HTML 5 ... a very brief potted history • 2004: Web Hypertext Application Technology Working Group (WHATWG) - Apple, Mozilla and Opera - started work on Web Applications 1.0 • Meanwhile W3C is working on XHTML 2.0 • 2007: W3C drops XHTML and forms HTMLWG • 2008: first draft of HTML 5 is published • WHATWG and W3C both maintain specification documents • Watching the process is entertaining, if not confusing: http://lastweekinhtml5.blogspot.com/
  • 9. The video and audio tags • video and audio tags are similar • Strategies for dealing with browsers that don’t support the tag, or those that support the tag but specific codecs • They are just elements - can be manipulated by CSS and JavaScript
  • 10. Big Buck Bunny in Stages
  • 12. Working offline: the application cache • <html manifest=”my.manifest”> • text/cache-manifest • Specify which resources can be cached, which are live • Seems easy. Bit fiddly in practice.
  • 13. Working offline: Persistence • No more google gears or cookie hacks! • Not one, but three options! • Tread carefully, standards politics beast approaching...
  • 14. Working offline: localStorage • localStorage.setItem(key, value) • localStorage.getItem(key) • removeItem(key), clear() • same domain origin scope • Simple! Widely supported!
  • 15. Working Offline: Web SQL Database • Finally, SQL in your browser • Transactions, prepared statements, joins... • Synchronous and Asynchronous APIs • Available in WebKit • ][ chance of being a recommendation • Firefox and IE won’t support it
  • 16. Working Offline: Indexed Database API • Store objects with fields • Create indexes over the object store • Transactions, key ranges, cursors • Synchronous and Asynchronous API
  • 17. Working Offline: Indexed Database API connection = db.indexedDB.open("Fruits", "A Fruit Database!"); fruits = connection.createObjectStore("A Fruity Object Store", "fruit", true); fruitIndexByColor = fruits.createIndex("A Fruity Index", "color", false); fruits.put({ fruit: "Apple", color: "Red" }); fruits.put({ fruit: "Tangerine", color: "Orange" }); fruits.put({ fruit: "Grape", color: "Purple" }); var cursor = fruitIndexByColor.openCursor(undefined, db.IDBCursor.NEXT_NO_DUPLICATE); assertEquals("Orange", cursor.key); assertEquals("Tangerine", cursor.value); cursor.continue(); assertEquals("Purple", cursor.key); assertEquals("Grape", cursor.value); cursor.continue(); assertEquals("Red", cursor.key); assertEquals("Apple", cursor.value); assertFalse(cursor.continue()); cursor.close();
  • 18. Working Offline: Indexed Database API • No implementations currently • Mozilla and Webkit working on it • Much better chance of becoming a recommendation • Suspect libraries will fill usability gap
  • 19. CSS 3 Support • WWDC 2010 videos via iTunes (need a developer account - free) http://developer.apple.com/videos/wwdc/2010/ • Session 503 - CSS Effects, Part 1: UI Elements and Navigation • Session 504 - CSS Effects, Part 2: Galleries and 3D Effects • Introduction to CSS 3 (Working Draft) http://www.w3.org/TR/2001/WD-css3-
  • 20. A few features ... • @font-face • webkit-box-shadow • -webkit-gradient (linear and radiant). These can be assigned to a background image. • border-radius • -webkit-box-reflect • -webkit-transition
  • 21. A pointless example in stages ...
  • 22. A richer demo from WWDC 2010 No images or plug-ins are used - just HTML, CSS and JavaScript.
  • 23. Works on a phone ... Source code
  • 24. Apple demo - transitions and JavaScript Source code
  • 25. Support for gestures • http://commons.wikimedia.org/wiki/File:Gesture_raised_fist_with_index_and_pinky_lifted.jpg Touch screen devices emulate a mouse with buttons reasonable well • WebKit supports new event types for gestures • Also supports low-level touch events • Not standard!
  • 26. Support for gestures: high level • gesturestart, gesturechange, gestureend • element.addEventListener(..., handler, false) • event.scale, event.rotation
  • 27. Support for gestures: low level • touchstart, touchmove, touchend, touchcancel • event.touches • event.targetTouches • event.changedTouches • Handle cancel

Editor's Notes

  • #4: Ok, but suppose I want to take advantage of these features?
  • #5: Even if you want to cover only ~80% of market that&apos;s quite a few systems. We will return to this
  • #6: And many web clients can do a surprising amount. _Apple_ only introduced apps in second major version of iPhone OS. -- Web was way to go. -- Note (neglected) showcase. I will show how in a little while.