SlideShare a Scribd company logo
jQuery Mobile:
Progressive Enhancement with
HTML5
jQuery Mobile




    jQuery Mobile
and Progressive Enhancement
        with

               or really
                             +JS
              but never



    jQuery Mobile: Progressive Enhancement with HTML5
Who?



                                            Todd Anderson
                                                   Progressively Enhanced from NJ.
                                                        Currently resides in Boston.
                                         Shows displeasure for right-aligned fields.
                                 Took a picture of himself in a kitchen at least once.

                                                                                         kitchenphoto_3421.jpeg




                       Senior Software Engineer
http://infrared5.com



                       todd@custardbelly.com

                       @bustardcelly
 http://twitter.com



                       100% Centaur

                       Author

                                       jQuery Mobile: Progressive Enhancement with HTML5
What?




                 http://jquerymobile.com




• 1.0 Alpha 4.1
• Built on jQuery + jQuery UI* (Widget)
• Cross Platform
• A-grade browser support

           jQuery Mobile: Progressive Enhancement with HTML5
jQM Graded Browser Support




                                         http://jquerymobile.com/gbs/



jQuery Mobile: Progressive Enhancement with HTML5
How?




                 http://jquerymobile.com




• Progressive Enhancement
• HTML5 dataset attribute (data-)
• CSS3 & Themes
• Unobtrusive JavaScript

           jQuery Mobile: Progressive Enhancement with HTML5
Progressive Enhancement:
             Content




              http://www.flickr.com/photos/bamawester/97776370/




jQuery Mobile: Progressive Enhancement with HTML5
Progressive Enhancement:
      Content + Presentation




              http://www.flickr.com/photos/bamawester/97776370/




jQuery Mobile: Progressive Enhancement with HTML5
Progressive Enhancement:
 Content + Presentation + Behavior




              http://www.flickr.com/photos/bamawester/97776370/




                                                                 http://selleckwaterfallsandwich.tumblr.com/




jQuery Mobile: Progressive Enhancement with HTML5
How?!




    data-role



jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile Pages



data-role=”page”
      <!DOCTYPE html>
      <html>
        <head>
             <title>Hello World</title>
             <link rel="stylesheet"
                    href="style/jquery.mobile-1.0a4.1.min.css"
                    />
        </head>
        <body>
             <div data-role=”page”>
                 <p>This is so selleck.</p>
             </div>
        </body>
        <script src="script/jquery-1.6.1.min.js"></script>
        <script src="script/jquery.mobile-1.0a4.1.js"></script>
      </html>




 jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile Pages



                       Page Anatomy                                             required

<!DOCTYPE html>                                                                 optional
<html>
  <head>
       <title>I am sure to mistype something when I show code.</title>
       <link rel="stylesheet" href=”style/jquery.mobile-1.0a4.1.min.css"/>
  </head>
  <body>
       <div data-role=”page”>
          <div data-role=”header”><h3>jQuery Mobile Pages</h3></div>
          <div data-role=”content”>
              <p class=”content-header”>Page Anatomy</p>
          </div>
          <div data-role=”footer”>
              <p class=”footer-right”>jQuery Mobile: ProgEnhan with HTML5</p>
              <img src=”fatc-logo.png” alt=”FATC” />
          </div>
       </div>
  </body>
  <script src="script/jquery-1.6.1.min.js"></script>
  <script src="script/jquery.mobile-1.0a4.1.js"></script>
</html>



                          jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile pages




 page demo



jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile Pages



               Internal vs. External
Internal

href : #anotherpage

multiple internal pages

External

href : anotherpage.html

[data-ajax=”true”] : 1 internal page

[data-ajax=”false”] : multiple internal pages

[rel=”external”] : multiple internal pages

                          jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile pages




pages demo



jQuery Mobile: Progressive Enhancement with HTML5
blah blah mist blah blah hungry blah



                   dialog
                      Messages

i think my presentation is going well!

do you, now?

*sigh* whatʼs happened between us?

you keep complaining about “mist”. itʼs annoying.




         jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile pages




dialog demo



jQuery Mobile: Progressive Enhancement with HTML5
$.mobile                     methods & properties

API
                 • $.mobile.path
configuration     • $.mobile.base
                 • $.mobile.silentScroll()
                 • $.mobile.addResolutionBreakpoints()
                 • $.mobile.activePage
                 • $.mobile.pageLoading()
                 • $.mobile.changePage()




                  jQuery Mobile: Progressive Enhancement with HTML5
$.mobile                                  configuration

API
                 • ns
configuration     • defaultTransition
                 • gradeA()
                 • ajaxEnabled
                 • more...
                  <script src="script/jquery-1.5.2.min.js"></script>
                  <script type="text/javascript">
                      (function( $, document ) {
                          $(document).bind( "mobileinit", function() {
                              $(document).unbind( "mobileinit");
                              $.extend( $.mobile, {
                                  ns: “custom-"
                              });
                          })
                      })( jQuery, document );
                  </script>
                  <script src="script/jquery.mobile-1.0a4.1.min.js"></script>


                          * custom namespace requires change to .ui-mobile in css



                  jQuery Mobile: Progressive Enhancement with HTML5
