SlideShare une entreprise Scribd logo
1  sur  33
HTML5 on Mobile (For Developer)

               Adam Lu
         http://adamlu.com/
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)
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
Web App vsNative 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
Mobile Users prefer browsers over
              apps




            (source: Adobe)
What is HTML5
What is HTML5




Forms, Communication, Canvas, Geolocation,
Web Applications, Audio, WebGL, Microdata,
Video, Workers, Files, Elements, Storage, Local
Devices, User interaction, Parsing rules, …
Build Mobile Web with HTML5
• Decide which platforms/browsers you will
  support

                    -ms-
                              Webkit on Mobile?
                     -o-
                              There is no webkit on mobile
                    -moz-     http://quirksmode.org/webkit.html

                   -webkit-
Build Mobile Web with HTML5
• HTML Markup
 <!DOCTYPE html>                                 Semantic HTML:
 <html>                                          <section>
 <head>                                          <article>
 <meta charset="utf-8" />                        <nav>
 <meta name="viewport"                           <aside>
 content="width=device-width, initial-scale=1,   <header>
 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
Build Mobile Web with HTML5
  • CSS Reset
-webkit-text-size-adjust: none;
-webkit-user-select: none;
-webkit-touch-callout;
-webkit-tap-highlight-color: transparent;
audio, canvas, video { display: inline-
block;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, nav, section {
display: block; }
input[type="search"]{ -webkit-
appearance: none/textfield;}
Build Mobile Web with HTML5
• Media Queries   /*styles for 800px and up!*/
                  @media only screen and (min-width: 800px) {
                    /* Styles */
                  }
                  /* iPhone 4, Opera Mobile 11 and other high
                  pixel ratio devices ----------- */
                  @media
                  only screen and (-webkit-min-device-pixel-
                  ratio: 1.5),
                  only screen and (-o-min-device-pixel-ratio:
                  3/2),
                  only screen and (min--moz-device-pixel-ratio:
                  1.5),
                  only screen and (min-device-pixel-ratio: 1.5) {
                    /* Styles */
                  }
Build Mobile Web with HTML5
 • CSS3 Effect


<input id="p" type="search"
autocorrect="off" autocomplete="off"
autocapitalize="off"
placeholder="Search" />
border-image: url() 0 24 stretch
box-shadow: #9FA1A4 0 3px 4px 2px        -webkit-border-radius: 5px;
inset                                    background: #FFAB23 -webkit-
border-radius: 15px;                     gradient(linear,0% 0,0%
background: -webkit-linear-gradient();   100%,from(#FE6),to(#FFAB23));
                                         box-sizing: border-box;
                                         http://mobile.twitter.com/session/new
Build Mobile Web with HTML5
• Make Animation

                                     CSS3 Animation instead of JS Animation

                                     transition: left 1s ease-in-out;

 http://jsfiddle.net/adamlu/RE6dF/   YUI().use(‘transition’, function(){});


                                     #box1, #box2{
                                         -webkit-transition: all 2s ease-in-out;
                                     }
                                     #box1:hover + #box2 {
                                        -webkit-transform: rotate(360deg);
                                        left: 500px;
 http://jsfiddle.net/adamlu/t5Afm/   }​
Build Mobile Web with HTML5
• 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/
Build Mobile Web with HTML5
    • Graphic Drawing - Canvas & SVG
    http://jsfiddle.net/adamlu/xFR4V/         <canvas id="a" width="300"
                                              height="225"></canvas>
                                              vara_canvas = document.getElementById("a");
                                              vara_context = a_canvas.getContext("2d");
                                              a_context.fillRect(50, 25, 150, 100);


                                              <svgxmlns="http://www.w3.org/2000/svg"
                                              version="1.1">
                                              <circle cx="100" cy="50" r="40"
                                              stroke="black" stroke-width="2" fill="red" />
                                              </svg>
    http://jsfiddle.net/adamlu/W67j8/

http://www.limejs.com/static/roundball/index.html
Build Mobile Web with HTML5
• Media Support
                  <video poster="" src="" width="2"
                  height="1" x-webkit-
                  airplay="allow"></video>

                  <audio controls preload="auto"
                  autobuffer>
                  <source src="elvis.mp3" />
                  <source src="elvis.ogg" />
                  </audio>
Build Mobile Web with HTML5

• Geolocation API
                                                   Position Object
  navigator.geolocation.getCurrentPosition(succe
  ss, failure, options);




  PERMISSION_DENIED (1)
  POSITION_UNAVAILABLE (2)
  TIMEOUT (3)
  UNKNOWN_ERROR (0)
Build Mobile Web with HTML5
• 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/
Build Mobile Web with HTML5
• Device Support
  window.devicePixelRatio               HTML Media Capture:
  navigator.connection(Android2.2+)     <input type="file" accept="image/*"
  // contents of navigator.connection   capture="camera" />
  object                                <device type="media"></device>
  {
    "type": "3",                        <video autoplay></video>
    "UNKNOWN": "0",                     navigator.getUserMedia({video: true,
    "ETHERNET": "1",                    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
Build Mobile Web with HTML5
• User Interaction
   Drag and Drop
   HTML Editing
   Session 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
Build Mobile Web with HTML5
• Performance
Offline Web Application Cache:
<html manifest="/cache.manifest">
AddType text/cache-manifest .manifest
CACHE MANIFEST
NETWORK/CACHE/FALLBACK:
LocalStorage/SessionStorage:
varfoo = localStorage.getItem("bar");
localStorage.setItem("bar", foo);
window.addEventListener("storage", handle_storage, false);
Web Workers:
var worker = new Worker('doWork.js');
worker.addEventListener('message', function(e) {
console.log('Worker said: ', e.data);
}, false);
worker.postMessage('Hello World'); // Send data to our worker.
Build Mobile Web with HTML5
• Communication
   Cross-document messaging
   Server-Sent Events(XHR2)
   Web Sockets
  conn = new WebSocket('ws://node.remysharp.com:8001');
  conn.onopen= function () {};
  conn.onmessage= function (event) {
    // console.log(event.data);
  };
  conn.onclose= function (event) {
  state.className = 'fail';
  state.innerHTML = 'Socket closed';
  };
  http://html5demos.com/web-socket
Build Mobile Web with HTML5
• Make Web App
                           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/
Mobile Web App Strategy
• Evaluate your requirement
• Decide what app you’ll do
• A hybrid app maybe a good approach (Web
  App  Native App)
• Mobile-First Responsive Design
• Progressive Enhancement
• Lighter is better
Frameworks
• 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/
Tools
• Debugging
    WEINRE
    WebKit Remote Debugging
• Emulators & Simulators
    Mobile Emulators and Simulators
    Android Emulator
    iOS Simulator
• Performance
    Mobile PerfBookmarklet
    http://www.blaze.io/mobile/
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!
Thanks!

  @adamlu

Contenu connexe

Tendances

RESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side ComponentsRESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side ComponentsSven Wolfermann
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScriptGary Yeh
 
SEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceSEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceTasneem Sayeed
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobilepeychevi
 
Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Aaron Gustafson
 
Beyond Responsive [18F 2015]
Beyond Responsive [18F 2015]Beyond Responsive [18F 2015]
Beyond Responsive [18F 2015]Aaron Gustafson
 
Device aware web frameworks for better programming
Device aware web frameworks for better programmingDevice aware web frameworks for better programming
Device aware web frameworks for better programmingSuntae Kim
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortalJennifer Bourey
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
Responsive images are here. Now what?
Responsive images are here. Now what?Responsive images are here. Now what?
Responsive images are here. Now what?Jason Grigsby
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloadedDominik Helleberg
 
Metrics that Matter-Approaches To Managing High Performing Websites
Metrics that Matter-Approaches To Managing High Performing WebsitesMetrics that Matter-Approaches To Managing High Performing Websites
Metrics that Matter-Approaches To Managing High Performing WebsitesBen Rushlo
 
Modular applications with montage components
Modular applications with montage componentsModular applications with montage components
Modular applications with montage componentsBenoit Marchant
 

Tendances (20)

RESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side ComponentsRESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side Components
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScript
 
SEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceSEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer Experience
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
HTML5 WebWorks
HTML5 WebWorksHTML5 WebWorks
HTML5 WebWorks
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Upload[1]
Upload[1]Upload[1]
Upload[1]
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
 
Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]
 
Beyond Responsive [18F 2015]
Beyond Responsive [18F 2015]Beyond Responsive [18F 2015]
Beyond Responsive [18F 2015]
 
Device aware web frameworks for better programming
Device aware web frameworks for better programmingDevice aware web frameworks for better programming
Device aware web frameworks for better programming
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortal
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
Responsive images are here. Now what?
Responsive images are here. Now what?Responsive images are here. Now what?
Responsive images are here. Now what?
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloaded
 
Metrics that Matter-Approaches To Managing High Performing Websites
Metrics that Matter-Approaches To Managing High Performing WebsitesMetrics that Matter-Approaches To Managing High Performing Websites
Metrics that Matter-Approaches To Managing High Performing Websites
 
AspNetWhitePaper
AspNetWhitePaperAspNetWhitePaper
AspNetWhitePaper
 
Modular applications with montage components
Modular applications with montage componentsModular applications with montage components
Modular applications with montage components
 
One APK to rule them all
One APK to rule them allOne APK to rule them all
One APK to rule them all
 

Similaire à Html5 on Mobile(For Developer)

Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Webmikeleeme
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010Patrick Lauke
 
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
 
[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
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3Helder da Rocha
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. ToolboxWojtek Zając
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 

Similaire à Html5 on Mobile(For Developer) (20)

Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Web
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
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
 
[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
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Html5
Html5Html5
Html5
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Mobile Web Design Code
Mobile Web Design CodeMobile Web Design Code
Mobile Web Design Code
 
Web app
Web appWeb app
Web app
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
 
Responsive design
Responsive designResponsive design
Responsive design
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. Toolbox
 
Web app
Web appWeb app
Web app
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 

Plus 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
 

Plus 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
 

Dernier

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
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
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
 
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
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

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
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
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
 
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
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
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
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
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!
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
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
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Html5 on Mobile(For Developer)

  • 1. HTML5 on Mobile (For Developer) Adam Lu http://adamlu.com/
  • 2. 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)
  • 3. Mobile is Growing Source: Nielsen (January 2012)
  • 4. 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
  • 5.
  • 6. Web App vsNative 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
  • 7. Mobile Users prefer browsers over apps (source: Adobe)
  • 9. What is HTML5 Forms, Communication, Canvas, Geolocation, Web Applications, Audio, WebGL, Microdata, Video, Workers, Files, Elements, Storage, Local Devices, User interaction, Parsing rules, …
  • 10. Build Mobile Web with HTML5 • Decide which platforms/browsers you will support -ms- Webkit on Mobile? -o- There is no webkit on mobile -moz- http://quirksmode.org/webkit.html -webkit-
  • 11. Build Mobile Web with HTML5 • HTML Markup <!DOCTYPE html> Semantic HTML: <html> <section> <head> <article> <meta charset="utf-8" /> <nav> <meta name="viewport" <aside> content="width=device-width, initial-scale=1, <header> 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
  • 12. Build Mobile Web with HTML5 • CSS Reset -webkit-text-size-adjust: none; -webkit-user-select: none; -webkit-touch-callout; -webkit-tap-highlight-color: transparent; audio, canvas, video { display: inline- block; } article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } input[type="search"]{ -webkit- appearance: none/textfield;}
  • 13. Build Mobile Web with HTML5 • Media Queries /*styles for 800px and up!*/ @media only screen and (min-width: 800px) { /* Styles */ } /* iPhone 4, Opera Mobile 11 and other high pixel ratio devices ----------- */ @media only screen and (-webkit-min-device-pixel- ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { /* Styles */ }
  • 14. Build Mobile Web with HTML5 • CSS3 Effect <input id="p" type="search" autocorrect="off" autocomplete="off" autocapitalize="off" placeholder="Search" /> border-image: url() 0 24 stretch box-shadow: #9FA1A4 0 3px 4px 2px -webkit-border-radius: 5px; inset background: #FFAB23 -webkit- border-radius: 15px; gradient(linear,0% 0,0% background: -webkit-linear-gradient(); 100%,from(#FE6),to(#FFAB23)); box-sizing: border-box; http://mobile.twitter.com/session/new
  • 15. Build Mobile Web with HTML5 • Make Animation CSS3 Animation instead of JS Animation transition: left 1s ease-in-out; http://jsfiddle.net/adamlu/RE6dF/ YUI().use(‘transition’, function(){}); #box1, #box2{ -webkit-transition: all 2s ease-in-out; } #box1:hover + #box2 { -webkit-transform: rotate(360deg); left: 500px; http://jsfiddle.net/adamlu/t5Afm/ }​
  • 16. Build Mobile Web with HTML5 • 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/
  • 17. Build Mobile Web with HTML5 • Graphic Drawing - Canvas & SVG http://jsfiddle.net/adamlu/xFR4V/ <canvas id="a" width="300" height="225"></canvas> vara_canvas = document.getElementById("a"); vara_context = a_canvas.getContext("2d"); a_context.fillRect(50, 25, 150, 100); <svgxmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> </svg> http://jsfiddle.net/adamlu/W67j8/ http://www.limejs.com/static/roundball/index.html
  • 18. Build Mobile Web with HTML5 • Media Support <video poster="" src="" width="2" height="1" x-webkit- airplay="allow"></video> <audio controls preload="auto" autobuffer> <source src="elvis.mp3" /> <source src="elvis.ogg" /> </audio>
  • 19. Build Mobile Web with HTML5 • Geolocation API Position Object navigator.geolocation.getCurrentPosition(succe ss, failure, options); PERMISSION_DENIED (1) POSITION_UNAVAILABLE (2) TIMEOUT (3) UNKNOWN_ERROR (0)
  • 20. Build Mobile Web with HTML5 • 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/
  • 21. Build Mobile Web with HTML5 • Device Support window.devicePixelRatio HTML Media Capture: navigator.connection(Android2.2+) <input type="file" accept="image/*" // contents of navigator.connection capture="camera" /> object <device type="media"></device> { "type": "3", <video autoplay></video> "UNKNOWN": "0", navigator.getUserMedia({video: true, "ETHERNET": "1", 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
  • 22. Build Mobile Web with HTML5 • User Interaction  Drag and Drop  HTML Editing  Session 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
  • 23. Build Mobile Web with HTML5 • Performance Offline Web Application Cache: <html manifest="/cache.manifest"> AddType text/cache-manifest .manifest CACHE MANIFEST NETWORK/CACHE/FALLBACK: LocalStorage/SessionStorage: varfoo = localStorage.getItem("bar"); localStorage.setItem("bar", foo); window.addEventListener("storage", handle_storage, false); Web Workers: var worker = new Worker('doWork.js'); worker.addEventListener('message', function(e) { console.log('Worker said: ', e.data); }, false); worker.postMessage('Hello World'); // Send data to our worker.
  • 24. Build Mobile Web with HTML5 • Communication  Cross-document messaging  Server-Sent Events(XHR2)  Web Sockets conn = new WebSocket('ws://node.remysharp.com:8001'); conn.onopen= function () {}; conn.onmessage= function (event) { // console.log(event.data); }; conn.onclose= function (event) { state.className = 'fail'; state.innerHTML = 'Socket closed'; }; http://html5demos.com/web-socket
  • 25. Build Mobile Web with HTML5 • Make Web App 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/
  • 26. Mobile Web App Strategy • Evaluate your requirement • Decide what app you’ll do • A hybrid app maybe a good approach (Web App  Native App) • Mobile-First Responsive Design • Progressive Enhancement • Lighter is better
  • 27. Frameworks • 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/
  • 28. Tools • Debugging  WEINRE  WebKit Remote Debugging • Emulators & Simulators  Mobile Emulators and Simulators  Android Emulator  iOS Simulator • Performance  Mobile PerfBookmarklet  http://www.blaze.io/mobile/
  • 29. 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/
  • 30. 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.
  • 31. 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/
  • 32. HTML5 is the future of Mobile!

Notes de l'éditeur

  1. Develop in HTML5 for mobile devices namely deploy roughly the same code based on all HTML5-ready phones