SlideShare una empresa de Scribd logo
1 de 67
HTML5 on Mobile
         Adam Lu
   http://adamlu.com/
     Frontend Engineer
Previous Slides
• HTML5 on Mobile – For Designer
  http://www.slideshare.net/adamlu/html5-on-
  mobilefor-designer

• HTML5 on Mobile – For Developer
  http://www.slideshare.net/adamlu/html5-on-
  mobilefor-developer
Today’s Topic
• Why we’re focusing on mobile web
• Why we’re using HTML5 on mobile
• What is HTML5
• What we can use HTML5 to do on
  mobile(Large Coverage)
• What we should care about for mobile web
  development
• Miscellaneous
Why we’re focusing on
    mobile web
Mobile is Growing
• In January 2012, 8.49 percent of website
  hits/pageviews come from a handheld mobile
  device (StatCounter)
• Mobile will be bigger than desktop internet in
  5 years (Morgan Stanley)
• 2.1 billion mobile devices will have HTML5
  browsers by 2016 up from 109 million in 2010
  (ABI Research)
Mobile is Growing




   Source: Nielsen (January 2012)
Mobile Users prefer browsers over
              apps




            (source: Adobe)
Web App vs Native App
        Web App                      Native App                  Comparation
    Just enter the URL          Must be deployed or           Installation/updates
                                   downloaded
 Access to web analytics.       Apple Store, Android             Monetization
 Rate,SaaS based revenue          Market, Rating

Progressive Enhancement         Follow the standards          End User Experience

  GeoLocation, Offline          camera, gyroscope,         Access to hardware sensors
Storage, Canvas Graphics,      microphone, compass,
      Audio, Video,             accelerometer, GPS
  Camera(Android3.1+)
HTML5, CSS3, Javascript, UI   Object-C, Java, C++, J2EE,     Developer Experience
         Library                 .NET, Cocoa Touch
  Web Workers, Graphic        Run directly on the metal,         Performance
  acceleration, WebGL         GPU Acceleration, Multi-
                                      Threading
Why we’re using HTML5
     on mobile
HTML5 is Great for Mobile
• Do not need download to use Web App
• One Code base, all popular devices
• Tons of great HTML5 features are already
  supported on modern browsers
What is HTML5
Rough Timeline of Web Technologies
•   1991 HTML
•   1994 HTML 2
•   1996 CSS 1 + JavaScript
•   1997 HTML 4
•   1998 CSS 2
•   2000 XHTML 1
•   2002 Tableless Web Design
•   2005 AJAX
•   2009 HTML 5
http://slides.html5rocks.com/#timeline-slide
HTML5Logo




http://www.w3.org/html/logo/
The Technology




Forms, Communication, Canvas, Geolocation, W
eb
Applications, Audio, WebGL, Microdata, Video,
Workers, Files, Elements, Storage, Local
Devices, User interaction, Parsing rules, …
What we can use
HTML5 to do on mobile
http://mobilehtml5.org/
HTML5 has been widely used on pc
            web development
•    http://www.cuttherope.ie/
•    http://chrome.angrybirds.com/
•    http://www.20thingsilearned.com/en-US
•    ……




    * We will not talk more about HTML5 on PC Web.
HTML5 SEMANTICS
HTML Markup
<!DOCTYPE html>                                Semantic HTML:
<html>                                         <section>
<head>                                         <article>
<meta charset="utf-8" />                       <nav>
<meta name="viewport"                          <aside>
content="width=device-width, initial-          <header>
scale=1, maximum-scale=1, user-scalable=no">   <progress>
<link rel="apple-touch-icon"                   <time>
href="images/favicon.png" />                   …
</head>                                        Basic Setting:
<body>                                         Set Viewport
</body>                                        Turn off user-scaling
</html>                                        Set favicon …

http://www.w3.org/wiki/HTML/Elements
Advanced Forms in Mobile
<input type="number" pattern="[0-9]*" />
<input type="email” required />
<input type="url" />
<input type="tel" />
<input type="time" />
<input type="date" />
<input type="month" />
<input type="week" />
<input type="datetime" />
<input type="datetime-local" />
<input type="color" />
http://jquerymobile.com/demos/1.1.0-
rc.1/docs/forms/textinputs/
Microdata, ARIA attributes
<div                                   <ul id="tree1"
itemscopeitemtype="http://example.     role="tree"
org/band">                             tabindex="0"
<p>My name is <span                    aria-labelledby="label_1">
itemprop="name">Neil</span>.</p>       <li role="treeitem" tabindex="-1" aria-
<p>My band is called <span             expanded="true">Fruits</li>
itemprop="band">Four Parts             <li role="group">
Water</span>.</p>                      <ul>
<p>I am <span                          <lirole="treeitem" tabindex="-
itemprop="nationality">British</span   1">Oranges</li>
>.</p>                                 <li role="treeitem" tabindex="-
</div>                                 1">Pineapples</li>
http://dev.w3.org/html5/md/                 ...
                                       </ul>
                                       </li>
http://www.w3.org/WAI/intro/aria
                                       </ul>
OFFLINE&STORAGE
Offline Web Application Cache
• Method of defining web page files to be
  cached using a cache manifest file, allowing
  them to work offline on subsequent visits to
  the page
