SlideShare a Scribd company logo
A Snapshot of the Mobile
   HTML5 Revolution
        @ jamespearce
The Pledge
Single device            Multi device
Sedentary user            Mobile user
                                 *


Declarative               Imperative
Thin client               Thick client
Documents                Applications

         * or supine, or sedentary, or passive, or...
A badge for all these ways
   the web is changing
HTML5 is a new version of HTML4,
 XHTML1, and DOM Level 2 HTML
 addressing many of the issues of
 those specifications while at the
  same time enhancing (X)HTML
to more adequately address Web
          applications.
                       - WHATWG Wiki
WHATWG
What is an Application?
Consumption vs Creation?
       Linkable?
    User Experience?
     Architecture?
Web
Site


       sites

               Web
               apps

                       Native
App




                        apps

                      Nativeness
MS


     RIM
                     Google



        Apple




 Top US Smartphone Platforms
August 2011, comScore MobiLens
C#


       J2ME/Air
                          Java/C++



            Obj-C




Native programming languages you’ll need
              August 2011
IE


 WebKit
                    WebKit



     WebKit




Browser platforms to target
       August 2011
There is no WebKit on Mobile
                        - @ppk
But at least we are using
     one language,
      one markup,
    one style system
One Stack
Camera       WebFont        Video      Audio     Graphics
                                                              HTTP
 Location
                         CSS Styling & Layout                 AJAX
 Contacts
                                                             Events
   SMS                          JavaScript
                                                             Sockets
Orientation
                             Semantic HTML                    SSL
   Gyro

              File Systems      Workers &
                                                Cross-App
               Databases         Parallel
                                                Messaging
              App Caches        Processing
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 Revolution
The Turn
IE   Chrome   Safari   Firefox   iOS   BBX   Android
            @font-face
                 Canvas
HTML5 Audio & Video
          rgba(), hsla()
        border-image:
        border-radius:
          box-shadow:
         text-shadow:
                opacity:
Multiple backgrounds
   Flexible Box Model
      CSS Animations
         CSS Columns
        CSS Gradients
      CSS Reflections
   CSS 2D Transforms
   CSS 3D Transforms
       CSS Transitions
      Geolocation API
 local/sessionStorage
    SVG/SVG Clipping
                   SMIL
             Inline SVG
        Drag and Drop
           hashchange
X-window Messaging
 History Management
     applicationCache
         Web Sockets
         Web Workers
   Web SQL Database
                 WebGL
            IndexedDB
Stay on top of diversity
Can I Use?
http://caniuse.com

Modernizr
http://modernizr.com

DeviceAtlas
http://deviceatlas.com
100%
Support




          Browsers




                     Capabilities & specifications
100%
Support




          Browsers         Polyfills Frameworks




                     Capabilities & specifications
A Snapshot of the Mobile HTML5 Revolution
<!DOCTYPE html>
<html>
    <head>
        <title>jQuery Mobile</title>
        <script src="jq.js"></script><script src="jqm.js"></script>
        <link rel="stylesheet" href="jqm.css" />
    </head>
    <body>
        <div data-role="page" id="home">
            <div data-role="header">
                <h1>Hello World</h1>
            </div>
            <div data-role="content">
                <ul data-role="listview" data-inset="true">
                    <li data-role="list-divider">Continents</li>
                    <li><a href="na.html">North America</a></li>
                    <li><a href="sa.html">South America</a></li>
                    <li><a href="eu.html">Europe</a></li>
                </ul>
            </div>
        </div>
    </body>
</html>
A Snapshot of the Mobile HTML5 Revolution
<!DOCTYPE html>
<html>
    <head>
        <title>Sencha Touch</title>
        <script src="st.js"></script>
        <link rel="stylesheet" href="st.css" />
        <script type="text/javascript" charset="utf-8">

            new Ext.Application({
                launch: function() {
                    var continents = new Ext.data.Store({
                        model: Ext.regModel('', {fields: ['name', 'link']}),
                        data: [
                            {name: 'North America', link:'na'},
                            {name: 'South America', link:'sa'},
                            {name: 'Europe', link:'eu'}
                        ]
                    });
                    new Ext.Panel({
                        fullscreen: true,
                        dockedItems: [{
                            xtype: 'toolbar', title: 'Hello World',
                        }],
                        items: [{
                            xtype: 'list', store: continents, itemTpl: '{name}'
                        }]
                    });
                }
            });

        </script>
    </head><body></body>
