SlideShare a Scribd company logo
jQTouch
Mobile Web Apps with
HTML, CSS & JavaScript




@philippbosch
February 18, 2010 – jsberlin
Hi, I’m Philipp.
Hi, I’m Philipp.
• Freelance Web Developer
Hi, I’m Philipp.
• Freelance Web Developer
• Working in Kreuzberg
Hi, I’m Philipp.
• Freelance Web Developer
• Working in Kreuzberg
• Creating websites & web applications since 1995
Hi, I’m Philipp.
• Freelance Web Developer
• Working in Kreuzberg
• Creating websites & web applications since 1995
• Been doing some mobile projects recently
Mobile Apps.
Mobile Apps.
• Two different ways to develop for mobile devices:
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
    • Objective-C (iPhone)
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
    • Objective-C (iPhone)
    • Java (Android)
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
    • Objective-C (iPhone)
    • Java (Android)
  • «Web Apps»
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
    • Objective-C (iPhone)
    • Java (Android)
  • «Web Apps»
    • HTML, CSS, JavaScript
Mobile Apps.
• Two different ways to develop for mobile devices:
  • «Native Apps»
    • Objective-C (iPhone)
    • Java (Android)
  • «Web Apps»
    • HTML, CSS, JavaScript
    • run on all devices with a web browser
Web Apps.
Web Apps.
• Any regular website can be a web app.
Web Apps.
• Any regular website can be a web app.
• On the iPhone you can add web apps to the
 home screen.
jQuery.com WebClip
jQuery.com WebClip
jQuery API Browser
jQuery API Browser
Voilà: jQTouch.
Voilà: jQTouch.
• Plugin for jQuery
Voilà: jQTouch.
• Plugin for jQuery
• User interface elements (iPhone style)
Voilà: jQTouch.
• Plugin for jQuery
• User interface elements (iPhone style)
• Themes
Voilà: jQTouch.
• Plugin for jQuery
• User interface elements (iPhone style)
• Themes
• Automatic Navigation
Voilà: jQTouch.
• Plugin for jQuery
• User interface elements (iPhone style)
• Themes
• Automatic Navigation
• Animations
Voilà: jQTouch.
• Plugin for jQuery
• User interface elements (iPhone style)
• Themes
• Automatic Navigation
• Animations
• Supports mobile Webkit browsers (iPhone,
 Android, Palm Pre, …)
How does it work?
How does it work?
• One HTML file.
How does it work?
• One HTML file.
• Inside the <body> element create a <div>
 element for each panel of your app.
How does it work?
• One HTML file.
• Inside the <body> element create a <div>
 element for each panel of your app.
• Use class name conventions in your HTML, e.g.
 div.toolbar, ul.rounded, a.back, …
How does it work?
• One HTML file.
• Inside the <body> element create a <div>
 element for each panel of your app.
• Use class name conventions in your HTML, e.g.
 div.toolbar, ul.rounded, a.back, …

• Add jqtouch.js, jqtouch.css, theme.css.
How does it work?
• One HTML file.
• Inside the <body> element create a <div>
 element for each panel of your app.
• Use class name conventions in your HTML, e.g.
 div.toolbar, ul.rounded, a.back, …

• Add jqtouch.js, jqtouch.css, theme.css.
• Call $.jQTouch().
<!doctype html>
<html>
  <head>
    <title>jsberlin</title>
    <script src="jqtouch/jquery.1.3.2.min.js">…
    <script src="jqtouch/jqtouch.min.js">…
    <style type="text/css">
       @import "jqtouch/jqtouch.min.css";
    </style>
    <style type="text/css">
       @import "themes/jqt/theme.min.css";
    </style>
    <script>
       $.jQTouch();
    </script>
  </head>
  …
…
  <body>
    <div id="home">
      <div class="toolbar"><h1>My app</h1></div>
      <ul class="rounded">
         <li><a href="#foo">Foo</a></li>
         <li><a href="#bar">Bar</a></li>
      </ul>
    </div>
    <div id="foo">
      <div class="toolbar">
         <h1>Foo</h1>
         <a href="#" class="back">Back</a>
      </div>
    </div>
  </body>