.jqmData()



            data access
jQuery

$(elem).data( key );

$(elem).data( key, value );

jQuery Mobile

$(elem).jqmData( key );

$(elem).jqmData( key, value );



$(page).find(“div:jqmData(role=ʼcontentʼ)”);


           jQuery Mobile: Progressive Enhancement with HTML5
itʼs our time, down here.



             real world


$(50).find(“:jqmData(hideout=ʻfratelliʼ)”);




          jQuery Mobile: Progressive Enhancement with HTML5
this is so sandwich right now



                  UI Widgets

button

controlgroup

navbar

toolbars

form elements

list

                jQuery Mobile: Progressive Enhancement with HTML5
buttons and such



                    data-role=”button”
                      <a href=”#stop” data-role=”button”>no whammy!</a>




                                <button>
       <button type=”submit” name=”submit” value=”submit-stop”>no whammy!</button>


data-icon

       rate
 data-icon=”star”


data-iconpos

      swim                     waddle
data-iconpos=”left”     data-iconpos=”right”    data-iconpos=”notext”


                          jQuery Mobile: Progressive Enhancement with HTML5
jQM button group layout: inline



                   organization
• data-inline
 true
          eep              quack                  ow

 false [default]

          eep

        quack

          ow



                   jQuery Mobile: Progressive Enhancement with HTML5
jQM button group layout: controlgroup



                        organization
• data-inline
• data-role=”controlgroup”
  • data-type
 vertical [default]                         horizontal

        home                     home       favorites     settings
      favorites
       settings




                       jQuery Mobile: Progressive Enhancement with HTML5
jQM button group layout: ui-grid



            organization
• data-inline
• data-role=”controlgroup”
  • data-type
• data-role
  • ui-grid-[a to d]
  • ui-block-[a to d]
             home       favorites     settings



            jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile buttons!




button demo



jQuery Mobile: Progressive Enhancement with HTML5
jQM button group layout: navbar



            organization
• data-inline
• data-role=”controlgroup”
  • data-type
• data-role
  • ui-grid-[a to d]
  • ui-block-[a to d]
• data-role=”navbar”
            jQuery Mobile: Progressive Enhancement with HTML5
jQM button navbah



          data-role=”navbar”
• data-grid                       <div data-role="navbar" data-grid="b">
                                    <ul>
                                      <li><a href="#">home</a></li>

  • column count                      <li><a href="#">settings</a></li>
                                      <li><a href="#">favorite</a></li>

  • a(2) - d(5)                     </ul>
                                  </div>




    car                   mayor                            soda

     $(“div:jqmData(role=ʼnavbarʼ)”).bostonize();

    cah                   mayah                            tonic

             jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile buttons!




navbar demo



jQuery Mobile: Progressive Enhancement with HTML5
lost password?




        forms!



jQuery Mobile: Progressive Enhancement with HTML5
form markup and makeup




                                 forms
• declaration
 <form id=”myform” action=”login.php” method=”post”>
   ...
 </form>


• content
 <label for="name">Username:</label>
 <input type="text" name="name" id="name" value="" />



• event
 $(“myform”).bind( “submit”, function( event ) {
   ...
 });




                     jQuery Mobile: Progressive Enhancement with HTML5
demo




form demo: jQM docs
http://jquerymobile.com/demos/1.0a4/#docs/forms/forms-all.html




           jQuery Mobile: Progressive Enhancement with HTML5
form elements




              form element widgets
             http://jquerymobile.com/demos/1.0a4/docs/forms/docs-forms.html

textinput
$(“input[type=’text’]”).textinput(“disable”);