</html>
A Snapshot of the Mobile HTML5 Revolution
One Web stack


                  request
User interface               Rendering
                 response
Business logic

   Storage



    server                     client
An Alternative Web Stack


                  User interface
          sync
  API             Business logic

Storage              Storage



 server               client
But there is a
a place for both
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 Revolution
But...
HTML5 apps can’t match
  native performance


       (true, sometimes)
http://vimeo.com/30296006


http://vimeo.com/30324079
Are HTML5 apps more
 e cient to develop?


  (yes, in theory, but it’s early days)
A Snapshot of the Mobile HTML5 Revolution
24 dev-months
          for iOS


http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
12 further dev-months
for Android & BlackBerry


  http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
...but more
engagement
than
the native app
Mobile HTML5
   development
lacks good tooling

       (yes)
http://github.com/jamesgpearce/confess
Weinre
HTML5 apps
can’t be monetized,
can’t be distributed

   (not a technology problem)
Web
Compromise


             sites
                     Web
                     apps
                            Hybrid
                             apps
                                      Native
                                       apps

                                     Nativeness
Camera       WebFont        Video      Audio     Graphics
                                                              HTTP
 Location
                         CSS Styling & Layout                 AJAX
 Contacts
                                                             Events
   SMS                          JavaScript
                                                             Sockets
Orientation
                             Semantic HTML                    SSL
   Gyro

              File Systems      Workers &
                                                Cross-App
               Databases         Parallel
                                                Messaging
              App Caches        Processing
Browser
 Camera       WebFont        Video      Audio          Graphics
                                                                   HTTP
 Location
                         CSS Styling & Layout                      AJAX
 Contacts
                                                                  Events
   SMS                          JavaScript
                                                                  Sockets
Orientation
                             Semantic HTML                         SSL
   Gyro

              File Systems      Workers &
                                                  Cross-App
               Databases         Parallel
                                                  Messaging
              App Caches        Processing
Native Wrapper

                                         WebView
 Camera       WebFont        Video      Audio     Graphics
                                                              HTTP
 Location
                         CSS Styling & Layout                 AJAX
 Contacts
                                                             Events
   SMS                          JavaScript
                                                             Sockets
Orientation
                             Semantic HTML                    SSL
   Gyro

              File Systems      Workers &
                                                Cross-App
               Databases         Parallel
                                                Messaging
              App Caches        Processing
A Snapshot of the Mobile HTML5 Revolution
Native app stores
have a dirty secret
A Snapshot of the Mobile HTML5 Revolution
HTML5 apps
   can’t access
device functionality

      (goddamn it)
Native Wrapper

                                         WebView
 Camera       WebFont        Video      Audio     Graphics
                                                              HTTP
 Location
                         CSS Styling & Layout                 AJAX
 Contacts
                                                             Events
   SMS                          JavaScript
                                                             Sockets
Orientation
                             Semantic HTML                    SSL
   Gyro

              File Systems      Workers &
                                                Cross-App
               Databases         Parallel
                                                Messaging
              App Caches        Processing
Hybrid apps
- the ultimate polyfill
PhoneGap^H^H^H
 Apache Callback
    AppMobi
   NimbleKit
Recent browser updates
iOS 5
Input types
contenteditable
position:fixed
classList
XHR2
Script defer & async
Inline SVG
Web Workers
overflow: scroll;
-webkit-overflow-scrolling: touch;
http://jamesgpearce.github.com/compios5/
Android 4
SVG at all
CSS3 3D transforms
classList
XHR2
Script defer & async
<details> & <summary>
File reader
Device orientation
Navigation timing
window.performance
<input type="file" id="picker"
    accept="image/*"
    capture="camera"