</html>
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
Animation.
Animation.
• 8 built-in animations: slide, slideup,
 dissolve, fade, flip, pop, swap and cube.
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
Animation.
• 8 built-in animations: slide, slideup,
 dissolve, fade, flip, pop, swap and cube.
Animation.
• 8 built-in animations: slide, slideup,
 dissolve, fade, flip, pop, swap and cube.

• Use these as class names for links to another
 panel (<a href="#foo" class="swap">).
Animation.
• 8 built-in animations: slide, slideup,
 dissolve, fade, flip, pop, swap and cube.

• Use these as class names for links to another
 panel (<a href="#foo" class="swap">).

• Default is slide.
Animation.
• 8 built-in animations: slide, slideup,
  dissolve, fade, flip, pop, swap and cube.

• Use these as class names for links to another
  panel (<a href="#foo" class="swap">).

• Default is slide.
• If you click on a back button the reverse
  animation is applied automatically.
…
<div id="home">
  <div class="toolbar"><h1>My app</h1></div>
  <ul class="rounded">
    <li><a href="#foo" class="flip">Foo</a></li>
    <li><a href="#bar">Bar</a></li>
  </ul>
</div>
…
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
Events.
Events.
• Five new events you can bind callbacks to:
Events.
• Five new events you can bind callbacks to:
 • tap
Events.
• Five new events you can bind callbacks to:
 • tap
 • http://blog.jqtouch.com/post/205113875/
Events.
• Five new events you can bind callbacks to:
 • tap
 • http://blog.jqtouch.com/post/205113875/

 • pageAnimationStart
Events.
• Five new events you can bind callbacks to:
 • tap
 • http://blog.jqtouch.com/post/205113875/

 • pageAnimationStart
 • pageAnimationEnd
Events.
• Five new events you can bind callbacks to:
 • tap
 • http://blog.jqtouch.com/post/205113875/

 • pageAnimationStart
 • pageAnimationEnd
 • turn
Events.
• Five new events you can bind callbacks to:
 • tap
 • http://blog.jqtouch.com/post/205113875/

 • pageAnimationStart
 • pageAnimationEnd
 • turn
 • swipe
$('#mybutton').tap(function() {
    // do something when the button is tapped on
});
$('#mypanel').bind('pageAnimationStart',
   function(event, info) {
     if (info.direction == 'in') {
       populateThePanelWithAjaxData();
     }
   }
);
$('body').bind('turn', function(event, info) {
    console.log(info.orientation);
    // landscape or profile
});
$('#swipeme').bind('swipe',
    function(event, info) {
        console.log(info.direction);
        // left or right
    }
);
Init Options.
Init Options.
$.jqTouch({
    icon: "path/to/homescreen-icon.png",
    startupScreen: "path/to/startup-image.png",
    statusBar: "default|black|black-translucent",
    addGlossToIcon: true|false,
    fixedViewport: true|false,
    preloadImages: ["img1.png","img2.png", …],
    ...
});
Themes.
Themes.
• Comes with two complete themes:
Themes.
• Comes with two complete themes:
 • «apple» mimics the default iPhone look
Themes.
• Comes with two complete themes:
 • «apple» mimics the default iPhone look
 • «jqt» is based on «apple» but darkermore
   universal
Themes.
• Comes with two complete themes:
 • «apple» mimics the default iPhone look
 • «jqt» is based on «apple» but darkermore
   universal
• Custom theming is easy: alter the CSS, throw in
 some graphics and you're done.
Themes.
• Comes with two complete themes:
  • «apple» mimics the default iPhone look
  • «jqt» is based on «apple» but darkermore
    universal
• Custom theming is easy: alter the CSS, throw in
  some graphics and you're done.