checkboxradio
$(“#myform”).find(“input”)
            .filter(“[type=’checkbox’], [type=’radio’]”)
            .attr(“checked”, false)
            .checkboxradio(“refresh”);

slider
$("input[type=range]").val(100).slider("refresh");

selectmenu
                                     var myselect = $("select#myselect");
var myselect = $("select#myselect"); myselect[0].selectedIndex = 0;
myselect[0].selectedIndex = 0;       myselect.selectmenu("refresh");
myselect.selectmenu("refresh");


                          jQuery Mobile: Progressive Enhancement with HTML5
native data attributes



                      native*

• provides no enhancement
• data-role=”none”
• data-native-menu=”true”

 * Must be declared on element prior to load of jQuery
 Mobile. Cannot be assigned and refreshed at runtime.

               jQuery Mobile: Progressive Enhancement with HTML5
lists




data-role=”listview”



   jQuery Mobile: Progressive Enhancement with HTML5
jQM item renderers



                  list item renderers


no extra data-roles!

inspects the children declaration within a list item (<li>)

icon list item renderers, split button lists

easy to create own custom list item renderers

look sorta like this by default

                          jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile lists




   lists demo



jQuery Mobile: Progressive Enhancement with HTML5
themes



                 themes
• jQM provides 5 color swatch schemes
  • -a through -e; allows up to 26

• DO NOT DOUBLE-UP WRAP-AROUND!
  • eg. ui-bar-aa


           jQuery Mobile: Progressive Enhancement with HTML5
themes



       beyond color swatches
• valencia
 http://jquerymobile.com/test/themes/valencia/




• ThemeRoller
 http://jqueryui.com/themeroller/




                      jQuery Mobile: Progressive Enhancement with HTML5
accessibility



                          WAI-ARIA
                        http://www.w3.org/WAI/intro/aria.php


• Roles, States and Properties
• Keyboard navigation with tabIndex
• Live Regions for dynamic content

 Introduction to WAI ARIA
 Gez Lemon, August 1 2008
 http://dev.opera.com/articles/view/introduction-to-wai-aria/




                      jQuery Mobile: Progressive Enhancement with HTML5
accessibility




screen reader demo*

*shamelessly re-presented as seen in a Scott Jehl presentation
  http://dayofjs.com/videos/22152945/jquery-mobile_scott-jehl


           jQuery Mobile: Progressive Enhancement with HTML5
cʼmon already!



      enhancement load

file                                           min-gzip
jquery.min.js                                       31KB
jquery.mobile.min.js                                19KB
jquery.mobile.min.css                                7KB
                                                    57KB




            jQuery Mobile: Progressive Enhancement with HTML5
perception techniques




<head>
    ...
                                     css
    <link rel="stylesheet" href="style/jquery.mobile-1.0a4.1.min.css" />
    <style type="text/css">
        body {
             display: none;
             visibility: hidden;
        }
    </style>
</head>
<body>
...
</body>
<script src="script/jquery-1.6.1.min.js"></script>
<script src="script/jquery.mobile-1.0a4.1.min.js"></script>
<script type="text/javascript">
    function showPage() {
        $("body").css( "visibility", "visible").css( "display", "inherit" );
    }
    $().ready( showPage );
</script>


                                                                          eh...
...




                       jQuery Mobile: Progressive Enhancement with HTML5
perception techniques



                                 LabJS
                                    http://labjs.com/

<html>
    <head>
        <title>labjs</title>
        <link rel="stylesheet" href="style/jquery.mobile-1.0a4.1.min.css" />
    </head>
    <body>
        <p>loading...</p>
    </body>
    <script src="script/LAB.min.js"></script>
    <script>
        $LAB
             .script("script/jquery-1.6.1.min.js")
             .script("script/jquery.mobile-1.0a4.1.min.js").wait( function() {
                 $("body").load("jqm_page.html");
             });
    </script>
</html>


                                                                      better!
                       jQuery Mobile: Progressive Enhancement with HTML5
outta the browser... sorta




     web-app



jQuery Mobile: Progressive Enhancement with HTML5
home




                        home screen
• metadata
 <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-
 scale=1.0; minimum-scale=1.0; user-scalable=false;"/>

 <meta name="apple-mobile-web-app-capable" content="yes" />
 <meta name="apple-mobile-web-app-status-bar-style" content="black" />

http://developer.apple.com/library/safari/#documentation/appleapplications/reference/
                        SafariHTMLRef/Articles/MetaTags.html

• webclips & appearance
 <link   rel="apple-touch-icon" href="touch-icon-iphone.png" />
 <link   rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" />
 <link   rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone4.png" />
 <link   rel="apple-touch-startup-image" href="start-up-image.png" />

http://developer.apple.com/library/safari/#documentation/appleapplications/reference/
    safariwebcontent/configuringwebapplications/configuringwebapplications.html

                       jQuery Mobile: Progressive Enhancement with HTML5
we bapp




web-app demo



jQuery Mobile: Progressive Enhancement with HTML5
jQM home applications



     web-app considerations

                                        higgins!


• use AJAX on change page
  • else will launch the browser
• include Back buttons in header
• use window.navigator.standalone
• cache.manifest
 http://diveintohtml5.org/offline.html


                      jQuery Mobile: Progressive Enhancement with HTML5
native deployment



native (easily)
existing jQM application -> native install




jQuery Mobile: Progressive Enhancement with HTML5
native deployment - PhoneGap




               PhoneGap
                 http://www.phonegap.com/




• project templates
• JS API for native access (limited)
• PhoneGap Build (Beta invite)


            jQuery Mobile: Progressive Enhancement with HTML5
native deployment - Adobe AIR




                        Adobe AIR
           http://labs.adobe.com/technologies/flashplatformruntimes/




• SDK compiler tools
• StageWebView
• JS <--> AS = iffy on device
 Making the most of StageWebView
 Sean Voisen, October 29 2010
 http://voisen.org/blog/2010/10/making-the-most-of-stagewebview/


                    jQuery Mobile: Progressive Enhancement with HTML5
native deployment - others




                            native: others
                            existing jQM application -> native install

NimbleKit
http://www.nimblekit.com/
QuickConnectFamily
http://quickconnectfamily.org/
Titanium*
http://www.appcelerator.com/
Rhodes**
http://rhomobile.com/products/rhodes/

                                                          * in theory, using   ** havenʼt tested
                                                       Titanium.UIWEbView

                            jQuery Mobile: Progressive Enhancement with HTML5
i do like the shirt, though.




              questions?*


* except from you in the blue shirt. 3rd row. you know who you are.


             jQuery Mobile: Progressive Enhancement with HTML5
jquery mobile




                             thank you!
                          todd anderson / todd@custardbelly.com




@bustardcelly
http://github.com/bustardcelly
http://www.custardbelly.com/blog

                         jQuery Mobile: Progressive Enhancement with HTML5

More Related Content

What's hot

Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for All
Marc Grabanski
 
Building jQuery Mobile Web Apps
Building jQuery Mobile Web AppsBuilding jQuery Mobile Web Apps
Building jQuery Mobile Web Apps
Operation Mobile
 
jQueryMobile Jump Start
jQueryMobile Jump StartjQueryMobile Jump Start
jQueryMobile Jump Start
Haim Michael
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobilemowd8574
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
crokitta
 
Quick Intro to JQuery and JQuery Mobile
Quick Intro to JQuery and JQuery MobileQuick Intro to JQuery and JQuery Mobile
Quick Intro to JQuery and JQuery MobileJussi Pohjolainen
 
Front-end Rails-приложений приложений, основанный на БЭМ
Front-end Rails-приложений приложений, основанный на БЭМFront-end Rails-приложений приложений, основанный на БЭМ
Front-end Rails-приложений приложений, основанный на БЭМ
Александр Ежов
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data Link
BorisMoore
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
Jarrod Overson
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and ModernizrJussi Pohjolainen
 
jQuery in the [Aol.] Enterprise
jQuery in the [Aol.] EnterprisejQuery in the [Aol.] Enterprise
jQuery in the [Aol.] Enterprise
Dave Artz
 
Client Web
Client WebClient Web
Client Web
Markiyan Matsekh
 
J query
J queryJ query
J query
David Giard
 
Index of jquery template 2 Minuteman Summer Web Dev.
Index of jquery template 2 Minuteman Summer Web Dev.Index of jquery template 2 Minuteman Summer Web Dev.
Index of jquery template 2 Minuteman Summer Web Dev.Daniel Downs
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014Mark Rackley
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
St. Petersburg College
 
HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2James Pearce
 
Javascript MVC & Backbone Tips & Tricks
Javascript MVC & Backbone Tips & TricksJavascript MVC & Backbone Tips & Tricks
Javascript MVC & Backbone Tips & TricksHjörtur Hilmarsson
 

What's hot (20)

Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for All
 
Building jQuery Mobile Web Apps
Building jQuery Mobile Web AppsBuilding jQuery Mobile Web Apps
Building jQuery Mobile Web Apps
 
jQueryMobile Jump Start
jQueryMobile Jump StartjQueryMobile Jump Start
jQueryMobile Jump Start
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
 
Quick Intro to JQuery and JQuery Mobile
Quick Intro to JQuery and JQuery MobileQuick Intro to JQuery and JQuery Mobile
Quick Intro to JQuery and JQuery Mobile
 
Front-end Rails-приложений приложений, основанный на БЭМ
Front-end Rails-приложений приложений, основанный на БЭМFront-end Rails-приложений приложений, основанный на БЭМ
Front-end Rails-приложений приложений, основанный на БЭМ
 
ActiveDOM
ActiveDOMActiveDOM
ActiveDOM
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data Link
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
 
JQuery
JQueryJQuery
JQuery
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and Modernizr
 
jQuery in the [Aol.] Enterprise
jQuery in the [Aol.] EnterprisejQuery in the [Aol.] Enterprise
jQuery in the [Aol.] Enterprise
 
Client Web
Client WebClient Web
Client Web
 
J query
J queryJ query
J query
 
Index of jquery template 2 Minuteman Summer Web Dev.
Index of jquery template 2 Minuteman Summer Web Dev.Index of jquery template 2 Minuteman Summer Web Dev.
Index of jquery template 2 Minuteman Summer Web Dev.
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
 
HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2
 
Javascript MVC & Backbone Tips & Tricks
Javascript MVC & Backbone Tips & TricksJavascript MVC & Backbone Tips & Tricks
Javascript MVC & Backbone Tips & Tricks
 

Viewers also liked

Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Nick Landry
 
Jquerymobile ppt
Jquerymobile pptJquerymobile ppt
Jquerymobile ppt
Willy Aguirre
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기
JungHyuk Kwon
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
Maximiliano Firtman
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
St. Petersburg College
 
jQuery Fundamentals
jQuery FundamentalsjQuery Fundamentals
jQuery Fundamentals
Gil Fink
 
jQuery & jQuery Mobile
jQuery & jQuery MobilejQuery & jQuery Mobile
jQuery & jQuery MobileMohammad Raju
 
AngularJS SEO with Prerender.io
AngularJS SEO with  Prerender.ioAngularJS SEO with  Prerender.io
AngularJS SEO with Prerender.io
Mozammel Haque
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech Quotient
Tarence DSouza
 
Plugins
PluginsPlugins
Plugins
Avner Solomon
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
Avner Solomon
 
Unit testing
Unit testingUnit testing
Unit testing
Leonardo Balter
 
Impact of Open Source
Impact of Open SourceImpact of Open Source
Impact of Open Source
Anne-Gaelle Colom
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
HTML5 JavaScript APIs
HTML5 JavaScript APIsHTML5 JavaScript APIs
HTML5 JavaScript APIs
Remy Sharp
 
하이브리드 앱 개발 개요
하이브리드 앱 개발 개요하이브리드 앱 개발 개요
하이브리드 앱 개발 개요Sohee Jeong
 
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
위키북스
 
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
정현 황
 

Viewers also liked (20)

Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Jquerymobile ppt
Jquerymobile pptJquerymobile ppt
Jquerymobile ppt
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
 
Selectores css
Selectores cssSelectores css
Selectores css
 
jQuery Fundamentals
jQuery FundamentalsjQuery Fundamentals
jQuery Fundamentals
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
jQuery & jQuery Mobile
jQuery & jQuery MobilejQuery & jQuery Mobile
jQuery & jQuery Mobile
 
AngularJS SEO with Prerender.io
AngularJS SEO with  Prerender.ioAngularJS SEO with  Prerender.io
AngularJS SEO with Prerender.io
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech Quotient
 
Plugins
PluginsPlugins
Plugins
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
Unit testing
Unit testingUnit testing
Unit testing
 
Impact of Open Source
Impact of Open SourceImpact of Open Source
Impact of Open Source
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
HTML5 JavaScript APIs
HTML5 JavaScript APIsHTML5 JavaScript APIs
HTML5 JavaScript APIs
 
하이브리드 앱 개발 개요
하이브리드 앱 개발 개요하이브리드 앱 개발 개요
하이브리드 앱 개발 개요
 
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
 
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
 

Similar to jQuery Mobile: Progressive Enhancement with HTML5

Mume JQueryMobile Intro
Mume JQueryMobile IntroMume JQueryMobile Intro
Mume JQueryMobile IntroGonzalo Parra
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
Ron Reiter
 
20111014 mu me_j_querymobile
20111014 mu me_j_querymobile20111014 mu me_j_querymobile
20111014 mu me_j_querymobileErik Duval
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScript
Gary Yeh
 
Write Less Do More
Write Less Do MoreWrite Less Do More
Write Less Do More
Remy Sharp
 
jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009
Remy Sharp
 
a-blog cms 勉強会 NAGOYA 20110718
a-blog cms 勉強会 NAGOYA 20110718a-blog cms 勉強会 NAGOYA 20110718
a-blog cms 勉強会 NAGOYA 20110718Ayumu Sato
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Sean Burgess
 
Jquery mobile book review
Jquery mobile book reviewJquery mobile book review
Jquery mobile book review
Islam AlZatary
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
Marc Grabanski
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
jQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda KatzjQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda Katz
Marakana Inc.
 
Cross-platform development in the context of mobile web
Cross-platform development in the context of mobile webCross-platform development in the context of mobile web
Cross-platform development in the context of mobile web
Misha Reyzlin
 
Toutch Jquery Mobile
Toutch Jquery MobileToutch Jquery Mobile
Toutch Jquery Mobile
Jinlong He
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
Rob Bontekoe
 
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
Jens-Christian Fischer
 
D2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerD2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerWO Community
 
A Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery MobileA Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery Mobile
Dan Pickett
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)
Adam Lu
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
Jonathan Snook
 