>

// camcorder
// microphone
// filesystem

var image = picker.files[0];
The Prestige
Sir Isaac Newton
Three Laws of Motion

(the universe works as we might expect it to)
Albert Michelson   Edward Morley
Light Travels at a
        Constant Speed
(the universe doesn’t work as we thought it would)
A Snapshot of the Mobile HTML5 Revolution
Relativistic Mechanics   Exploration



  Classical Mechanics    Familiarity



 Quantum Mechanics       Exploration
The Web Today
    is like
Physics in 1900
Mobile
is our Michelson-Morley
       Experiment
Apps or Sites?
 Responsive Design?
  Browser diversity?
   Mobile Context?
     One Web?
(an inability to answer these questions does
 not constitute an excuse not to innovate)
What does the web look
 like when you have...
Camera
Microphone
 Contacts
 Calendar
Messaging
Telephony
   NFC
     ?
Media Capture (HTML)      Media Capture (API)
Battery status            Application Registration
Contacts                  Calendar
Messaging (SMS, MMS...)   Feature Permissions
Network Information API   Sensor API
                          Vibration API
                          Menu API
Audio Volume
                          Permissions for APIs
Beep
Gallery
Systems info and events
Tasks
Accelerometer       APDU (SmartCard)
Orientation         Bluetooth
Camera              Crypto
DeviceStatus        DLNA
Filesystem          Server Push
Messaging           Sensor
Geolocation         Telephony
PIM 
Contacts
Calendar
Tasks
DeviceInteraction
Telephony
Messaging
Contacts
Clock
Camera
Filesystem
Calculator
Device Status
Settings
Accelerometer
Mouse Lock
Maps
The mobile web becomes
 more than a 320px web
window.addEventListener(
   'appointmentdue',
   function(appt) {
      if (device.near(WORK)) {
        siri.remind(
          contacts.get('Peter'),
          calendar.getDetails(appt)
        );
      }
   },
   false
);
               (PS: This code does not work. Yet)
A Snapshot of the Mobile HTML5 Revolution
Mobile device APIs are
   the web’s next
 great leap forward
A Snapshot of the Mobile HTML5 Revolution
James Pearce
@ jamespearce

More Related Content

PDF
HTML5 and the dawn of rich mobile web applications pt 2
PDF
Bd conf sencha touch workshop
PDF
Create a mobile web app with Sencha Touch
PDF
Introduction to jQuery Mobile - Web Deliver for All
PDF
HTML5 and CSS3 refresher
PDF
Intro to html 5
PPTX
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
PPTX
Html5 on Mobile(For Developer)
HTML5 and the dawn of rich mobile web applications pt 2
Bd conf sencha touch workshop
Create a mobile web app with Sencha Touch
Introduction to jQuery Mobile - Web Deliver for All
HTML5 and CSS3 refresher
Intro to html 5
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Html5 on Mobile(For Developer)

What's hot (20)

PPT
jQuery Mobile
PDF
PPT
Ruby on Rails: Building Web Applications Is Fun Again!
PPTX
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
PDF
HTML5 Essentials
PDF
jQuery Mobile: Progressive Enhancement with HTML5
PPTX
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
PPTX
SPSNH 2014 - The SharePoint & jQueryGuide
PDF
An Introduction To HTML5
PDF
Local storage in Web apps
PPT
Intro to-html-backbone
PPTX
SPTechCon - Share point and jquery essentials
PDF
Rich Portlet Development in uPortal
PPT
jQuery Mobile with HTML5
PDF
Designing Ajax Principles And Patterns For Designing Rich Internet Appl...
PPT
Usability In Mobile Applications
PPTX
The SharePoint & jQuery Guide - Updated 1/14/14
PPTX
SharePoint Saturday St. Louis - SharePoint & jQuery
PDF
Mobile themes, QR codes, and shortURLs
PPSX
Introduction to Html5
jQuery Mobile
Ruby on Rails: Building Web Applications Is Fun Again!
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
HTML5 Essentials
jQuery Mobile: Progressive Enhancement with HTML5
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
SPSNH 2014 - The SharePoint & jQueryGuide
An Introduction To HTML5
Local storage in Web apps
Intro to-html-backbone
SPTechCon - Share point and jquery essentials
Rich Portlet Development in uPortal
jQuery Mobile with HTML5
Designing Ajax Principles And Patterns For Designing Rich Internet Appl...
Usability In Mobile Applications
The SharePoint & jQuery Guide - Updated 1/14/14
SharePoint Saturday St. Louis - SharePoint & jQuery
Mobile themes, QR codes, and shortURLs
Introduction to Html5
Ad