• Most graphical fx (gradients, round corners,
  shadows) are CSS3-based, so no gfx needed.
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
Pros & Cons.
Web apps: Pros.
Web apps: Pros.
• Ease of development.
Web apps: Pros.
• Ease of development.
• Cross-device compatibility.
Web apps: Pros.
• Ease of development.
• Cross-device compatibility.
• No AppStore approval needed.
Web apps: Pros.
• Ease of development.
• Cross-device compatibility.
• No AppStore approval needed.
• Easy updates.
Web apps: Cons.
Web apps: Cons.
• Only few APIs for device features available in JS.
Web apps: Cons.
• Only few APIs for device features available in JS.
• No AppStore.
Web apps: Cons.
• Only few APIs for device features available in JS.
• No AppStore.
• Hard to sell your app.
PhoneGap.
PhoneGap.
• Container for your web app.
PhoneGap.
• Container for your web app.
• Enables you to create a native app with your
 web app in it.
PhoneGap.
• Container for your web app.
• Enables you to create a native app with your
 web app in it.
• Put it in the AppStore, Android Market, …
PhoneGap.
• Container for your web app.
• Enables you to create a native app with your
 web app in it.
• Put it in the AppStore, Android Market, …
• Provides JS access to otherwise inaccessible
 device APIs.
Device APIs in JS.
Device APIs in JS.
• Device          • Camera
• Location        • Vibrate
• Accelerometer   • Sound
• Contacts        • Telephony
• Orientation     (if supported by the device)
PhoneGap.
PhoneGap.
• Supported platforms: iPhone, Android,
 Blackberry, Symbian, Palm.
PhoneGap.
• Supported platforms: iPhone, Android,
 Blackberry, Symbian, Palm.
• Windows Mobile, N900/Maemo to be added.
PhoneGap.
• Supported platforms: iPhone, Android,
 Blackberry, Symbian, Palm.
• Windows Mobile, N900/Maemo to be added.
• Open Source (MIT license).
Summing it up.
Summing it up.
Combine jQTouch with PhoneGap and the
possibilities of HTML 5 (Offline Cache,
localStorage/sessionStorage, client-side
databases) and you're gonna have a lot of fun.
Further reading.
Further reading.
• jQTouch » jqtouch.com
Further reading.
• jQTouch » jqtouch.com
• PhoneGap » phonegap.com
Further reading.
• jQTouch » jqtouch.com
• PhoneGap » phonegap.com
• Jonathan Stark: Building iPhone Apps with
 HTML, CSS, and JavaScript » building-iphone-
 apps.labs.oreilly.com
Thanks.




   CC-BY
Thanks.
Slides available at » pb.io/talks/jqtouch/.




        CC-BY
Thanks.
Slides available at » pb.io/talks/jqtouch/.
Tomorrow :)




        CC-BY
Demo
Showtime
Showtime
Todo
Todo
That's it.
Ad

Recommended

Google Developer Day: State of Ajax
Google Developer Day: State of Ajax
dion
 
jQuery for web development
jQuery for web development
iFour Institute - Sustainable Learning
 
BDD - Writing better scenario
BDD - Writing better scenario
Arnauld Loyer
 
Effectively Testing Services - Burlington Ruby Conf
Effectively Testing Services - Burlington Ruby Conf
neal_kemp
 
Appcelerator Titanium Kinetic practices part 1
Appcelerator Titanium Kinetic practices part 1
フ乇丂ひ丂
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!
Doris Chen
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
Luc Bors
 
Ionic: The Web SDK for Develop Mobile Apps.
Ionic: The Web SDK for Develop Mobile Apps.
Matheus Cardoso
 
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
mrdon
 
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Phil Leggetter
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
ralcocer
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
 
API Technical Writing
API Technical Writing
Sarah Maddox
 
Getting the Most Out of jQuery Widgets
Getting the Most Out of jQuery Widgets
velveeta_512
 
Java days Lviv 2015
Java days Lviv 2015
Alex Theedom
 
The Developer Experience
The Developer Experience
Pamela Fox
 
Oracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptx
Luc Bors
 
Web Components v1
Web Components v1
Mike Wilcox
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
 