Similar to jQuery Mobile: Progressive Enhancement with HTML5 (20)

Mume JQueryMobile Intro
Mume JQueryMobile IntroMume JQueryMobile Intro
Mume JQueryMobile Intro
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
20111014 mu me_j_querymobile
20111014 mu me_j_querymobile20111014 mu me_j_querymobile
20111014 mu me_j_querymobile
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScript
 
Write Less Do More
Write Less Do MoreWrite Less Do More
Write Less Do More
 
jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009
 
a-blog cms 勉強会 NAGOYA 20110718
a-blog cms 勉強会 NAGOYA 20110718a-blog cms 勉強会 NAGOYA 20110718
a-blog cms 勉強会 NAGOYA 20110718
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
 
Jquery mobile book review
Jquery mobile book reviewJquery mobile book review
Jquery mobile book review
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
jQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda KatzjQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda Katz
 
Cross-platform development in the context of mobile web
Cross-platform development in the context of mobile webCross-platform development in the context of mobile web
Cross-platform development in the context of mobile web
 
Toutch Jquery Mobile
Toutch Jquery MobileToutch Jquery Mobile
Toutch Jquery Mobile
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
 
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
 
D2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerD2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRoller
 
A Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery MobileA Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery Mobile
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

jQuery Mobile: Progressive Enhancement with HTML5

  • 2. jQuery Mobile jQuery Mobile and Progressive Enhancement with or really +JS but never jQuery Mobile: Progressive Enhancement with HTML5
  • 3. Who? Todd Anderson Progressively Enhanced from NJ. Currently resides in Boston. Shows displeasure for right-aligned fields. Took a picture of himself in a kitchen at least once. kitchenphoto_3421.jpeg Senior Software Engineer http://infrared5.com todd@custardbelly.com @bustardcelly http://twitter.com 100% Centaur Author jQuery Mobile: Progressive Enhancement with HTML5
  • 4. What? http://jquerymobile.com • 1.0 Alpha 4.1 • Built on jQuery + jQuery UI* (Widget) • Cross Platform • A-grade browser support jQuery Mobile: Progressive Enhancement with HTML5
  • 5. jQM Graded Browser Support http://jquerymobile.com/gbs/ jQuery Mobile: Progressive Enhancement with HTML5
  • 6. How? http://jquerymobile.com • Progressive Enhancement • HTML5 dataset attribute (data-) • CSS3 & Themes • Unobtrusive JavaScript jQuery Mobile: Progressive Enhancement with HTML5
  • 7. Progressive Enhancement: Content http://www.flickr.com/photos/bamawester/97776370/ jQuery Mobile: Progressive Enhancement with HTML5
  • 8. Progressive Enhancement: Content + Presentation http://www.flickr.com/photos/bamawester/97776370/ jQuery Mobile: Progressive Enhancement with HTML5
  • 9. Progressive Enhancement: Content + Presentation + Behavior http://www.flickr.com/photos/bamawester/97776370/ http://selleckwaterfallsandwich.tumblr.com/ jQuery Mobile: Progressive Enhancement with HTML5
  • 10. How?! data-role jQuery Mobile: Progressive Enhancement with HTML5
  • 11. jQuery Mobile Pages data-role=”page” <!DOCTYPE html> <html> <head> <title>Hello World</title> <link rel="stylesheet" href="style/jquery.mobile-1.0a4.1.min.css" /> </head> <body> <div data-role=”page”> <p>This is so selleck.</p> </div> </body> <script src="script/jquery-1.6.1.min.js"></script> <script src="script/jquery.mobile-1.0a4.1.js"></script> </html> jQuery Mobile: Progressive Enhancement with HTML5
  • 12. jQuery Mobile Pages Page Anatomy required <!DOCTYPE html> optional <html> <head> <title>I am sure to mistype something when I show code.</title> <link rel="stylesheet" href=”style/jquery.mobile-1.0a4.1.min.css"/> </head> <body> <div data-role=”page”> <div data-role=”header”><h3>jQuery Mobile Pages</h3></div> <div data-role=”content”> <p class=”content-header”>Page Anatomy</p> </div> <div data-role=”footer”> <p class=”footer-right”>jQuery Mobile: ProgEnhan with HTML5</p> <img src=”fatc-logo.png” alt=”FATC” /> </div> </div> </body> <script src="script/jquery-1.6.1.min.js"></script> <script src="script/jquery.mobile-1.0a4.1.js"></script> </html> jQuery Mobile: Progressive Enhancement with HTML5
  • 13. jQuery Mobile pages page demo jQuery Mobile: Progressive Enhancement with HTML5
  • 14. jQuery Mobile Pages Internal vs. External Internal href : #anotherpage multiple internal pages External href : anotherpage.html [data-ajax=”true”] : 1 internal page [data-ajax=”false”] : multiple internal pages [rel=”external”] : multiple internal pages jQuery Mobile: Progressive Enhancement with HTML5
  • 15. jQuery Mobile pages pages demo jQuery Mobile: Progressive Enhancement with HTML5
  • 16. blah blah mist blah blah hungry blah dialog Messages i think my presentation is going well! do you, now? *sigh* whatʼs happened between us? you keep complaining about “mist”. itʼs annoying. jQuery Mobile: Progressive Enhancement with HTML5
  • 17. jQuery Mobile pages dialog demo jQuery Mobile: Progressive Enhancement with HTML5
  • 18. $.mobile methods & properties API • $.mobile.path configuration • $.mobile.base • $.mobile.silentScroll() • $.mobile.addResolutionBreakpoints() • $.mobile.activePage • $.mobile.pageLoading() • $.mobile.changePage() jQuery Mobile: Progressive Enhancement with HTML5
  • 19. $.mobile configuration API • ns configuration • defaultTransition • gradeA() • ajaxEnabled • more... <script src="script/jquery-1.5.2.min.js"></script> <script type="text/javascript"> (function( $, document ) { $(document).bind( "mobileinit", function() { $(document).unbind( "mobileinit"); $.extend( $.mobile, { ns: “custom-" }); }) })( jQuery, document ); </script> <script src="script/jquery.mobile-1.0a4.1.min.js"></script> * custom namespace requires change to .ui-mobile in css jQuery Mobile: Progressive Enhancement with HTML5
  • 20. .jqmData() data access jQuery $(elem).data( key ); $(elem).data( key, value ); jQuery Mobile $(elem).jqmData( key ); $(elem).jqmData( key, value ); $(page).find(“div:jqmData(role=ʼcontentʼ)”); jQuery Mobile: Progressive Enhancement with HTML5
  • 21. itʼs our time, down here. real world $(50).find(“:jqmData(hideout=ʻfratelliʼ)”); jQuery Mobile: Progressive Enhancement with HTML5
  • 22. this is so sandwich right now UI Widgets button controlgroup navbar toolbars form elements list jQuery Mobile: Progressive Enhancement with HTML5
  • 23. buttons and such data-role=”button” <a href=”#stop” data-role=”button”>no whammy!</a> <button> <button type=”submit” name=”submit” value=”submit-stop”>no whammy!</button> data-icon rate data-icon=”star” data-iconpos swim waddle data-iconpos=”left” data-iconpos=”right” data-iconpos=”notext” jQuery Mobile: Progressive Enhancement with HTML5
  • 24. jQM button group layout: inline organization • data-inline true eep quack ow false [default] eep quack ow jQuery Mobile: Progressive Enhancement with HTML5
  • 25. jQM button group layout: controlgroup organization • data-inline • data-role=”controlgroup” • data-type vertical [default] horizontal home home favorites settings favorites settings jQuery Mobile: Progressive Enhancement with HTML5
  • 26. jQM button group layout: ui-grid organization • data-inline • data-role=”controlgroup” • data-type • data-role • ui-grid-[a to d] • ui-block-[a to d] home favorites settings jQuery Mobile: Progressive Enhancement with HTML5
  • 27. jQuery Mobile buttons! button demo jQuery Mobile: Progressive Enhancement with HTML5
  • 28. jQM button group layout: navbar organization • data-inline • data-role=”controlgroup” • data-type • data-role • ui-grid-[a to d] • ui-block-[a to d] • data-role=”navbar” jQuery Mobile: Progressive Enhancement with HTML5
  • 29. jQM button navbah data-role=”navbar” • data-grid <div data-role="navbar" data-grid="b"> <ul> <li><a href="#">home</a></li> • column count <li><a href="#">settings</a></li> <li><a href="#">favorite</a></li> • a(2) - d(5) </ul> </div> car mayor soda $(“div:jqmData(role=ʼnavbarʼ)”).bostonize(); cah mayah tonic jQuery Mobile: Progressive Enhancement with HTML5
  • 30. jQuery Mobile buttons! navbar demo jQuery Mobile: Progressive Enhancement with HTML5
  • 31. lost password? forms! jQuery Mobile: Progressive Enhancement with HTML5
  • 32. form markup and makeup forms • declaration <form id=”myform” action=”login.php” method=”post”> ... </form> • content <label for="name">Username:</label> <input type="text" name="name" id="name" value="" /> • event $(“myform”).bind( “submit”, function( event ) { ... }); jQuery Mobile: Progressive Enhancement with HTML5
  • 33. demo form demo: jQM docs http://jquerymobile.com/demos/1.0a4/#docs/forms/forms-all.html jQuery Mobile: Progressive Enhancement with HTML5
  • 34. form elements form element widgets http://jquerymobile.com/demos/1.0a4/docs/forms/docs-forms.html textinput $(“input[type=’text’]”).textinput(“disable”); checkboxradio $(“#myform”).find(“input”) .filter(“[type=’checkbox’], [type=’radio’]”) .attr(“checked”, false) .checkboxradio(“refresh”); slider $("input[type=range]").val(100).slider("refresh"); selectmenu var myselect = $("select#myselect"); var myselect = $("select#myselect"); myselect[0].selectedIndex = 0; myselect[0].selectedIndex = 0; myselect.selectmenu("refresh"); myselect.selectmenu("refresh"); jQuery Mobile: Progressive Enhancement with HTML5
  • 35. native data attributes native* • provides no enhancement • data-role=”none” • data-native-menu=”true” * Must be declared on element prior to load of jQuery Mobile. Cannot be assigned and refreshed at runtime. jQuery Mobile: Progressive Enhancement with HTML5
  • 36. lists data-role=”listview” jQuery Mobile: Progressive Enhancement with HTML5
  • 37. jQM item renderers list item renderers no extra data-roles! inspects the children declaration within a list item (<li>) icon list item renderers, split button lists easy to create own custom list item renderers look sorta like this by default jQuery Mobile: Progressive Enhancement with HTML5
  • 38. jQuery Mobile lists lists demo jQuery Mobile: Progressive Enhancement with HTML5
  • 39. themes themes • jQM provides 5 color swatch schemes • -a through -e; allows up to 26 • DO NOT DOUBLE-UP WRAP-AROUND! • eg. ui-bar-aa jQuery Mobile: Progressive Enhancement with HTML5
  • 40. themes beyond color swatches • valencia http://jquerymobile.com/test/themes/valencia/ • ThemeRoller http://jqueryui.com/themeroller/ jQuery Mobile: Progressive Enhancement with HTML5
  • 41. accessibility WAI-ARIA http://www.w3.org/WAI/intro/aria.php • Roles, States and Properties • Keyboard navigation with tabIndex • Live Regions for dynamic content Introduction to WAI ARIA Gez Lemon, August 1 2008 http://dev.opera.com/articles/view/introduction-to-wai-aria/ jQuery Mobile: Progressive Enhancement with HTML5
  • 42. accessibility screen reader demo* *shamelessly re-presented as seen in a Scott Jehl presentation http://dayofjs.com/videos/22152945/jquery-mobile_scott-jehl jQuery Mobile: Progressive Enhancement with HTML5
  • 43. cʼmon already! enhancement load file min-gzip jquery.min.js 31KB jquery.mobile.min.js 19KB jquery.mobile.min.css 7KB 57KB jQuery Mobile: Progressive Enhancement with HTML5
  • 44. perception techniques <head> ... css <link rel="stylesheet" href="style/jquery.mobile-1.0a4.1.min.css" /> <style type="text/css"> body { display: none; visibility: hidden; } </style> </head> <body> ... </body> <script src="script/jquery-1.6.1.min.js"></script> <script src="script/jquery.mobile-1.0a4.1.min.js"></script> <script type="text/javascript"> function showPage() { $("body").css( "visibility", "visible").css( "display", "inherit" ); } $().ready( showPage ); </script> eh... ... jQuery Mobile: Progressive Enhancement with HTML5
  • 45. perception techniques LabJS http://labjs.com/ <html> <head> <title>labjs</title> <link rel="stylesheet" href="style/jquery.mobile-1.0a4.1.min.css" /> </head> <body> <p>loading...</p> </body> <script src="script/LAB.min.js"></script> <script> $LAB .script("script/jquery-1.6.1.min.js") .script("script/jquery.mobile-1.0a4.1.min.js").wait( function() { $("body").load("jqm_page.html"); }); </script> </html> better! jQuery Mobile: Progressive Enhancement with HTML5
  • 46. outta the browser... sorta web-app jQuery Mobile: Progressive Enhancement with HTML5
  • 47. home home screen • metadata <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum- scale=1.0; minimum-scale=1.0; user-scalable=false;"/> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> http://developer.apple.com/library/safari/#documentation/appleapplications/reference/ SafariHTMLRef/Articles/MetaTags.html • webclips & appearance <link rel="apple-touch-icon" href="touch-icon-iphone.png" /> <link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" /> <link rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone4.png" /> <link rel="apple-touch-startup-image" href="start-up-image.png" /> http://developer.apple.com/library/safari/#documentation/appleapplications/reference/ safariwebcontent/configuringwebapplications/configuringwebapplications.html jQuery Mobile: Progressive Enhancement with HTML5
  • 48. we bapp web-app demo jQuery Mobile: Progressive Enhancement with HTML5
  • 49. jQM home applications web-app considerations higgins! • use AJAX on change page • else will launch the browser • include Back buttons in header • use window.navigator.standalone • cache.manifest http://diveintohtml5.org/offline.html jQuery Mobile: Progressive Enhancement with HTML5
  • 50. native deployment native (easily) existing jQM application -> native install jQuery Mobile: Progressive Enhancement with HTML5
  • 51. native deployment - PhoneGap PhoneGap http://www.phonegap.com/ • project templates • JS API for native access (limited) • PhoneGap Build (Beta invite) jQuery Mobile: Progressive Enhancement with HTML5
  • 52. native deployment - Adobe AIR Adobe AIR http://labs.adobe.com/technologies/flashplatformruntimes/ • SDK compiler tools • StageWebView • JS <--> AS = iffy on device Making the most of StageWebView Sean Voisen, October 29 2010 http://voisen.org/blog/2010/10/making-the-most-of-stagewebview/ jQuery Mobile: Progressive Enhancement with HTML5
  • 53. native deployment - others native: others existing jQM application -> native install NimbleKit http://www.nimblekit.com/ QuickConnectFamily http://quickconnectfamily.org/ Titanium* http://www.appcelerator.com/ Rhodes** http://rhomobile.com/products/rhodes/ * in theory, using ** havenʼt tested Titanium.UIWEbView jQuery Mobile: Progressive Enhancement with HTML5
  • 54. i do like the shirt, though. questions?* * except from you in the blue shirt. 3rd row. you know who you are. jQuery Mobile: Progressive Enhancement with HTML5
  • 55. jquery mobile thank you! todd anderson / todd@custardbelly.com @bustardcelly http://github.com/bustardcelly http://www.custardbelly.com/blog jQuery Mobile: Progressive Enhancement with HTML5