Viewers also liked (14)

PDF
Society for medicare introduction
PPT
Rali sical 2010
PPTX
Guia resumida para el blog
PDF
Aug 16 workshop backgrounder final
PDF
HTML5 for Mobile - When and Why
 
PDF
HTML5 for mobile - DiGi Challenge for Change
PPT
Html5 on mobile
PPT
Introduction to-the-industrial-revolution-11621
PPTX
Cross Platform HTML5 Mobile Development and the Firefox OS
KEY
HTML5 for Mobile
PDF
HTML5 on mobile
PPT
Introduction to HTML
PPT
FOOD & BEVERAGE MANAGEMENT
Society for medicare introduction
Rali sical 2010
Guia resumida para el blog
Aug 16 workshop backgrounder final
HTML5 for Mobile - When and Why
 
HTML5 for mobile - DiGi Challenge for Change
Html5 on mobile
Introduction to-the-industrial-revolution-11621
Cross Platform HTML5 Mobile Development and the Firefox OS
HTML5 for Mobile
HTML5 on mobile
Introduction to HTML
FOOD & BEVERAGE MANAGEMENT
Ad

Similar to A Snapshot of the Mobile HTML5 Revolution (20)

PDF
Cross platform mobile web apps
PDF
HTML5 and the dawn of rich mobile web applications pt 1
PDF
An Intro to Mobile HTML5
PDF
Building Cross Platform Mobile Web Apps
PDF
Building cross platform mobile web apps
PDF
Building Cloud-Based Cross-Platform Mobile Web Apps
PDF
HTML5 and the dawn of rich mobile web applications
PDF
An Introduction to Sencha Touch
KEY
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
PDF
What is HTML5
PDF
HTML5がIE10/Windows 8にもたらすもの
PPTX
HTML5: An Overview
PDF
Shreeraj-Hacking_Web_2
PDF
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
PPTX
HTML5 for Rich User Experience
PPTX
PDF
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
PDF
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
PDF
about:HTML&Firefox
PPTX
Architecting For The Windows Azure Platform
Cross platform mobile web apps
HTML5 and the dawn of rich mobile web applications pt 1
An Intro to Mobile HTML5
Building Cross Platform Mobile Web Apps
Building cross platform mobile web apps
Building Cloud-Based Cross-Platform Mobile Web Apps
HTML5 and the dawn of rich mobile web applications
An Introduction to Sencha Touch
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
What is HTML5
HTML5がIE10/Windows 8にもたらすもの
HTML5: An Overview
Shreeraj-Hacking_Web_2
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
HTML5 for Rich User Experience
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
about:HTML&Firefox
Architecting For The Windows Azure Platform

More from James Pearce (12)

PDF
Mobile Device APIs
PDF
The City Bars App with Sencha Touch 2
PDF
A mobile web app for Android in 75 minutes
PDF
Building a Mobile App with Sencha Touch
PDF
City bars workshop
PDF
San Diego Hackathon
PDF
Creating and Distributing Mobile Web Applications with PhoneGap
PDF
Theming and Sass
PDF
Source Dev Con Keynote
PDF
Building tomorrow's web with today's tools
PDF
Sencha Touch for Rubyists
PDF
Serving Mobile Apps from Content Management Systems
Mobile Device APIs
The City Bars App with Sencha Touch 2
A mobile web app for Android in 75 minutes
Building a Mobile App with Sencha Touch
City bars workshop
San Diego Hackathon
Creating and Distributing Mobile Web Applications with PhoneGap
Theming and Sass
Source Dev Con Keynote
Building tomorrow's web with today's tools
Sencha Touch for Rubyists
Serving Mobile Apps from Content Management Systems

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation theory and applications.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
DOCX
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
MYSQL Presentation for SQL database connectivity
Chapter 3 Spatial Domain Image Processing.pdf
Electronic commerce courselecture one. Pdf
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Review of recent advances in non-invasive hemoglobin estimation
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
Encapsulation theory and applications.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
The AUB Centre for AI in Media Proposal.docx