Android | Busy Java Developers Guide to Android: UI | Ted Neward
Android | Busy Java Developers Guide to Android: UI | Ted Neward
JAX London
 
iPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
Keyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
Ali Bakhtiari
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
John Allspaw
 
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
glen_a_smith
 
Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015
Luc Bors
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
anistar sung
 
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
Yottaa
 
Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
M. Jackson Wilkinson
 
HTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts Basics
Sun Technlogies
 

More Related Content

What's hot (20)

AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
mrdon
 
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Phil Leggetter
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
ralcocer
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
 
API Technical Writing
API Technical Writing
Sarah Maddox
 
Getting the Most Out of jQuery Widgets
Getting the Most Out of jQuery Widgets
velveeta_512
 
Java days Lviv 2015
Java days Lviv 2015
Alex Theedom
 
The Developer Experience
The Developer Experience
Pamela Fox
 
Oracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptx
Luc Bors
 
Web Components v1
Web Components v1
Mike Wilcox
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
 
Android | Busy Java Developers Guide to Android: UI | Ted Neward
Android | Busy Java Developers Guide to Android: UI | Ted Neward
JAX London
 
iPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
Keyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
Ali Bakhtiari
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
John Allspaw
 
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
glen_a_smith
 
Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015
Luc Bors
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
anistar sung
 
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
Yottaa
 
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
mrdon
 
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Why You Should be Using Web Components Right Now. And How. ForwardJS July 2015
Phil Leggetter
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
ralcocer
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
 
API Technical Writing
API Technical Writing
Sarah Maddox
 
Getting the Most Out of jQuery Widgets
Getting the Most Out of jQuery Widgets
velveeta_512
 
Java days Lviv 2015
Java days Lviv 2015
Alex Theedom
 
The Developer Experience
The Developer Experience
Pamela Fox
 
Oracle MAF real life OOW.pptx
Oracle MAF real life OOW.pptx
Luc Bors
 
Web Components v1
Web Components v1
Mike Wilcox
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
 
Android | Busy Java Developers Guide to Android: UI | Ted Neward
Android | Busy Java Developers Guide to Android: UI | Ted Neward
JAX London
 
iPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
Keyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
Ali Bakhtiari
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
John Allspaw
 
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
Fake Your Way as a Mobile Developer Rockstar with PhoneGap
glen_a_smith
 
Real Life MAF (2.2) Oracle Open World 2015
Real Life MAF (2.2) Oracle Open World 2015
Luc Bors
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
anistar sung
 
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
So you want to build a mobile app - HTML5 vs. Native @ the Boston Mobile Expe...
Yottaa
 

Viewers also liked (20)

Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
M. Jackson Wilkinson
 
HTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts Basics
Sun Technlogies
 
HTML/CSS/JS基础
HTML/CSS/JS基础
jay li
 
JavaScript Programming
JavaScript Programming
Sehwan Noh
 
Web Development using HTML & CSS
Web Development using HTML & CSS
Shashank Skills Academy
 
Html / CSS Presentation
Html / CSS Presentation
Shawn Calvert
 
Refacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStores
Doron Rosenstock
 
Building The Wix SDK
Building The Wix SDK
David Zuckerman
 
Mobile Roadie - Profile Accelerator
Mobile Roadie - Profile Accelerator
Mobile Roadie
 
Wix - NOAH12 London
Wix - NOAH12 London
NOAH Advisors
 
5 visual tips for an awesome Wix site
5 visual tips for an awesome Wix site
Annie Laurie Malarkey
 
Code This, Not That: 10 Do's and Don'ts For Learning HTML
Code This, Not That: 10 Do's and Don'ts For Learning HTML
HubSpot
 
Apps On Click, Mobile Apps Development Company Corporate Profile
Apps On Click, Mobile Apps Development Company Corporate Profile
Appsonclick - A Mobile Apps Development Company
 
Html 4 01 Weekend Crash Course (2000) 0764547461
Html 4 01 Weekend Crash Course (2000) 0764547461
bhuvanann
 
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Aviran Mordo
 