<html                                window.applicationCache.addEventListen
manifest="/cache.manifest”>          er('updateready', function(e) {
CACHE MANIFEST                        if (window.applicationCache.status ==
# version 1.0.0                      window.applicationCache.UPDATEREADY{
NETWORK:
*                                    window.applicationCache.swapCach();
CACHE:                               window.location.reload();
/js/*
/image/*                             }}, false);
FALLBACK:
                 http://www.w3.org/TR/html5/offline.html
Local Storage, Session Storage
• Web storage and DOM storage (document
  object model) are web application software
  methods and protocols used for storing data
  in a web browser.
                       varfoo = localStorage.getItem(“bar”);
                       localStorage.setItem(“bar”, “foo”);
                       localStorage.clear();
                       sessionStorage.setItem(‘a’, ‘1’);
                       sessionStorage.removeItem(‘a’);
                       window.addEventListener(“storage”, ha
                       ndle_storage, false);

                       http://dev.w3.org/html5/webstorage/
DEVICE ACCESS
Geolocation
• Method of informing a website of the user's
  geographical location
                     navigator.geolocation.getCurrentPosition(succe
                     ss, failure, options);


                                                  PERMISSION_DE
                                                  NIED (1)

                                                  POSITION_UNAV
                                                  AILABLE (2)

                                                  TIMEOUT (3)

                                                  UNKNOWN_ERR
                                                  OR (0)
Javascript Events
window.addEventListener("touchstart", function(e){
//e.touches;
}, false);
window.addEventListener("orientationchange", function(e){
//window.orientation(0 is portrait, 90 and -90 are landscape)
}, false);
window.addEventListener("deviceorientation", function(e){
//e.alpha
//e.beta
//e.gamma
}, false);
window.addEventListener("devicemotion", function(e){
//e.acceleration.x/y/z
//e.accelerationIncludingGravity.x/y/z
}, false);
http://www.html5rocks.com/en/tutorials/device/orientation/
Device Support
window.devicePixelRatio               HTML Media Capture:
                                      <input type="file" accept="image/*"
navigator.connection(Android2.2+)     capture="camera" />
//navigator.connection object         <device type="media"></device>
{
  "type": "3",                        <video autoplay></video>
  "UNKNOWN": "0",                     navigator.getUserMedia({video:
  "ETHERNET": "1",                    true, audio: true}, function(stream) {
  "WIFI": "2",                        var video =
  "CELL_2G": "3",                     document.querySelector('video');
  "CELL_3G": "4"                      video.src = stream;
}                                     }, errorCallback);

http://dev.w3.org/2011/webrtc/editor/getusermedia.html
CONNECTIVITY
Web Sockets
• W3C/IETF Standard
• Real-time, low latency, true full-duplex
  communication channel
• Build on top of HTTP, sharing ports with existing
  HTTP content, use ws: and wss: schemes
• Only small overhead for text messages, reducing
  bandwidth
          conn = new WebSocket('ws://node.remysharp.com:8001');
          conn.onopen= function (envent) {conn.send(‘hello’);};
          conn.onmessage= function (event) {};
          conn.onclose= function (event) {};
                   http://html5demos.com/web-socket
Server-Sent Events
• Open an HTTP connection for receiving push notifications
  from a server in the form of DOM events.
• Standardize sending a continuous stream of data from
  server to browser
• The API is designed such that it can be extended to work
  with other push notification schemes such as Push SMS.

 Client:                                 Server:
 var source = new EventSource("url");    res.writeHead(200, {"Content‐Type":
 source.onmessage = function(event) {    "text/event‐stream"});
 alert(event.data);                      res.write(“data: ” + JSON.stringify(stuff)
 }                                       +”n”);res.flush();
                    http://dev.w3.org/html5/eventsource/
XMLHttpRequest Level 2
  • XMLHttpRequest(XHR) Level2 significantly
    enhances XMLHttpRequest
Fetch Data:                                        Send Data:
varxhr = new XMLHttpRequest();                    function uploadFiles(url, files) {
xhr.open('GET', '/path/to/image.png', true);      varformData = new FormData();
xhr.responseType = 'blob';                          for (vari = 0, file; file = files[i]; ++i) {
xhr.onload = function(e) {                        formData.append(file.name, file);}
  if (this.status == 200) {                       varxhr = new XMLHttpRequest();
var blob = this.response;                         xhr.open('POST', url, true);
varimg = document.createElement('img');           xhr.send(formData); }
img.src =                                         document.querySelector('input[type="file"
window.URL.createObjectURL(blob);                 ]').addEventListener('change', function(e) {
document.body.appendChild(img);                   uploadFiles('/server', this.files);
  }                                               }, false);
};
xhr.send();                 http://www.w3.org/TR/XMLHttpRequest/
Cross-document messaging
• Enables secure cross-origin communication
  across iframes, tabs and windows
• Uses Origin security
          window.addEventListner("message", message
          Handler, true);
          function messageHandler(e){
          if(e.origin== 'http://www.yahoo.com'){
          processMessage(e.data);
                }
                //ignore message if origin not recognized
          }


                 http://dev.w3.org/html5/postmsg/
Cross-Origin Resource Sharing
• Defines a mechanism to enable client-side cross-
  origin requests. Specifications that enable an API
  to make cross-origin requests to resources can
  use the algorithms defined by this specification. If
  such an API is used on http://example.org
  resources, a resource on http://hello-
  world.examplecan opt in using the mechanism
  described by this specification (e.g., specifying
  Access-Control-Allow-Origin: http://example.org
  as response header), which would allow that
  resource to be fetched cross-origin from
  http://example.org.
                 http://www.w3.org/TR/cors/
MULTIMEDIA
Video
                <video id=“video”
                poster=”poster.jpg"
                src=”source.mp4" width="2"
                height="1" x-webkit-
                airplay="allow” autoplay
                controls></video>

                AddType video/ogg .ogv
                AddType video/mp4 .mp4
                AddType video/webm .webm

                document.getElementById(‘video’)
                .play();


http://m.youtube.com/
Audio
   <audio id=“audio” controls
   preload="auto" autobuffer>
   <source src="elvis.mp3" />
   <source src="elvis.ogg" />
   </audio>

   var audio =
   document.getElementById(‘audio’);
   audio.play();
   audio.pause();
   audio.volume+=0.1;
   audio.currentTime = 122;

   More: WEB AUDIO API

   http://html5.grooveshark.com/
3D, GRAPHICS, EFFECTS
Canvas
• 2D drawing platform within the browser
• Use nothing more than JavaScript and HTML –
  no plugins
• Extensible through a JavaScript API
       <canvas id="a" width="300" height="225"></canvas>
       vara_canvas = document.getElementById("a");
       vara_context = a_canvas.getContext("2d");
       a_context.lineWidth = 5;
       a_context.strokeStyle = ‘rgba(244, 34, 23, .8)’;
       a_context.fillRect(50, 25, 150, 100);
       a_context.stroke();

               http://jacebook.co.uk/share/html5/
WebGL
• Javascript Binding for OpenGL ES 2.0 on
  Browser
• Run as a specific context for the HTML
  <canvas> element, which gives you access to
  hardware-accelerated 3D rendering in
  JavaScript.
• Allow developers to put real-time interactive
  3D graphics in the browser.
    http://mrdoob.github.com/three.js/ a lightweight 3D engine
SVG
• Method of displaying basic Vector Graphics
  features using the embed or object elements




* SVG isn’t part of HTML5
PERFORMANCE&INTEGRATION
Web Workers
• Scripts running in background
• Heavy Weight Scripts
 var worker = new Worker('doWork.js');       doWorker.js
 worker.addEventListener('message', functi
 on(e) {                                     self.addEventListner(‘message’, functio
 console.log('Worker said: ', e.data);       n(e){
 }, false);                                  self.postMessage(e.data+’ Worker
 worker.postMessage('Hello World'); //       says: Hello’);
 Send data to our worker
 worker.onerror= function(e){}               },
 worker.terminate();                         false);


                       http://dev.w3.org/html5/workers/
History API
• The DOM window object provides access to
  the browser's history through the history
  object. It exposes useful methods and
  properties that let you move back and forth
  through the user's history
  window.history.pushState(data, title, url);//Add one history state into browser
  history and update the URL in the browser window.
  window.history.replaceState(state, title, url);//Modify the current history entry
  instead of creating a new one.
  window.onpopstate = function(e){e.state;};//A popstate event is dispatched to
  the window every time the active history entry changes.
                        http://html5demos.com/history
CSS3 STYLING
CSS3 New Features
•   Border Radius
•   Shadows
•   Gradient
•   Color
•   Background
•   Border Image
•   Font
•   Transform
•   Transition
•   Animation

                    DEMO: http://jsfiddle.net/adamlu/xGuKy/
CSS on Mobile
-webkit-text-size-adjust: none;
-webkit-user-select: none;
-webkit-touch-callout;
-webkit-tap-highlight-color: transparent;
position: fixed;
audio, canvas, video { display: inline-
block;}
article, aside, details, figcaption, figure, f
ooter, header, hgroup, nav, section {
display: block; }
input[type="search"]{ -webkit-
appearance: none/textfield;}
What we should care
about for mobile web
   development
Mobile-First Responsive Design
• Responsive Web design is the approach that
  suggests that design and development should
  respond to the user’s behavior and
  environment based on screen size, platform
  and orientation.
 http://www.alistapart.com/articles/responsive-web-design/
Choose a Framework
• Boilerplate http://html5boilerplate.com/mobile
• Packaging frameworks
    http://phonegap.com/
    http://www.appmobi.com/
• Web application frameworks
    http://jquerymobile.com/
    http://yuilibrary.com/
    http://sproutcore.com/
    http://www.sencha.com/
    http://zeptojs.com/
• HTML5 Game frameworks
    http://www.limejs.com/
    http://craftyjs.com/
    http://impactjs.com/
Mobile Debugging Tools
• Debugging
    WEINRE
    WebKit Remote Debugging
• Emulators & Simulators
    Mobile Emulators and Simulators
    Android Emulator
    iOS Simulator
• Performance
    Mobile PerfBookmarklet
    http://www.blaze.io/mobile/
Miscellaneous
Make Mobile Web Applications




              http://app.ft.com
Make Mobile Web Application
                          Full screen mode:
                          <meta name="apple-mobile-web-app-capable"
                          content="yes" />
                          Native Look:
                          text-shadow box-shadow
                          multi backgrounds border-image
                          border-radius
                          rgba color gradient
                          transform transition
                          Mobile Behavior:
                          position: fixed; overflow: scroll;
                          touch/gesture/orientationchange event
                          Offline:
                          AppCache
                          LocalStorage
http://adamlu.com/iEye/
http://pinchzoom.com/uploads/anatomy-of-a-html5-mobile-app.png
Usage of HTML5 in Mobile Web
Usage of HTML5 in Mobile Web
Usage of HTML5 in Mobile Web
Usage of HTML5 in Mobile Web
Mobile Design Patterns




http://mobile-patterns.com/
Compatibility
•   http://haz.io/
•   http://caniuse.com/
•   http://css3test.com/
•   http://css3generator.com/
•   http://css3info.com/
•   http://html5test.com/
•   http://css3please.com/
•   http://mobilehtml5.org/
•   http://quirksmode.org/m/
Inspiration
• http://mobile-patterns.com/ - Mobile UI
  Patterns
• http://pttrns.com- Another gallery of Mobile
  UI
• http://mobileawesomeness.com- the best in
  mobile web design and developer news.
Resources
•   http://diveintohtml5.info/
•   http://www.html5rocks.com/
•   http://html5demos.com/
•   http://www.mobilehtml5.com/
•   http://www.w3.org/TR/html5/
•   http://gs.statcounter.com/
HTML5 is the future of Mobile!
@adamlu

Más contenido relacionado

La actualidad más candente

WebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsWebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsRobert Nyman
 
Developing Applications for WebOS
Developing Applications for WebOSDeveloping Applications for WebOS
Developing Applications for WebOSChuq Von Rospach
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todaygerbille
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Alberto Perdomo
 
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....Patrick Lauke
 
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGapFAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGapLoiane Groner
 
Dethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsDethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsJay Harris
 
What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsDoris Chen
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video PlayerJim Jeffers
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkara JUG
 
[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
QuickConnect
QuickConnectQuickConnect
QuickConnectAnnu G
 

La actualidad más candente (20)

Upload[1]
Upload[1]Upload[1]
Upload[1]
 
Android in practice
Android in practiceAndroid in practice
Android in practice
 
WebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.jsWebAPIs & WebRTC - Spotify/sthlm.js
WebAPIs & WebRTC - Spotify/sthlm.js
 
HTML5 WebWorks
HTML5 WebWorksHTML5 WebWorks
HTML5 WebWorks
 
Developing Applications for WebOS
Developing Applications for WebOSDeveloping Applications for WebOS
Developing Applications for WebOS
 
Web app
Web appWeb app
Web app
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011
 
Web app
Web appWeb app
Web app
 
Test upload
Test uploadTest upload
Test upload
 
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....
Handys und Tablets - Webentwicklung jenseits des Desktops - WebTech Mainz 12....
 
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGapFAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
FAESA CONENCO 2013: Sencha Touch 2 + PhoneGap
 
Dethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsDethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.js
 
What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 Apps
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video Player
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
 
[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design
 
iWebkit
iWebkitiWebkit
iWebkit
 
QuickConnect
QuickConnectQuickConnect
QuickConnect
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
 

Destacado

Consórcio realiza consta da relação das administradoras de consórcios autoriz...
Consórcio realiza consta da relação das administradoras de consórcios autoriz...Consórcio realiza consta da relação das administradoras de consórcios autoriz...
Consórcio realiza consta da relação das administradoras de consórcios autoriz...Jessica R.
 
Diapositiva reclutamiento y seleccion leymar jimenez
Diapositiva reclutamiento y seleccion leymar jimenezDiapositiva reclutamiento y seleccion leymar jimenez
Diapositiva reclutamiento y seleccion leymar jimenezLeymar jimenez
 
Perfil sociodemográfico de los internautas 2013 - ONTSI
Perfil sociodemográfico de los internautas 2013 - ONTSIPerfil sociodemográfico de los internautas 2013 - ONTSI
Perfil sociodemográfico de los internautas 2013 - ONTSIAritz Pérez
 
Einführung ins eCampaigning
Einführung ins eCampaigning Einführung ins eCampaigning
Einführung ins eCampaigning more onion
 
Prophet's Sunnah, tagalog
Prophet's Sunnah, tagalogProphet's Sunnah, tagalog
Prophet's Sunnah, tagalogArab Muslim
 
Vloge (funkcije) umetnosti v družbi (2) 2.del
Vloge (funkcije) umetnosti v družbi (2) 2.delVloge (funkcije) umetnosti v družbi (2) 2.del
Vloge (funkcije) umetnosti v družbi (2) 2.delsKastelic
 
First Beat Media - Rad od kuće #tnt3
First Beat Media - Rad od kuće #tnt3First Beat Media - Rad od kuće #tnt3
First Beat Media - Rad od kuće #tnt3SICEF
 
The Newsletter Factory
The Newsletter FactoryThe Newsletter Factory
The Newsletter FactoryRGI, Inc.
 
Macmillan pulitzer guia juego
Macmillan pulitzer guia juegoMacmillan pulitzer guia juego
Macmillan pulitzer guia juegoEduardo Valencia
 
Bni decalogo del networking profesional
Bni decalogo del networking profesionalBni decalogo del networking profesional
Bni decalogo del networking profesionalMarcos Barraza
 

Destacado (20)

Roma
RomaRoma
Roma
 
Consórcio realiza consta da relação das administradoras de consórcios autoriz...
Consórcio realiza consta da relação das administradoras de consórcios autoriz...Consórcio realiza consta da relação das administradoras de consórcios autoriz...
Consórcio realiza consta da relação das administradoras de consórcios autoriz...
 
Air mobility command amc travel contacts
Air mobility command   amc travel contactsAir mobility command   amc travel contacts
Air mobility command amc travel contacts
 
Diapositiva reclutamiento y seleccion leymar jimenez
Diapositiva reclutamiento y seleccion leymar jimenezDiapositiva reclutamiento y seleccion leymar jimenez
Diapositiva reclutamiento y seleccion leymar jimenez
 
Perfil sociodemográfico de los internautas 2013 - ONTSI
Perfil sociodemográfico de los internautas 2013 - ONTSIPerfil sociodemográfico de los internautas 2013 - ONTSI
Perfil sociodemográfico de los internautas 2013 - ONTSI
 
Einführung ins eCampaigning
Einführung ins eCampaigning Einführung ins eCampaigning
Einführung ins eCampaigning
 
Prophet's Sunnah, tagalog
Prophet's Sunnah, tagalogProphet's Sunnah, tagalog
Prophet's Sunnah, tagalog
 
El señor de los milagros
El señor de los milagrosEl señor de los milagros
El señor de los milagros
 
Gabriel
GabrielGabriel
Gabriel
 
Vloge (funkcije) umetnosti v družbi (2) 2.del
Vloge (funkcije) umetnosti v družbi (2) 2.delVloge (funkcije) umetnosti v družbi (2) 2.del
Vloge (funkcije) umetnosti v družbi (2) 2.del
 
First Beat Media - Rad od kuće #tnt3
First Beat Media - Rad od kuće #tnt3First Beat Media - Rad od kuće #tnt3
First Beat Media - Rad od kuće #tnt3
 
¿Cómo funciona SIGRE?
¿Cómo funciona SIGRE?¿Cómo funciona SIGRE?
¿Cómo funciona SIGRE?
 
The Newsletter Factory
The Newsletter FactoryThe Newsletter Factory
The Newsletter Factory
 
Evolucion Latin
Evolucion LatinEvolucion Latin
Evolucion Latin
 
AR-MAT: Realidad aumentada en matemáticas
AR-MAT: Realidad aumentada en matemáticasAR-MAT: Realidad aumentada en matemáticas
AR-MAT: Realidad aumentada en matemáticas
 
Funcions
FuncionsFuncions
Funcions
 
MB Holding Newsletter
MB  Holding NewsletterMB  Holding Newsletter
MB Holding Newsletter
 
Adenocarcinoma de pulmón ALK positivo. Caso clinico
Adenocarcinoma de pulmón ALK positivo. Caso clinicoAdenocarcinoma de pulmón ALK positivo. Caso clinico
Adenocarcinoma de pulmón ALK positivo. Caso clinico
 
Macmillan pulitzer guia juego
Macmillan pulitzer guia juegoMacmillan pulitzer guia juego
Macmillan pulitzer guia juego
 
Bni decalogo del networking profesional
Bni decalogo del networking profesionalBni decalogo del networking profesional
Bni decalogo del networking profesional
 

Similar a HTML5 on Mobile

Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Patrick Lauke
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonRobert Nyman
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User ExperienceMahbubur Rahman
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
Building native mobile apps using web technologies
Building native mobile apps using web technologiesBuilding native mobile apps using web technologies
Building native mobile apps using web technologiesHjörtur Hilmarsson
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Sho Ito
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010Patrick Lauke
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOSfpatton
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Stephan Hochdörfer
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKitJoone Hur
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegapRakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegapRakesh Jha
 

Similar a HTML5 on Mobile (20)

Web app and more
Web app and moreWeb app and more
Web app and more
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
 
Html5
Html5Html5
Html5
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
Building native mobile apps using web technologies
Building native mobile apps using web technologiesBuilding native mobile apps using web technologies
Building native mobile apps using web technologies
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKit
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
 

Más de Adam Lu

Yui rocks
Yui rocksYui rocks
Yui rocksAdam Lu
 
YUI介绍和使用YUI构建web应用
YUI介绍和使用YUI构建web应用YUI介绍和使用YUI构建web应用
YUI介绍和使用YUI构建web应用Adam Lu
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile appsAdam Lu
 
HTML5概览
HTML5概览HTML5概览
HTML5概览Adam Lu
 
Get started with YUI
Get started with YUIGet started with YUI
Get started with YUIAdam Lu
 
HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)Adam Lu
 
重新认识Html5
重新认识Html5重新认识Html5
重新认识Html5Adam Lu
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较Adam Lu
 
浏览器兼容性问题小结
浏览器兼容性问题小结浏览器兼容性问题小结
浏览器兼容性问题小结Adam Lu
 
小谈Javascript设计模式
小谈Javascript设计模式小谈Javascript设计模式
小谈Javascript设计模式Adam Lu
 
从Adobe和qcof会议看前端开发
从Adobe和qcof会议看前端开发从Adobe和qcof会议看前端开发
从Adobe和qcof会议看前端开发Adam Lu
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3Adam Lu
 
Enhance Web Performance
Enhance Web PerformanceEnhance Web Performance
Enhance Web PerformanceAdam Lu
 

Más de Adam Lu (13)

Yui rocks
Yui rocksYui rocks
Yui rocks
 
YUI介绍和使用YUI构建web应用
YUI介绍和使用YUI构建web应用YUI介绍和使用YUI构建web应用
YUI介绍和使用YUI构建web应用
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
Get started with YUI
Get started with YUIGet started with YUI
Get started with YUI
 
HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)
 
重新认识Html5
重新认识Html5重新认识Html5
重新认识Html5
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较
 
浏览器兼容性问题小结
浏览器兼容性问题小结浏览器兼容性问题小结
浏览器兼容性问题小结
 
小谈Javascript设计模式
小谈Javascript设计模式小谈Javascript设计模式
小谈Javascript设计模式
 
从Adobe和qcof会议看前端开发
从Adobe和qcof会议看前端开发从Adobe和qcof会议看前端开发
从Adobe和qcof会议看前端开发
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3
 
Enhance Web Performance
Enhance Web PerformanceEnhance Web Performance
Enhance Web Performance
 

Último

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Último (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

HTML5 on Mobile

  • 1. HTML5 on Mobile Adam Lu http://adamlu.com/ Frontend Engineer
  • 2. Previous Slides • HTML5 on Mobile – For Designer http://www.slideshare.net/adamlu/html5-on- mobilefor-designer • HTML5 on Mobile – For Developer http://www.slideshare.net/adamlu/html5-on- mobilefor-developer
  • 3. Today’s Topic • Why we’re focusing on mobile web • Why we’re using HTML5 on mobile • What is HTML5 • What we can use HTML5 to do on mobile(Large Coverage) • What we should care about for mobile web development • Miscellaneous
  • 4. Why we’re focusing on mobile web
  • 5. Mobile is Growing • In January 2012, 8.49 percent of website hits/pageviews come from a handheld mobile device (StatCounter) • Mobile will be bigger than desktop internet in 5 years (Morgan Stanley) • 2.1 billion mobile devices will have HTML5 browsers by 2016 up from 109 million in 2010 (ABI Research)
  • 6. Mobile is Growing Source: Nielsen (January 2012)
  • 7. Mobile Users prefer browsers over apps (source: Adobe)
  • 8. Web App vs Native App Web App Native App Comparation Just enter the URL Must be deployed or Installation/updates downloaded Access to web analytics. Apple Store, Android Monetization Rate,SaaS based revenue Market, Rating Progressive Enhancement Follow the standards End User Experience GeoLocation, Offline camera, gyroscope, Access to hardware sensors Storage, Canvas Graphics, microphone, compass, Audio, Video, accelerometer, GPS Camera(Android3.1+) HTML5, CSS3, Javascript, UI Object-C, Java, C++, J2EE, Developer Experience Library .NET, Cocoa Touch Web Workers, Graphic Run directly on the metal, Performance acceleration, WebGL GPU Acceleration, Multi- Threading
  • 9. Why we’re using HTML5 on mobile
  • 10. HTML5 is Great for Mobile • Do not need download to use Web App • One Code base, all popular devices • Tons of great HTML5 features are already supported on modern browsers
  • 11.
  • 12.
  • 14. Rough Timeline of Web Technologies • 1991 HTML • 1994 HTML 2 • 1996 CSS 1 + JavaScript • 1997 HTML 4 • 1998 CSS 2 • 2000 XHTML 1 • 2002 Tableless Web Design • 2005 AJAX • 2009 HTML 5 http://slides.html5rocks.com/#timeline-slide
  • 16. The Technology Forms, Communication, Canvas, Geolocation, W eb Applications, Audio, WebGL, Microdata, Video, Workers, Files, Elements, Storage, Local Devices, User interaction, Parsing rules, …
  • 17. What we can use HTML5 to do on mobile
  • 19. HTML5 has been widely used on pc web development • http://www.cuttherope.ie/ • http://chrome.angrybirds.com/ • http://www.20thingsilearned.com/en-US • …… * We will not talk more about HTML5 on PC Web.
  • 21. HTML Markup <!DOCTYPE html> Semantic HTML: <html> <section> <head> <article> <meta charset="utf-8" /> <nav> <meta name="viewport" <aside> content="width=device-width, initial- <header> scale=1, maximum-scale=1, user-scalable=no"> <progress> <link rel="apple-touch-icon" <time> href="images/favicon.png" /> … </head> Basic Setting: <body> Set Viewport </body> Turn off user-scaling </html> Set favicon … http://www.w3.org/wiki/HTML/Elements
  • 22. Advanced Forms in Mobile <input type="number" pattern="[0-9]*" /> <input type="email” required /> <input type="url" /> <input type="tel" /> <input type="time" /> <input type="date" /> <input type="month" /> <input type="week" /> <input type="datetime" /> <input type="datetime-local" /> <input type="color" /> http://jquerymobile.com/demos/1.1.0- rc.1/docs/forms/textinputs/
  • 23. Microdata, ARIA attributes <div <ul id="tree1" itemscopeitemtype="http://example. role="tree" org/band"> tabindex="0" <p>My name is <span aria-labelledby="label_1"> itemprop="name">Neil</span>.</p> <li role="treeitem" tabindex="-1" aria- <p>My band is called <span expanded="true">Fruits</li> itemprop="band">Four Parts <li role="group"> Water</span>.</p> <ul> <p>I am <span <lirole="treeitem" tabindex="- itemprop="nationality">British</span 1">Oranges</li> >.</p> <li role="treeitem" tabindex="- </div> 1">Pineapples</li> http://dev.w3.org/html5/md/ ... </ul> </li> http://www.w3.org/WAI/intro/aria </ul>
  • 25. Offline Web Application Cache • Method of defining web page files to be cached using a cache manifest file, allowing them to work offline on subsequent visits to the page <html window.applicationCache.addEventListen manifest="/cache.manifest”> er('updateready', function(e) { CACHE MANIFEST if (window.applicationCache.status == # version 1.0.0 window.applicationCache.UPDATEREADY{ NETWORK: * window.applicationCache.swapCach(); CACHE: window.location.reload(); /js/* /image/* }}, false); FALLBACK: http://www.w3.org/TR/html5/offline.html
  • 26. Local Storage, Session Storage • Web storage and DOM storage (document object model) are web application software methods and protocols used for storing data in a web browser. varfoo = localStorage.getItem(“bar”); localStorage.setItem(“bar”, “foo”); localStorage.clear(); sessionStorage.setItem(‘a’, ‘1’); sessionStorage.removeItem(‘a’); window.addEventListener(“storage”, ha ndle_storage, false); http://dev.w3.org/html5/webstorage/
  • 28. Geolocation • Method of informing a website of the user's geographical location navigator.geolocation.getCurrentPosition(succe ss, failure, options); PERMISSION_DE NIED (1) POSITION_UNAV AILABLE (2) TIMEOUT (3) UNKNOWN_ERR OR (0)
  • 29. Javascript Events window.addEventListener("touchstart", function(e){ //e.touches; }, false); window.addEventListener("orientationchange", function(e){ //window.orientation(0 is portrait, 90 and -90 are landscape) }, false); window.addEventListener("deviceorientation", function(e){ //e.alpha //e.beta //e.gamma }, false); window.addEventListener("devicemotion", function(e){ //e.acceleration.x/y/z //e.accelerationIncludingGravity.x/y/z }, false); http://www.html5rocks.com/en/tutorials/device/orientation/
  • 30. Device Support window.devicePixelRatio HTML Media Capture: <input type="file" accept="image/*" navigator.connection(Android2.2+) capture="camera" /> //navigator.connection object <device type="media"></device> { "type": "3", <video autoplay></video> "UNKNOWN": "0", navigator.getUserMedia({video: "ETHERNET": "1", true, audio: true}, function(stream) { "WIFI": "2", var video = "CELL_2G": "3", document.querySelector('video'); "CELL_3G": "4" video.src = stream; } }, errorCallback); http://dev.w3.org/2011/webrtc/editor/getusermedia.html
  • 32. Web Sockets • W3C/IETF Standard • Real-time, low latency, true full-duplex communication channel • Build on top of HTTP, sharing ports with existing HTTP content, use ws: and wss: schemes • Only small overhead for text messages, reducing bandwidth conn = new WebSocket('ws://node.remysharp.com:8001'); conn.onopen= function (envent) {conn.send(‘hello’);}; conn.onmessage= function (event) {}; conn.onclose= function (event) {}; http://html5demos.com/web-socket
  • 33. Server-Sent Events • Open an HTTP connection for receiving push notifications from a server in the form of DOM events. • Standardize sending a continuous stream of data from server to browser • The API is designed such that it can be extended to work with other push notification schemes such as Push SMS. Client: Server: var source = new EventSource("url"); res.writeHead(200, {"Content‐Type": source.onmessage = function(event) { "text/event‐stream"}); alert(event.data); res.write(“data: ” + JSON.stringify(stuff) } +”n”);res.flush(); http://dev.w3.org/html5/eventsource/
  • 34. XMLHttpRequest Level 2 • XMLHttpRequest(XHR) Level2 significantly enhances XMLHttpRequest Fetch Data: Send Data: varxhr = new XMLHttpRequest(); function uploadFiles(url, files) { xhr.open('GET', '/path/to/image.png', true); varformData = new FormData(); xhr.responseType = 'blob'; for (vari = 0, file; file = files[i]; ++i) { xhr.onload = function(e) { formData.append(file.name, file);} if (this.status == 200) { varxhr = new XMLHttpRequest(); var blob = this.response; xhr.open('POST', url, true); varimg = document.createElement('img'); xhr.send(formData); } img.src = document.querySelector('input[type="file" window.URL.createObjectURL(blob); ]').addEventListener('change', function(e) { document.body.appendChild(img); uploadFiles('/server', this.files); } }, false); }; xhr.send(); http://www.w3.org/TR/XMLHttpRequest/
  • 35. Cross-document messaging • Enables secure cross-origin communication across iframes, tabs and windows • Uses Origin security window.addEventListner("message", message Handler, true); function messageHandler(e){ if(e.origin== 'http://www.yahoo.com'){ processMessage(e.data); } //ignore message if origin not recognized } http://dev.w3.org/html5/postmsg/
  • 36. Cross-Origin Resource Sharing • Defines a mechanism to enable client-side cross- origin requests. Specifications that enable an API to make cross-origin requests to resources can use the algorithms defined by this specification. If such an API is used on http://example.org resources, a resource on http://hello- world.examplecan opt in using the mechanism described by this specification (e.g., specifying Access-Control-Allow-Origin: http://example.org as response header), which would allow that resource to be fetched cross-origin from http://example.org. http://www.w3.org/TR/cors/
  • 38. Video <video id=“video” poster=”poster.jpg" src=”source.mp4" width="2" height="1" x-webkit- airplay="allow” autoplay controls></video> AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm document.getElementById(‘video’) .play(); http://m.youtube.com/
  • 39. Audio <audio id=“audio” controls preload="auto" autobuffer> <source src="elvis.mp3" /> <source src="elvis.ogg" /> </audio> var audio = document.getElementById(‘audio’); audio.play(); audio.pause(); audio.volume+=0.1; audio.currentTime = 122; More: WEB AUDIO API http://html5.grooveshark.com/
  • 41. Canvas • 2D drawing platform within the browser • Use nothing more than JavaScript and HTML – no plugins • Extensible through a JavaScript API <canvas id="a" width="300" height="225"></canvas> vara_canvas = document.getElementById("a"); vara_context = a_canvas.getContext("2d"); a_context.lineWidth = 5; a_context.strokeStyle = ‘rgba(244, 34, 23, .8)’; a_context.fillRect(50, 25, 150, 100); a_context.stroke(); http://jacebook.co.uk/share/html5/
  • 42. WebGL • Javascript Binding for OpenGL ES 2.0 on Browser • Run as a specific context for the HTML <canvas> element, which gives you access to hardware-accelerated 3D rendering in JavaScript. • Allow developers to put real-time interactive 3D graphics in the browser. http://mrdoob.github.com/three.js/ a lightweight 3D engine
  • 43. SVG • Method of displaying basic Vector Graphics features using the embed or object elements * SVG isn’t part of HTML5
  • 45. Web Workers • Scripts running in background • Heavy Weight Scripts var worker = new Worker('doWork.js'); doWorker.js worker.addEventListener('message', functi on(e) { self.addEventListner(‘message’, functio console.log('Worker said: ', e.data); n(e){ }, false); self.postMessage(e.data+’ Worker worker.postMessage('Hello World'); // says: Hello’); Send data to our worker worker.onerror= function(e){} }, worker.terminate(); false); http://dev.w3.org/html5/workers/
  • 46. History API • The DOM window object provides access to the browser's history through the history object. It exposes useful methods and properties that let you move back and forth through the user's history window.history.pushState(data, title, url);//Add one history state into browser history and update the URL in the browser window. window.history.replaceState(state, title, url);//Modify the current history entry instead of creating a new one. window.onpopstate = function(e){e.state;};//A popstate event is dispatched to the window every time the active history entry changes. http://html5demos.com/history
  • 48. CSS3 New Features • Border Radius • Shadows • Gradient • Color • Background • Border Image • Font • Transform • Transition • Animation DEMO: http://jsfiddle.net/adamlu/xGuKy/
  • 49. CSS on Mobile -webkit-text-size-adjust: none; -webkit-user-select: none; -webkit-touch-callout; -webkit-tap-highlight-color: transparent; position: fixed; audio, canvas, video { display: inline- block;} article, aside, details, figcaption, figure, f ooter, header, hgroup, nav, section { display: block; } input[type="search"]{ -webkit- appearance: none/textfield;}
  • 50. What we should care about for mobile web development
  • 51. Mobile-First Responsive Design • Responsive Web design is the approach that suggests that design and development should respond to the user’s behavior and environment based on screen size, platform and orientation. http://www.alistapart.com/articles/responsive-web-design/
  • 52. Choose a Framework • Boilerplate http://html5boilerplate.com/mobile • Packaging frameworks  http://phonegap.com/  http://www.appmobi.com/ • Web application frameworks  http://jquerymobile.com/  http://yuilibrary.com/  http://sproutcore.com/  http://www.sencha.com/  http://zeptojs.com/ • HTML5 Game frameworks  http://www.limejs.com/  http://craftyjs.com/  http://impactjs.com/
  • 53. Mobile Debugging Tools • Debugging  WEINRE  WebKit Remote Debugging • Emulators & Simulators  Mobile Emulators and Simulators  Android Emulator  iOS Simulator • Performance  Mobile PerfBookmarklet  http://www.blaze.io/mobile/
  • 55. Make Mobile Web Applications http://app.ft.com
  • 56. Make Mobile Web Application Full screen mode: <meta name="apple-mobile-web-app-capable" content="yes" /> Native Look: text-shadow box-shadow multi backgrounds border-image border-radius rgba color gradient transform transition Mobile Behavior: position: fixed; overflow: scroll; touch/gesture/orientationchange event Offline: AppCache LocalStorage http://adamlu.com/iEye/
  • 58. Usage of HTML5 in Mobile Web
  • 59. Usage of HTML5 in Mobile Web
  • 60. Usage of HTML5 in Mobile Web
  • 61. Usage of HTML5 in Mobile Web
  • 63. Compatibility • http://haz.io/ • http://caniuse.com/ • http://css3test.com/ • http://css3generator.com/ • http://css3info.com/ • http://html5test.com/ • http://css3please.com/ • http://mobilehtml5.org/ • http://quirksmode.org/m/
  • 64. Inspiration • http://mobile-patterns.com/ - Mobile UI Patterns • http://pttrns.com- Another gallery of Mobile UI • http://mobileawesomeness.com- the best in mobile web design and developer news.
  • 65. Resources • http://diveintohtml5.info/ • http://www.html5rocks.com/ • http://html5demos.com/ • http://www.mobilehtml5.com/ • http://www.w3.org/TR/html5/ • http://gs.statcounter.com/
  • 66. HTML5 is the future of Mobile!

Notas del editor

  1. Develop in HTML5 for mobile devices namely deploy roughly the same code based on all HTML5-ready phones
  2. Giving meaning to structure, semantics are front and center with HTML5. A richer set of tags, along with RDFa, microdata, and microformats, are enabling a more useful, data driven web for both programs and your users.
  3. Web Apps can start faster and work even if there is no internet connection, thanks to the HTML5 App Cache, as well as the Local Storage, Indexed DB, and the File API specifications.
  4. Beginning with the Geolocation API, Web Applications can present rich, device-aware features and experiences. Incredible device access innovations are being developed and implemented, from audio/video input access to microphones and cameras, to local data such as contacts &amp; events, and even tilt orientation.
  5. More efficient connectivity means more real-time chats, faster games, and better communication. Web Sockets and Server-Sent Events are pushing (pun intended) data between client and server more efficiently than ever before.
  6. Audio and video are first class citizens in the HTML5 web, living in harmony with your apps and sites. Lights, camera, action!
  7. Between SVG, Canvas, WebGL, and CSS3 3D features, you&apos;re sure to amaze your users with stunning visuals natively rendered in the browser.
  8. Make your Web Apps and dynamic web content faster with a variety of techniques and technologies such as Web Workers and XMLHttpRequest 2. No user should ever wait on your watch.
  9. CSS3 delivers a wide range of stylization and effects, enhancing the web app without sacrificing your semantic structure or performance. Additionally Web Open Font Format (WOFF) provides typographic flexibility and control far beyond anything the web has offered before.