A Snapshot of the Mobile HTML5 Revolution

  • 1. A Snapshot of the Mobile HTML5 Revolution @ jamespearce
  • 3. Single device Multi device Sedentary user Mobile user * Declarative Imperative Thin client Thick client Documents Applications * or supine, or sedentary, or passive, or...
  • 4. A badge for all these ways the web is changing
  • 5. HTML5 is a new version of HTML4, XHTML1, and DOM Level 2 HTML addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. - WHATWG Wiki
  • 7. What is an Application?
  • 8. Consumption vs Creation? Linkable? User Experience? Architecture?
  • 9. Web Site sites Web apps Native App apps Nativeness
  • 10. MS RIM Google Apple Top US Smartphone Platforms August 2011, comScore MobiLens
  • 11. C# J2ME/Air Java/C++ Obj-C Native programming languages you’ll need August 2011
  • 12. IE WebKit WebKit WebKit Browser platforms to target August 2011
  • 13. There is no WebKit on Mobile - @ppk
  • 14. But at least we are using one language, one markup, one style system
  • 16. Camera WebFont Video Audio Graphics HTTP Location CSS Styling & Layout AJAX Contacts Events SMS JavaScript Sockets Orientation Semantic HTML SSL Gyro File Systems Workers & Cross-App Databases Parallel Messaging App Caches Processing
  • 20. IE Chrome Safari Firefox iOS BBX Android @font-face Canvas HTML5 Audio & Video rgba(), hsla() border-image: border-radius: box-shadow: text-shadow: opacity: Multiple backgrounds Flexible Box Model CSS Animations CSS Columns CSS Gradients CSS Reflections CSS 2D Transforms CSS 3D Transforms CSS Transitions Geolocation API local/sessionStorage SVG/SVG Clipping SMIL Inline SVG Drag and Drop hashchange X-window Messaging History Management applicationCache Web Sockets Web Workers Web SQL Database WebGL IndexedDB
  • 21. Stay on top of diversity Can I Use? http://caniuse.com Modernizr http://modernizr.com DeviceAtlas http://deviceatlas.com
  • 22. 100% Support Browsers Capabilities & specifications
  • 23. 100% Support Browsers Polyfills Frameworks Capabilities & specifications
  • 25. <!DOCTYPE html> <html> <head> <title>jQuery Mobile</title> <script src="jq.js"></script><script src="jqm.js"></script> <link rel="stylesheet" href="jqm.css" /> </head> <body> <div data-role="page" id="home"> <div data-role="header"> <h1>Hello World</h1> </div> <div data-role="content"> <ul data-role="listview" data-inset="true"> <li data-role="list-divider">Continents</li> <li><a href="na.html">North America</a></li> <li><a href="sa.html">South America</a></li> <li><a href="eu.html">Europe</a></li> </ul> </div> </div> </body> </html>
  • 27. <!DOCTYPE html> <html> <head> <title>Sencha Touch</title> <script src="st.js"></script> <link rel="stylesheet" href="st.css" /> <script type="text/javascript" charset="utf-8"> new Ext.Application({ launch: function() { var continents = new Ext.data.Store({ model: Ext.regModel('', {fields: ['name', 'link']}), data: [ {name: 'North America', link:'na'}, {name: 'South America', link:'sa'}, {name: 'Europe', link:'eu'} ] }); new Ext.Panel({ fullscreen: true, dockedItems: [{ xtype: 'toolbar', title: 'Hello World', }], items: [{ xtype: 'list', store: continents, itemTpl: '{name}' }] }); } }); </script> </head><body></body> </html>
  • 29. One Web stack request User interface Rendering response Business logic Storage server client
  • 30. An Alternative Web Stack User interface sync API Business logic Storage Storage server client
  • 31. But there is a a place for both
  • 35. HTML5 apps can’t match native performance (true, sometimes)
  • 37. Are HTML5 apps more e cient to develop? (yes, in theory, but it’s early days)
  • 39. 24 dev-months for iOS http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
  • 40. 12 further dev-months for Android & BlackBerry http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
  • 42. Mobile HTML5 development lacks good tooling (yes)
  • 45. HTML5 apps can’t be monetized, can’t be distributed (not a technology problem)
  • 46. Web Compromise sites Web apps Hybrid apps Native apps Nativeness
  • 47. Camera WebFont Video Audio Graphics HTTP Location CSS Styling & Layout AJAX Contacts Events SMS JavaScript Sockets Orientation Semantic HTML SSL Gyro File Systems Workers & Cross-App Databases Parallel Messaging App Caches Processing
  • 48. Browser Camera WebFont Video Audio Graphics HTTP Location CSS Styling & Layout AJAX Contacts Events SMS JavaScript Sockets Orientation Semantic HTML SSL Gyro File Systems Workers & Cross-App Databases Parallel Messaging App Caches Processing
  • 49. Native Wrapper WebView Camera WebFont Video Audio Graphics HTTP Location CSS Styling & Layout AJAX Contacts Events SMS JavaScript Sockets Orientation Semantic HTML SSL Gyro File Systems Workers & Cross-App Databases Parallel Messaging App Caches Processing
  • 51. Native app stores have a dirty secret
  • 53. HTML5 apps can’t access device functionality (goddamn it)
  • 54. Native Wrapper WebView Camera WebFont Video Audio Graphics HTTP Location CSS Styling & Layout AJAX Contacts Events SMS JavaScript Sockets Orientation Semantic HTML SSL Gyro File Systems Workers & Cross-App Databases Parallel Messaging App Caches Processing
  • 55. Hybrid apps - the ultimate polyfill
  • 56. PhoneGap^H^H^H Apache Callback AppMobi NimbleKit
  • 61. Android 4 SVG at all CSS3 3D transforms classList XHR2 Script defer & async <details> & <summary> File reader Device orientation Navigation timing
  • 63. <input type="file" id="picker" accept="image/*" capture="camera" > // camcorder // microphone // filesystem var image = picker.files[0];
  • 66. Three Laws of Motion (the universe works as we might expect it to)
  • 67. Albert Michelson Edward Morley
  • 68. Light Travels at a Constant Speed (the universe doesn’t work as we thought it would)
  • 70. Relativistic Mechanics Exploration Classical Mechanics Familiarity Quantum Mechanics Exploration
  • 71. The Web Today is like Physics in 1900
  • 73. Apps or Sites? Responsive Design? Browser diversity? Mobile Context? One Web? (an inability to answer these questions does not constitute an excuse not to innovate)
  • 74. What does the web look like when you have...
  • 76. Media Capture (HTML) Media Capture (API) Battery status Application Registration Contacts Calendar Messaging (SMS, MMS...) Feature Permissions Network Information API Sensor API Vibration API Menu API Audio Volume Permissions for APIs Beep Gallery Systems info and events Tasks
  • 77. Accelerometer APDU (SmartCard) Orientation Bluetooth Camera Crypto DeviceStatus DLNA Filesystem Server Push Messaging Sensor Geolocation Telephony PIM  Contacts Calendar Tasks DeviceInteraction
  • 79. The mobile web becomes more than a 320px web
  • 80. window.addEventListener( 'appointmentdue', function(appt) { if (device.near(WORK)) { siri.remind( contacts.get('Peter'), calendar.getDetails(appt) ); } }, false ); (PS: This code does not work. Yet)
  • 82. Mobile device APIs are the web’s next great leap forward