HTML CSS and Web Development
HTML CSS and Web Development
Rahul Mishra
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
Aviran Mordo
 
jQTouch at jQuery Conference 2010
jQTouch at jQuery Conference 2010
David Kaneda
 
Building a Best-in-Class Economic Development Website
Building a Best-in-Class Economic Development Website
Atlas Integrated
 
HTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts Basics
Sun Technlogies
 
HTML/CSS/JS基础
HTML/CSS/JS基础
jay li
 
JavaScript Programming
JavaScript Programming
Sehwan Noh
 
Html / CSS Presentation
Html / CSS Presentation
Shawn Calvert
 
Refacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStores
Doron Rosenstock
 
Mobile Roadie - Profile Accelerator
Mobile Roadie - Profile Accelerator
Mobile Roadie
 
5 visual tips for an awesome Wix site
5 visual tips for an awesome Wix site
Annie Laurie Malarkey
 
Code This, Not That: 10 Do's and Don'ts For Learning HTML
Code This, Not That: 10 Do's and Don'ts For Learning HTML
HubSpot
 
Html 4 01 Weekend Crash Course (2000) 0764547461
Html 4 01 Weekend Crash Course (2000) 0764547461
bhuvanann
 
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Aviran Mordo
 
HTML CSS and Web Development
HTML CSS and Web Development
Rahul Mishra
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
Aviran Mordo
 
jQTouch at jQuery Conference 2010
jQTouch at jQuery Conference 2010
David Kaneda
 
Building a Best-in-Class Economic Development Website
Building a Best-in-Class Economic Development Website
Atlas Integrated
 
Ad

Similar to jQTouch – Mobile Web Apps with HTML, CSS and JavaScript (20)

jQuery Mobile and JavaScript
jQuery Mobile and JavaScript
Gary Yeh
 
Beginning jQuery Mobile
Beginning jQuery Mobile
Troy Miles
 
jQtouch, Building Awesome Webapps
jQtouch, Building Awesome Webapps
Home
 
From jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 Minutes
edill3484
 
Real World Lessons in jQuery Mobile
Real World Lessons in jQuery Mobile
Kai Koenig
 
jQTouch and Titanium
jQTouch and Titanium
Marc Grabanski
 
J query mobile tech talk
J query mobile tech talk
woliverj
 
Adobe & HTML5
Adobe & HTML5
Terry Ryan
 
Mobile web apps
Mobile web apps
Patrick Crowley
 
Jquery mobile
Jquery mobile
Predhin Sapru
 
jQuery Mobile Introduction
jQuery Mobile Introduction
Joris Graaumans
 
Cross Platform Mobile Development
Cross Platform Mobile Development
Manesh Lad
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
davyjones
 
Introduction to jQuery Mobile
Introduction to jQuery Mobile
ejlp12
 
Evaluation and prototyping of an HTML5 Client for iOS devices
Evaluation and prototyping of an HTML5 Client for iOS devices
Mario Gonzalez
 
Mobile JavaScript
Mobile JavaScript
Brian LeRoux
 
Mobile native-hacks
Mobile native-hacks
DevelopmentArc LLC
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
James Pearce
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
Ivano Malavolta
 
Overview on jQuery mobile
Overview on jQuery mobile
Md. Ziaul Haq
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScript
Gary Yeh
 
Beginning jQuery Mobile
Beginning jQuery Mobile
Troy Miles
 
jQtouch, Building Awesome Webapps
jQtouch, Building Awesome Webapps
Home
 
From jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 Minutes
edill3484
 
Real World Lessons in jQuery Mobile
Real World Lessons in jQuery Mobile
Kai Koenig
 
J query mobile tech talk
J query mobile tech talk
woliverj
 
jQuery Mobile Introduction
jQuery Mobile Introduction
Joris Graaumans
 
Cross Platform Mobile Development
Cross Platform Mobile Development
Manesh Lad
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
davyjones
 
Introduction to jQuery Mobile
Introduction to jQuery Mobile
ejlp12
 
