Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1 of 91

HTML5 and the dawn of rich mobile web applications pt 1

35

Share

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

HTML5 and the dawn of rich mobile web applications pt 1

  1. 1. HTML5 and the dawn of rich mobile web applications @ jamespearce
  2. 2. Part I Mobile & HTML5
  3. 3. Sir Isaac Newton
  4. 4. Three Laws of Motion (the universe works as we might expect it to)
  5. 5. Albert Michelson Edward Morley
  6. 6. Light Travels at a Constant Speed (the universe doesn’t work as we thought it would)
  7. 7. Relativistic Mechanics Exploration Classical Mechanics Familiarity Quantum Mechanics Exploration
  8. 8. The Web Today is like Physics in 1900
  9. 9. Mobile is our Michelson-Morley Experiment
  10. 10. Mobile Context? One Web? Responsive Design? Apps or Sites? (an inability to answer these questions does not constitute an excuse not to innovate)
  11. 11. Responsive Web Design
  12. 12. @media screen and (max-width: 480px) { #logo { background-image: url(mobile.png); } }
  13. 13. Mobile devices are di erent Telephone Messaging Camera Compass Mobile users are di erent
  14. 14. Content-Type: application/msword
  15. 15. The Mobile Web is not a 320px Web
  16. 16. Single device Multi device Sedentary user Mobile user * Declarative Imperative Thin client Thick client Documents Applications * or supine, or sedentary, or passive, or...
  17. 17. A badge for all these ways the web is changing
  18. 18. 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
  19. 19. What is an app?
  20. 20. 2008 We must have an iPhone App!
  21. 21. 2009 We must have an Android App!
  22. 22. 2010 We must have an iPad App!
  23. 23. 2011 We must have a...
  24. 24. omfg
  25. 25. What is an app?
  26. 26. Consumption vs Creation Linkability User Experience Architecture
  27. 27. Web Compromise sites Web apps Native apps Nativeness
  28. 28. WebFont Video Audio Graphics Device Access Camera CSS Styling & Layout Network Location HTTP JavaScript Contacts AJAX SMS Semantic HTML Events Orientation Sockets File Systems Workers & Cross-App Gyro Databases Parallel SSL Messaging App Caches Processing (all the elements of a modern application platform)
  29. 29. The web is now as much a stack as it is a medium
  30. 30. MS RIM Symbian Apple Android Top European Smartphone Platforms July 2011, comScore MobiLens
  31. 31. .NET J2ME C++ Obj-C Java Native programming languages you’ll need July 2011
  32. 32. IE WebKit WebKit WebKit WebKit Browser platforms to target July 2011
  33. 33. There is no WebKit on Mobile - @ppk
  34. 34. But at least we are using one language, one markup, one style system
  35. 35. IE 10 PR Chrome 10 Safari 5 Firefox 4 iOS4.31 Playbook Honeycomb @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
  36. 36. Stay on top of diversity Can I Use? http://caniuse.com Modernizr http://modernizr.com DeviceAtlas http://deviceatlas.com
  37. 37. 100% Support Browsers Capabilities & specifications
  38. 38. 100% Support Browsers Polyfills Frameworks Capabilities & specifications
  39. 39. <!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>
  40. 40. <!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>
  41. 41. Evolving the web for mobile Views HTML, CSS... Controllers Models
  42. 42. Evolving the web for mobile Desktop Switcher HTML, CSS... Mobile Controllers Models
  43. 43. Evolving the web for mobile Desktop Switchers Mobile REST JSO on Controllers N ce Models
  44. 44. The classic web stack req/res User interface Rendering Business logic Storage
  45. 45. A new web stack User interface sync Security Business logic Storage Storage
  46. 46. Write once, run anywhere?
  47. 47. The Mobile Web is not a 320px Web
  48. 48. Views Views Controllers Models Stores Proxies n jso
  49. 49. http://sencha.com/x/cv
  50. 50. Thick client, thin server The shortfall in the cloud
  51. 51. Location Services Adaptation Analytics Web Fonts Data Sync Video Serving Ad Serving $ Image Serving Commerce Network APIs
  52. 52. http://mysite.com/myimage.png http://src.sencha.io/http://mysite.com/myimage.png
  53. 53. Myths & rumors
  54. 54. HTML5 apps can’t run o ine (hybrid, appcache, and localStorage...)
  55. 55. Going o ine http://github.com/jamesgpearce/confess
  56. 56. HTML5 apps can’t match native performance (true, sometimes)
  57. 57. HTML5 apps can’t be monetized (is this a technology problem?)
  58. 58. HTML5 apps are more e cient to develop (yes, in theory, but diversity remains)
  59. 59. 24 dev-months for iOS http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
  60. 60. 12 further dev-months for Android & BlackBerry http://blog.cohen-rose.org/2011/10/over-air-2011-ft-web-app-weve-got.html
  61. 61. ...but more engagement than the native app
  62. 62. Web Compromise sites Web apps Hybrid apps Native apps Nativeness
  63. 63. 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
  64. 64. 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
  65. 65. 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
  66. 66. Native app stores have a dirty secret
  67. 67. built with Apps vs web technology
  68. 68. James Pearce @ jamespearce

×