Evaluation and prototyping of an HTML5 Client for iOS devices
Evaluation and prototyping of an HTML5 Client for iOS devices
Mario Gonzalez
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
James Pearce
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
Ivano Malavolta
 
Overview on jQuery mobile
Overview on jQuery mobile
Md. Ziaul Haq
 
Ad

Recently uploaded (20)

Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 

jQTouch – Mobile Web Apps with HTML, CSS and JavaScript

  • 1. jQTouch Mobile Web Apps with HTML, CSS & JavaScript @philippbosch February 18, 2010 – jsberlin
  • 3. Hi, I’m Philipp. • Freelance Web Developer
  • 4. Hi, I’m Philipp. • Freelance Web Developer • Working in Kreuzberg
  • 5. Hi, I’m Philipp. • Freelance Web Developer • Working in Kreuzberg • Creating websites & web applications since 1995
  • 6. Hi, I’m Philipp. • Freelance Web Developer • Working in Kreuzberg • Creating websites & web applications since 1995 • Been doing some mobile projects recently
  • 8. Mobile Apps. • Two different ways to develop for mobile devices:
  • 9. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps»
  • 10. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps» • Objective-C (iPhone)
  • 11. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps» • Objective-C (iPhone) • Java (Android)
  • 12. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps» • Objective-C (iPhone) • Java (Android) • «Web Apps»
  • 13. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps» • Objective-C (iPhone) • Java (Android) • «Web Apps» • HTML, CSS, JavaScript
  • 14. Mobile Apps. • Two different ways to develop for mobile devices: • «Native Apps» • Objective-C (iPhone) • Java (Android) • «Web Apps» • HTML, CSS, JavaScript • run on all devices with a web browser
  • 16. Web Apps. • Any regular website can be a web app.
  • 17. Web Apps. • Any regular website can be a web app. • On the iPhone you can add web apps to the home screen.
  • 24. Voilà: jQTouch. • Plugin for jQuery • User interface elements (iPhone style)
  • 25. Voilà: jQTouch. • Plugin for jQuery • User interface elements (iPhone style) • Themes
  • 26. Voilà: jQTouch. • Plugin for jQuery • User interface elements (iPhone style) • Themes • Automatic Navigation
  • 27. Voilà: jQTouch. • Plugin for jQuery • User interface elements (iPhone style) • Themes • Automatic Navigation • Animations
  • 28. Voilà: jQTouch. • Plugin for jQuery • User interface elements (iPhone style) • Themes • Automatic Navigation • Animations • Supports mobile Webkit browsers (iPhone, Android, Palm Pre, …)
  • 29. How does it work?
  • 30. How does it work? • One HTML file.
  • 31. How does it work? • One HTML file. • Inside the <body> element create a <div> element for each panel of your app.
  • 32. How does it work? • One HTML file. • Inside the <body> element create a <div> element for each panel of your app. • Use class name conventions in your HTML, e.g. div.toolbar, ul.rounded, a.back, …
  • 33. How does it work? • One HTML file. • Inside the <body> element create a <div> element for each panel of your app. • Use class name conventions in your HTML, e.g. div.toolbar, ul.rounded, a.back, … • Add jqtouch.js, jqtouch.css, theme.css.
  • 34. How does it work? • One HTML file. • Inside the <body> element create a <div> element for each panel of your app. • Use class name conventions in your HTML, e.g. div.toolbar, ul.rounded, a.back, … • Add jqtouch.js, jqtouch.css, theme.css. • Call $.jQTouch().
  • 35. <!doctype html> <html> <head> <title>jsberlin</title> <script src="jqtouch/jquery.1.3.2.min.js">… <script src="jqtouch/jqtouch.min.js">… <style type="text/css"> @import "jqtouch/jqtouch.min.css"; </style> <style type="text/css"> @import "themes/jqt/theme.min.css"; </style> <script> $.jQTouch(); </script> </head> …
  • 36. … <body> <div id="home"> <div class="toolbar"><h1>My app</h1></div> <ul class="rounded"> <li><a href="#foo">Foo</a></li> <li><a href="#bar">Bar</a></li> </ul> </div> <div id="foo"> <div class="toolbar"> <h1>Foo</h1> <a href="#" class="back">Back</a> </div> </div> </body> </html>
  • 41. Animation. • 8 built-in animations: slide, slideup, dissolve, fade, flip, pop, swap and cube.
  • 43. Animation. • 8 built-in animations: slide, slideup, dissolve, fade, flip, pop, swap and cube.
  • 44. Animation. • 8 built-in animations: slide, slideup, dissolve, fade, flip, pop, swap and cube. • Use these as class names for links to another panel (<a href="#foo" class="swap">).
  • 45. Animation. • 8 built-in animations: slide, slideup, dissolve, fade, flip, pop, swap and cube. • Use these as class names for links to another panel (<a href="#foo" class="swap">). • Default is slide.
  • 46. Animation. • 8 built-in animations: slide, slideup, dissolve, fade, flip, pop, swap and cube. • Use these as class names for links to another panel (<a href="#foo" class="swap">). • Default is slide. • If you click on a back button the reverse animation is applied automatically.
  • 47. … <div id="home"> <div class="toolbar"><h1>My app</h1></div> <ul class="rounded"> <li><a href="#foo" class="flip">Foo</a></li> <li><a href="#bar">Bar</a></li> </ul> </div> …
  • 50. Events. • Five new events you can bind callbacks to:
  • 51. Events. • Five new events you can bind callbacks to: • tap
  • 52. Events. • Five new events you can bind callbacks to: • tap • http://blog.jqtouch.com/post/205113875/
  • 53. Events. • Five new events you can bind callbacks to: • tap • http://blog.jqtouch.com/post/205113875/ • pageAnimationStart
  • 54. Events. • Five new events you can bind callbacks to: • tap • http://blog.jqtouch.com/post/205113875/ • pageAnimationStart • pageAnimationEnd
  • 55. Events. • Five new events you can bind callbacks to: • tap • http://blog.jqtouch.com/post/205113875/ • pageAnimationStart • pageAnimationEnd • turn
  • 56. Events. • Five new events you can bind callbacks to: • tap • http://blog.jqtouch.com/post/205113875/ • pageAnimationStart • pageAnimationEnd • turn • swipe
  • 57. $('#mybutton').tap(function() { // do something when the button is tapped on });
  • 58. $('#mypanel').bind('pageAnimationStart', function(event, info) { if (info.direction == 'in') { populateThePanelWithAjaxData(); } } );
  • 59. $('body').bind('turn', function(event, info) { console.log(info.orientation); // landscape or profile });
  • 60. $('#swipeme').bind('swipe', function(event, info) { console.log(info.direction); // left or right } );
  • 62. Init Options. $.jqTouch({ icon: "path/to/homescreen-icon.png", startupScreen: "path/to/startup-image.png", statusBar: "default|black|black-translucent", addGlossToIcon: true|false, fixedViewport: true|false, preloadImages: ["img1.png","img2.png", …], ... });
  • 64. Themes. • Comes with two complete themes:
  • 65. Themes. • Comes with two complete themes: • «apple» mimics the default iPhone look
  • 66. Themes. • Comes with two complete themes: • «apple» mimics the default iPhone look • «jqt» is based on «apple» but darkermore universal
  • 67. Themes. • Comes with two complete themes: • «apple» mimics the default iPhone look • «jqt» is based on «apple» but darkermore universal • Custom theming is easy: alter the CSS, throw in some graphics and you're done.
  • 68. Themes. • Comes with two complete themes: • «apple» mimics the default iPhone look • «jqt» is based on «apple» but darkermore universal • Custom theming is easy: alter the CSS, throw in some graphics and you're done. • Most graphical fx (gradients, round corners, shadows) are CSS3-based, so no gfx needed.
  • 72. Web apps: Pros. • Ease of development.
  • 73. Web apps: Pros. • Ease of development. • Cross-device compatibility.
  • 74. Web apps: Pros. • Ease of development. • Cross-device compatibility. • No AppStore approval needed.
  • 75. Web apps: Pros. • Ease of development. • Cross-device compatibility. • No AppStore approval needed. • Easy updates.
  • 77. Web apps: Cons. • Only few APIs for device features available in JS.
  • 78. Web apps: Cons. • Only few APIs for device features available in JS. • No AppStore.
  • 79. Web apps: Cons. • Only few APIs for device features available in JS. • No AppStore. • Hard to sell your app.
  • 82. PhoneGap. • Container for your web app. • Enables you to create a native app with your web app in it.
  • 83. PhoneGap. • Container for your web app. • Enables you to create a native app with your web app in it. • Put it in the AppStore, Android Market, …
  • 84. PhoneGap. • Container for your web app. • Enables you to create a native app with your web app in it. • Put it in the AppStore, Android Market, … • Provides JS access to otherwise inaccessible device APIs.
  • 86. Device APIs in JS. • Device • Camera • Location • Vibrate • Accelerometer • Sound • Contacts • Telephony • Orientation (if supported by the device)
  • 88. PhoneGap. • Supported platforms: iPhone, Android, Blackberry, Symbian, Palm.
  • 89. PhoneGap. • Supported platforms: iPhone, Android, Blackberry, Symbian, Palm. • Windows Mobile, N900/Maemo to be added.
  • 90. PhoneGap. • Supported platforms: iPhone, Android, Blackberry, Symbian, Palm. • Windows Mobile, N900/Maemo to be added. • Open Source (MIT license).
  • 92. Summing it up. Combine jQTouch with PhoneGap and the possibilities of HTML 5 (Offline Cache, localStorage/sessionStorage, client-side databases) and you're gonna have a lot of fun.
  • 95. Further reading. • jQTouch » jqtouch.com • PhoneGap » phonegap.com
  • 96. Further reading. • jQTouch » jqtouch.com • PhoneGap » phonegap.com • Jonathan Stark: Building iPhone Apps with HTML, CSS, and JavaScript » building-iphone- apps.labs.oreilly.com
  • 97. Thanks. CC-BY
  • 98. Thanks. Slides available at » pb.io/talks/jqtouch/. CC-BY
  • 99. Thanks. Slides available at » pb.io/talks/jqtouch/. Tomorrow :) CC-BY
  • 100. Demo
  • 103. Todo
  • 104. Todo

Editor's Notes

  • #3: Share my experiences / lessons learned with you.
  • #4: Share my experiences / lessons learned with you.
  • #5: Share my experiences / lessons learned with you.
  • #6: Share my experiences / lessons learned with you.
  • #7: Native: device-specific framework / environment
  • #8: Native: device-specific framework / environment
  • #9: Native: device-specific framework / environment
  • #10: Native: device-specific framework / environment
  • #11: Native: device-specific framework / environment
  • #12: Native: device-specific framework / environment
  • #13: Native: device-specific framework / environment
  • #24: One HTML file makes the skeleton of your app.
  • #25: One HTML file makes the skeleton of your app.
  • #26: One HTML file makes the skeleton of your app.
  • #27: One HTML file makes the skeleton of your app.
  • #28: One HTML file makes the skeleton of your app.
  • #53: Easy customizing
  • #54: Easy customizing
  • #55: Easy customizing
  • #56: Easy customizing
  • #57: Easy customizing
  • #71: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #72: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #73: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #74: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #75: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #76: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #77: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #78: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #79: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.
  • #80: Device: properties of the phone, device ID, model, and OS version number. Location: Latitude/Longitude, course, speed, altitude. Accelerometer: detect orientation, shaking etc. Contacts: addressbook, read the users contacts. Orientation: device layout orientation, e.g. landscape vs portrait. Camera: Brings up the camera or photo browser. Vibrate: vibration alert if supported. Sound: Play sound files (WAV, MP3, etc). Telephony: Trigger and activate phone calls.