SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Mobile App Development
   From a Web Developer’s Perspective
Chris Morrell
                  http://cmorrell.com/
                  @inxilpro



Who the heck am I?
 And what gives me the right to act as
though I know what I’m talking about?
PhillyNewMediaHub.com
Today’s Mobile Technology
Today’s Mobile Technology
     • High-speed    Internet
      • Edge/3G:     100 Kbps–1.5 Mbps
      • Wifi:   10+ Mbps
     • Significant   processor speeds
     • Significant   graphical capabilities
     • Touch    interfaces
Today’s Mobile Technology




              WebKit
Today’s Mobile Technology


    These guys use WebKit too!




                   WebKit
Web App vs. Native App
Web App vs. Native App

            • Easy   to develop
            • Don’t   require approval
            • Maintained   centrally
            • Not   on App Store
            • Limitedto HTML/CSS/
             JavaScript capabilities
Web App vs. Native App

            • Better UI
            • Easy to develop
            • More powerful
            • Don’t require approval
            • More control
            • Maintained centrally
            • Access to GPU
            • Not on App Store
            • Costly to develop
            • Limited to HTML/CSS/
              JavaScript capabilities
            • Requires approval
Web App vs. Native App

            • Better UI
            • Easy to develop
            • More powerful
            • Don’t require approval
            • More control
            • Maintained centrally
            • Access to GPU
            • Not on App Store
            • Costly to develop
            • Limited to HTML/CSS/
              JavaScript capabilities
            • Requires approval
Web App
 ...vs. Mobile Website




  • Mobile   & Smartphone Stylesheets
  • Viewport   Definition
  • Optimized   Graphics
Technologies
• Objective-C   & Cocoa Touch (iPhone-only)
• Java   (Blackberry, Android, Symbian)
• Palm   Mojo [HTML5, JS, CSS + Dojo-based framework] (Palm-only)
• Visual   C#/Visual Basic/.NET (Windows Mobile-only)
• C++   (Symbian, Windows Mobile)
• HTML5,    JavaScript and CSS
• PhoneGap

• Titanium    Mobile
• Rhomobile
                                          Cross-platform w/ single API
Technologies
• Objective-C   & Cocoa Touch (iPhone-only)
• Java   (Blackberry, Android, Symbian)
• Palm   Mojo [HTML5, JS, CSS + Dojo-based framework] (Palm-only)
• Visual   C#/Visual Basic/.NET (Windows Mobile-only)
• C++   (Symbian, Windows Mobile)
• HTML5,    JavaScript and CSS
• PhoneGap

• Titanium    Mobile
• Rhomobile
                                          Cross-platform w/ single API
HTML5, JavaScript & CSS
HTML5, JavaScript & CSS
                       The basics



•   CSS2     “Handheld” Media Stylesheets
•   CSS3     Media Queries
•   Apple*   Viewport


              * Supported by several browsers, including mobile Firefox
HTML5, JavaScript & CSS
                     Advanced

•   HTML5   Offline Caching
•   HTML5   SQLite-compatible Offline Storage
•   CSS3    CSS Animations
•   W3C API Geolocation
•   HTML5   Canvas
*
      Mobile JS/CSS Frameworks
IUI                             jQTouch
(Older) iPhone UI clone         jQuery plugin for iPhone UI
http://code.google.com/p/iui/   http://www.jqtouch.com/
XUI                             Safire
Mobile-focused framework        iPhone UI clone
http://xuijs.com/               http://code.google.com/p/safire/
CiUI                            iWebKit
CNET’s iPhone UI clone          Extensive iPhone UI clone
http://bit.ly/5p4tMY            http://iwebkit.net/
UiUIKit                         WebApp.Net
CSS-only iPhone UI clone        iPhone UI clone + framework
http://bit.ly/7Qtnhx            http://webapp-net.com/
Magic Framework                 Dashcode
iPhone UI clone                 Apple’s Dashboard Toolkit
http://bit.ly/6zJ4eK            http://bit.ly/7sntmM
                                                          Not an exhaustive list
                                                      *
PhoneGap
PhoneGap
• WebKit-wrapper    application
• Consistent   APIs for device functions
 • Geolocation

 • Vibration

 • Accelerometer

 • Etc

• Supports   many devices
PhoneGap Device Support
                iPhone Android Blackberry Windows Symbian Palm Maemo

 Geo Location


    Vibration



Accelerometer



       Sound


      Contacs

                                                         Data from Jan 22, 2010

 Unknown or experimental
Titanium Mobile
Titanium Mobile
• Accelerometer

• Database

• Filesystem
                        +
• Geolocation       Native UI
                   Components
• Mapping

• Media

• Networking
Titanium 0.9/1.0
• iPad
     & Blackberry
                       • New   APIs
 support
• Less                  • Animation
     reliance on web
 views (slow)           • Streaming    Audio
• Dynamic   APIs        • Proximity    Sensor
• More   extensible     • Low-level    Graphics
• 5x+ performance       • Network     Streaming
 increases
PhoneGap vs. Titanium
• Easier   to start   • Mobile&
                       desktop
• Supports    more
 platforms            • Native   UI
                      • Poor
                       documentation



Both fully open source!
PhoneGap vs. Titanium


       Both HTML


         Faux-Native
     True Native
PhoneGap
Use When:
• Using just web technologies
• Targeting many devices



Titanium
Use When:
• Need native UI/functionality
• Targeting iPhone & Android
Objective-C/Cocoa Touch
Objective C/Cocoa Touch
• 100%    Native Application
• Full   native performance
• Access   to entire iPhone SDK & UI Components
• Interface   Builder
• iPhone/iPad-only

• Mac    development-only*
                 * No matter what you need a Mac to compile for iPhone
DEMO
!
    HTML5 Offline Caching
CACHE MANIFEST
# version 1.0
index.html




                  !
application.js
theme.css
sprites.png      Ack!
                 Code Ahead
NETWORK:
/api

FALLBACK:
/images/avatars/ /images/default-avatar.png
!
Ack!
Code
       Ahea
              d




                  HTML5 Offline Caching
         CACHE MANIFEST
         # version 1.0
         index.html
         application.js
         theme.css
         sprites.png

         NETWORK:
         /api

         FALLBACK:
         /images/avatars/ /images/default-avatar.png
!
             Mobile Stylesheets
    <!-- Main Stylesheet -->
    <link type="text/css" rel="stylesheet" href="screen.css"
      media="screen">

    <!-- Smartphone Stylesheet-->
    <link type="text/css" rel="stylesheet" href="smartphone.css"
      media="only screen and (max-device-width: 480px)">

    <!-- Handheld Stylesheet -->
    <link type="text/css" rel="stylesheet" href="handheld.css"
      media="handheld">




    • To
       account for Windows Mobile, conditional
     comments are required (not shown).
!
             Mobile Stylesheets
    <!-- Main Stylesheet -->
    <link type="text/css" rel="stylesheet" href="screen.css"
      media="screen">

    <!-- Smartphone Stylesheet-->
    <link type="text/css" rel="stylesheet" href="smartphone.css"
      media="only screen and (max-device-width: 480px)">

    <!-- Handheld Stylesheet -->
    <link type="text/css" rel="stylesheet" href="handheld.css"
      media="handheld">




    • To
       account for Windows Mobile, conditional
     comments are required (not shown).
!
             Mobile Stylesheets
    <!-- Main Stylesheet -->
    <link type="text/css" rel="stylesheet" href="screen.css"
      media="screen">

    <!-- Smartphone Stylesheet-->
    <link type="text/css" rel="stylesheet" href="smartphone.css"
      media="only screen and (max-device-width: 480px)">

    <!-- Handheld Stylesheet -->
    <link type="text/css" rel="stylesheet" href="handheld.css"
      media="handheld">




    • To
       account for Windows Mobile, conditional
     comments are required (not shown).
!
             Mobile Stylesheets
    <!-- Main Stylesheet -->
    <link type="text/css" rel="stylesheet" href="screen.css"
      media="screen">

    <!-- Smartphone Stylesheet-->
    <link type="text/css" rel="stylesheet" href="smartphone.css"
      media="only screen and (max-device-width: 480px)">

    <!-- Handheld Stylesheet -->
    <link type="text/css" rel="stylesheet" href="handheld.css"
      media="handheld">




    • To
       account for Windows Mobile, conditional
     comments are required (not shown).
!
             Viewport Scaling
<meta name="viewport"
   content= "width=320, initial-scale=2.3, user-scalable=no" />


• width

• height
                                  Tip:
• initial-scale                   When setting the width/height
                                  you can use “device-width” and
• minimum-scale                   “device-height” to match the
                                  size of the user’s device.

• maximum-scale

• user-scalable
!
           HTML5 SQLite Storage
 1   var db = openDatabase("Demo", "1.0");
 2   if (db) {
 3     db.transaction(function(tx) {
 4       tx.executeSql("SELECT * FROM demo", [], function(result) {
 5         // “result” contains all rows in “demo” table
 6       }, function(tx, error) {
 7            var sql = "CREATE TABLE demo (id INTEGER, demo TEXT)";
 8            tx.executeSql(sql, [], function(result) {
 9              // database created, now do something
10            });
11       });
12     });
13   } else {
14     alert("Unable to open database!");
15   }


                                                          Ack!
!
             CSS3 Transitions
div {
  opacity: 1;
  -webkit-transition-property: opacity;
  -webkit-transition-duration: 1s;
  -webkit-transition-timing-function: ease-in-out;
}
div:hover {
  opacity: 0;
}


• Properties:   none, all, <property>
• Timing:   ease, ease-in, ease-out, ease-in-out,
    cubic-bezier(x1, y1, x2, y2)
!
             Geolocation API
var options = {
   maximumAge: 60000
};

function gotPosition(p) {
  var lat = p.coords.latitude;
  var lon = p.coords.longitude;
}

function positionError(e) {
  var code = e.code;
}

navigator.geolocation.getCurrentPosition(gotPosition,
                                         positionError,
                                         options);
!
             Geolocation API
var options = {
   maximumAge: 60000
};

function gotPosition(p) {
  var lat = p.coords.latitude;
  var lon = p.coords.longitude;
}

function positionError(e) {
  var code = e.code;
}

navigator.geolocation.getCurrentPosition(gotPosition,
                                         positionError,
                                         options);
!
             Geolocation API
var options = {
   maximumAge: 60000
};

function gotPosition(p) {
  var lat = p.coords.latitude;
  var lon = p.coords.longitude;
}

function positionError(e) {
  var code = e.code;
}

navigator.geolocation.getCurrentPosition(gotPosition,
                                         positionError,
                                         options);
!
             Geolocation API
var options = {
   maximumAge: 60000
};

function gotPosition(p) {
  var lat = p.coords.latitude;
  var lon = p.coords.longitude;
}

function positionError(e) {
  var code = e.code;
}

navigator.geolocation.getCurrentPosition(gotPosition,
                                         positionError,
                                         options);
!
             Geolocation API
var options = {
   maximumAge: 60000
};

function gotPosition(p) {
  var lat = p.coords.latitude;
  var lon = p.coords.longitude;
}

function positionError(e) {
  var code = e.code;
}

navigator.geolocation.getCurrentPosition(gotPosition,
                                         positionError,
                                         options);
!
           Phone-Specific Tags


• apple-mobile-web-app-capable   (yes/no)
• apple-mobile-web-app-status-bar-style   (default,
    black, black-translucent)
• format-detection   (telephone=no)
PhillyNewMediaHub Mobile
!
             IUI Code Example
    <!-- Toolbar -->
    <div class="toolbar">
      <h1 id="pageTitle"></h1>
      <a id="backButton" class="button" href="#"></a>
    </div>

    <!-- Main Menu -->
    <ul id="home" title="Home" selected="true">
      <li><a href="#calendars">Calendars</a></li>
      <li><a href="#blogs">Blogs</a></li>
      <li><a href="#mailinglists">Mailing Lists</a></li>
      <li><a href="/iphone/about">About</a></li>
    </ul>

    <!-- Calendars -->
    <ul id="calendars" title="Calendars">
    </ul>
!
             IUI Code Example
    <!-- Toolbar -->
    <div class="toolbar">
      <h1 id="pageTitle"></h1>
      <a id="backButton" class="button" href="#"></a>
    </div>

    <!-- Main Menu -->
    <ul id="home" title="Home" selected="true">
      <li><a href="#calendars">Calendars</a></li>
      <li><a href="#blogs">Blogs</a></li>
      <li><a href="#mailinglists">Mailing Lists</a></li>
      <li><a href="/iphone/about">About</a></li>
    </ul>

    <!-- Calendars -->
    <ul id="calendars" title="Calendars">
    </ul>
!
             IUI Code Example
    <!-- Toolbar -->
    <div class="toolbar">
      <h1 id="pageTitle"></h1>
      <a id="backButton" class="button" href="#"></a>
    </div>

    <!-- Main Menu -->
    <ul id="home" title="Home" selected="true">
      <li><a href="#calendars">Calendars</a></li>
      <li><a href="#blogs">Blogs</a></li>
      <li><a href="#mailinglists">Mailing Lists</a></li>
      <li><a href="/iphone/about">About</a></li>
    </ul>

    <!-- Calendars -->
    <ul id="calendars" title="Calendars">
    </ul>
!
             IUI Code Example
    <!-- Toolbar -->
    <div class="toolbar">
      <h1 id="pageTitle"></h1>
      <a id="backButton" class="button" href="#"></a>
    </div>

    <!-- Main Menu -->
    <ul id="home" title="Home" selected="true">
      <li><a href="#calendars">Calendars</a></li>
      <li><a href="#blogs">Blogs</a></li>
      <li><a href="#mailinglists">Mailing Lists</a></li>
      <li><a href="/iphone/about">About</a></li>
    </ul>

    <!-- Calendars -->
    <ul id="calendars" title="Calendars">
    </ul>
Questions?
        Chris Morrell
          http://cmorrell.com/
          @inxilpro
Resources
•   Safari Mobile Web Programming: http://bit.ly/4Fkdnp
•   Viewport Meta Element: http://www.w3.org/TR/2010/CR-
    mwabp-20100211/#bp-viewport
•   CSS3 Media Queries: http://www.w3.org/TR/css3-mediaqueries/
•   PhoneGap: http://phonegap.com/
•   Titanium Mobile: http://www.appcelerator.com/
•   Apple iPhone Dev Center: http://developer.apple.com/iphone/
•   W3C Geolocation API: http://dev.w3.org/geo/api/spec-
    source.html
•   Offline Storage & Caching: http://bit.ly/bvlVJ8
•   CSS3 Transitions: http://webkit.org/blog/138/css-animation/

Contenu connexe

Tendances

Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application DevelopmentTharindu Dassanayake
 
History Of The Development Of Mobile Applications
History Of The Development Of Mobile ApplicationsHistory Of The Development Of Mobile Applications
History Of The Development Of Mobile Applicationsemmaroberts477
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Androidguest213e237
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobiGnosis
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Sura Gonzalez
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppttirupathinews
 
Mobile app development
Mobile app developmentMobile app development
Mobile app developmentSanjay Kumar
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing StrategyankitQA
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorialLokesh Agrawal
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?MohammadHussain595488
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentBenny Skogberg
 

Tendances (20)

Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
History Of The Development Of Mobile Applications
History Of The Development Of Mobile ApplicationsHistory Of The Development Of Mobile Applications
History Of The Development Of Mobile Applications
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
 
Google Maps in Android
Google Maps in AndroidGoogle Maps in Android
Google Maps in Android
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
Mobile Application Development Process
Mobile Application Development ProcessMobile Application Development Process
Mobile Application Development Process
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Mobile App Testing
Mobile App TestingMobile App Testing
Mobile App Testing
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile apps
 
Mobile app development
Mobile app developmentMobile app development
Mobile app development
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 

En vedette

Mobile technologies in libraries matt borg - sheffield hallam
Mobile technologies in libraries   matt borg - sheffield hallamMobile technologies in libraries   matt borg - sheffield hallam
Mobile technologies in libraries matt borg - sheffield hallammattjborg
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5Akib B. Momin
 
Designing & Developing for the Future of Mobile
Designing & Developing for the Future of MobileDesigning & Developing for the Future of Mobile
Designing & Developing for the Future of MobileGarrett Murray
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기JungHyuk Kwon
 
Mobile Web Interface
Mobile Web InterfaceMobile Web Interface
Mobile Web InterfaceMrDys
 
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...DR SHASHWAT JANI
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Introduction to Computer Applications
Introduction to Computer ApplicationsIntroduction to Computer Applications
Introduction to Computer ApplicationsNajma Alam
 
Wipro Infrastructure Engineering Company Presentation - July, 2015
Wipro Infrastructure Engineering Company Presentation -  July, 2015Wipro Infrastructure Engineering Company Presentation -  July, 2015
Wipro Infrastructure Engineering Company Presentation - July, 2015Wipro Infrastructure Engineering
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Understand front end developer
Understand front end developerUnderstand front end developer
Understand front end developerHsuan Fu Lien
 
Dictionary to Cloud, Buzz and more EN>SE
Dictionary to Cloud, Buzz and more EN>SEDictionary to Cloud, Buzz and more EN>SE
Dictionary to Cloud, Buzz and more EN>SEMax Büchler
 
Front End Development in Magento
Front End Development in MagentoFront End Development in Magento
Front End Development in MagentoEric Landmann
 
Eng Semcon Brains Folder 2010
Eng Semcon Brains Folder 2010Eng Semcon Brains Folder 2010
Eng Semcon Brains Folder 2010NAYYAR RAHMAN
 
IoT Analytics company presentation
IoT Analytics company presentationIoT Analytics company presentation
IoT Analytics company presentationIoTAnalytics
 

En vedette (20)

Mobile technologies in libraries matt borg - sheffield hallam
Mobile technologies in libraries   matt borg - sheffield hallamMobile technologies in libraries   matt borg - sheffield hallam
Mobile technologies in libraries matt borg - sheffield hallam
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 
Designing & Developing for the Future of Mobile
Designing & Developing for the Future of MobileDesigning & Developing for the Future of Mobile
Designing & Developing for the Future of Mobile
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기
 
Mobile Web Interface
Mobile Web InterfaceMobile Web Interface
Mobile Web Interface
 
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...
Panel IUI by DR SHASHWAT JANI ( Optimizing Success in Intrauterine Inseminati...
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Introduction to Computer Applications
Introduction to Computer ApplicationsIntroduction to Computer Applications
Introduction to Computer Applications
 
HiQ v Linkedin
HiQ v LinkedinHiQ v Linkedin
HiQ v Linkedin
 
Wipro Infrastructure Engineering Company Presentation - July, 2015
Wipro Infrastructure Engineering Company Presentation -  July, 2015Wipro Infrastructure Engineering Company Presentation -  July, 2015
Wipro Infrastructure Engineering Company Presentation - July, 2015
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Mobile apps marketing
Mobile apps marketingMobile apps marketing
Mobile apps marketing
 
Understand front end developer
Understand front end developerUnderstand front end developer
Understand front end developer
 
Dictionary to Cloud, Buzz and more EN>SE
Dictionary to Cloud, Buzz and more EN>SEDictionary to Cloud, Buzz and more EN>SE
Dictionary to Cloud, Buzz and more EN>SE
 
Front End Development in Magento
Front End Development in MagentoFront End Development in Magento
Front End Development in Magento
 
Eng Semcon Brains Folder 2010
Eng Semcon Brains Folder 2010Eng Semcon Brains Folder 2010
Eng Semcon Brains Folder 2010
 
IoT Analytics company presentation
IoT Analytics company presentationIoT Analytics company presentation
IoT Analytics company presentation
 
Operating system
Operating system Operating system
Operating system
 
Module 2
Module 2Module 2
Module 2
 
Module 3
Module 3Module 3
Module 3
 

Similaire à Mobile App Development

The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developerbalunasj
 
Best Mobile App Development Services in India
Best Mobile App Development Services in IndiaBest Mobile App Development Services in India
Best Mobile App Development Services in IndiaSteve Verma
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevMihail Mateev
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development LandscapeAmbert Ho
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发Zhang Xiaoxue
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native codeJoakim Kemeny
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile WebMrJ1971
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High PerformanceAmjad Rafique
 
Mobile Web Apps Overview
Mobile Web Apps OverviewMobile Web Apps Overview
Mobile Web Apps OverviewRamon Victor
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicErmias Bayu
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentManesh Lad
 
CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM First Group
 

Similaire à Mobile App Development (20)

The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Best Mobile App Development Services in India
Best Mobile App Development Services in IndiaBest Mobile App Development Services in India
Best Mobile App Development Services in India
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Web app
Web appWeb app
Web app
 
Web app
Web appWeb app
Web app
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateev
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development Landscape
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile Web
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance
 
Mobile Web Apps Overview
Mobile Web Apps OverviewMobile Web Apps Overview
Mobile Web Apps Overview
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany
 
chapter2
chapter2chapter2
chapter2
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 

Dernier

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Mobile App Development

  • 1. Mobile App Development From a Web Developer’s Perspective
  • 2. Chris Morrell http://cmorrell.com/ @inxilpro Who the heck am I? And what gives me the right to act as though I know what I’m talking about?
  • 3.
  • 6. Today’s Mobile Technology • High-speed Internet • Edge/3G: 100 Kbps–1.5 Mbps • Wifi: 10+ Mbps • Significant processor speeds • Significant graphical capabilities • Touch interfaces
  • 8. Today’s Mobile Technology These guys use WebKit too! WebKit
  • 9. Web App vs. Native App
  • 10. Web App vs. Native App • Easy to develop • Don’t require approval • Maintained centrally • Not on App Store • Limitedto HTML/CSS/ JavaScript capabilities
  • 11. Web App vs. Native App • Better UI • Easy to develop • More powerful • Don’t require approval • More control • Maintained centrally • Access to GPU • Not on App Store • Costly to develop • Limited to HTML/CSS/ JavaScript capabilities • Requires approval
  • 12. Web App vs. Native App • Better UI • Easy to develop • More powerful • Don’t require approval • More control • Maintained centrally • Access to GPU • Not on App Store • Costly to develop • Limited to HTML/CSS/ JavaScript capabilities • Requires approval
  • 13. Web App ...vs. Mobile Website • Mobile & Smartphone Stylesheets • Viewport Definition • Optimized Graphics
  • 14. Technologies • Objective-C & Cocoa Touch (iPhone-only) • Java (Blackberry, Android, Symbian) • Palm Mojo [HTML5, JS, CSS + Dojo-based framework] (Palm-only) • Visual C#/Visual Basic/.NET (Windows Mobile-only) • C++ (Symbian, Windows Mobile) • HTML5, JavaScript and CSS • PhoneGap • Titanium Mobile • Rhomobile Cross-platform w/ single API
  • 15. Technologies • Objective-C & Cocoa Touch (iPhone-only) • Java (Blackberry, Android, Symbian) • Palm Mojo [HTML5, JS, CSS + Dojo-based framework] (Palm-only) • Visual C#/Visual Basic/.NET (Windows Mobile-only) • C++ (Symbian, Windows Mobile) • HTML5, JavaScript and CSS • PhoneGap • Titanium Mobile • Rhomobile Cross-platform w/ single API
  • 17. HTML5, JavaScript & CSS The basics • CSS2 “Handheld” Media Stylesheets • CSS3 Media Queries • Apple* Viewport * Supported by several browsers, including mobile Firefox
  • 18. HTML5, JavaScript & CSS Advanced • HTML5 Offline Caching • HTML5 SQLite-compatible Offline Storage • CSS3 CSS Animations • W3C API Geolocation • HTML5 Canvas
  • 19. * Mobile JS/CSS Frameworks IUI jQTouch (Older) iPhone UI clone jQuery plugin for iPhone UI http://code.google.com/p/iui/ http://www.jqtouch.com/ XUI Safire Mobile-focused framework iPhone UI clone http://xuijs.com/ http://code.google.com/p/safire/ CiUI iWebKit CNET’s iPhone UI clone Extensive iPhone UI clone http://bit.ly/5p4tMY http://iwebkit.net/ UiUIKit WebApp.Net CSS-only iPhone UI clone iPhone UI clone + framework http://bit.ly/7Qtnhx http://webapp-net.com/ Magic Framework Dashcode iPhone UI clone Apple’s Dashboard Toolkit http://bit.ly/6zJ4eK http://bit.ly/7sntmM Not an exhaustive list *
  • 21. PhoneGap • WebKit-wrapper application • Consistent APIs for device functions • Geolocation • Vibration • Accelerometer • Etc • Supports many devices
  • 22. PhoneGap Device Support iPhone Android Blackberry Windows Symbian Palm Maemo Geo Location Vibration Accelerometer Sound Contacs Data from Jan 22, 2010 Unknown or experimental
  • 24. Titanium Mobile • Accelerometer • Database • Filesystem + • Geolocation Native UI Components • Mapping • Media • Networking
  • 25. Titanium 0.9/1.0 • iPad & Blackberry • New APIs support • Less • Animation reliance on web views (slow) • Streaming Audio • Dynamic APIs • Proximity Sensor • More extensible • Low-level Graphics • 5x+ performance • Network Streaming increases
  • 26. PhoneGap vs. Titanium • Easier to start • Mobile& desktop • Supports more platforms • Native UI • Poor documentation Both fully open source!
  • 27. PhoneGap vs. Titanium Both HTML Faux-Native True Native
  • 28. PhoneGap Use When: • Using just web technologies • Targeting many devices Titanium Use When: • Need native UI/functionality • Targeting iPhone & Android
  • 30. Objective C/Cocoa Touch • 100% Native Application • Full native performance • Access to entire iPhone SDK & UI Components • Interface Builder • iPhone/iPad-only • Mac development-only* * No matter what you need a Mac to compile for iPhone
  • 31. DEMO
  • 32. ! HTML5 Offline Caching CACHE MANIFEST # version 1.0 index.html ! application.js theme.css sprites.png Ack! Code Ahead NETWORK: /api FALLBACK: /images/avatars/ /images/default-avatar.png
  • 33. ! Ack! Code Ahea d HTML5 Offline Caching CACHE MANIFEST # version 1.0 index.html application.js theme.css sprites.png NETWORK: /api FALLBACK: /images/avatars/ /images/default-avatar.png
  • 34. ! Mobile Stylesheets <!-- Main Stylesheet --> <link type="text/css" rel="stylesheet" href="screen.css" media="screen"> <!-- Smartphone Stylesheet--> <link type="text/css" rel="stylesheet" href="smartphone.css" media="only screen and (max-device-width: 480px)"> <!-- Handheld Stylesheet --> <link type="text/css" rel="stylesheet" href="handheld.css" media="handheld"> • To account for Windows Mobile, conditional comments are required (not shown).
  • 35. ! Mobile Stylesheets <!-- Main Stylesheet --> <link type="text/css" rel="stylesheet" href="screen.css" media="screen"> <!-- Smartphone Stylesheet--> <link type="text/css" rel="stylesheet" href="smartphone.css" media="only screen and (max-device-width: 480px)"> <!-- Handheld Stylesheet --> <link type="text/css" rel="stylesheet" href="handheld.css" media="handheld"> • To account for Windows Mobile, conditional comments are required (not shown).
  • 36. ! Mobile Stylesheets <!-- Main Stylesheet --> <link type="text/css" rel="stylesheet" href="screen.css" media="screen"> <!-- Smartphone Stylesheet--> <link type="text/css" rel="stylesheet" href="smartphone.css" media="only screen and (max-device-width: 480px)"> <!-- Handheld Stylesheet --> <link type="text/css" rel="stylesheet" href="handheld.css" media="handheld"> • To account for Windows Mobile, conditional comments are required (not shown).
  • 37. ! Mobile Stylesheets <!-- Main Stylesheet --> <link type="text/css" rel="stylesheet" href="screen.css" media="screen"> <!-- Smartphone Stylesheet--> <link type="text/css" rel="stylesheet" href="smartphone.css" media="only screen and (max-device-width: 480px)"> <!-- Handheld Stylesheet --> <link type="text/css" rel="stylesheet" href="handheld.css" media="handheld"> • To account for Windows Mobile, conditional comments are required (not shown).
  • 38. ! Viewport Scaling <meta name="viewport" content= "width=320, initial-scale=2.3, user-scalable=no" /> • width • height Tip: • initial-scale When setting the width/height you can use “device-width” and • minimum-scale “device-height” to match the size of the user’s device. • maximum-scale • user-scalable
  • 39. ! HTML5 SQLite Storage 1 var db = openDatabase("Demo", "1.0"); 2 if (db) { 3 db.transaction(function(tx) { 4 tx.executeSql("SELECT * FROM demo", [], function(result) { 5 // “result” contains all rows in “demo” table 6 }, function(tx, error) { 7 var sql = "CREATE TABLE demo (id INTEGER, demo TEXT)"; 8 tx.executeSql(sql, [], function(result) { 9 // database created, now do something 10 }); 11 }); 12 }); 13 } else { 14 alert("Unable to open database!"); 15 } Ack!
  • 40. ! CSS3 Transitions div { opacity: 1; -webkit-transition-property: opacity; -webkit-transition-duration: 1s; -webkit-transition-timing-function: ease-in-out; } div:hover { opacity: 0; } • Properties: none, all, <property> • Timing: ease, ease-in, ease-out, ease-in-out, cubic-bezier(x1, y1, x2, y2)
  • 41. ! Geolocation API var options = { maximumAge: 60000 }; function gotPosition(p) { var lat = p.coords.latitude; var lon = p.coords.longitude; } function positionError(e) { var code = e.code; } navigator.geolocation.getCurrentPosition(gotPosition, positionError, options);
  • 42. ! Geolocation API var options = { maximumAge: 60000 }; function gotPosition(p) { var lat = p.coords.latitude; var lon = p.coords.longitude; } function positionError(e) { var code = e.code; } navigator.geolocation.getCurrentPosition(gotPosition, positionError, options);
  • 43. ! Geolocation API var options = { maximumAge: 60000 }; function gotPosition(p) { var lat = p.coords.latitude; var lon = p.coords.longitude; } function positionError(e) { var code = e.code; } navigator.geolocation.getCurrentPosition(gotPosition, positionError, options);
  • 44. ! Geolocation API var options = { maximumAge: 60000 }; function gotPosition(p) { var lat = p.coords.latitude; var lon = p.coords.longitude; } function positionError(e) { var code = e.code; } navigator.geolocation.getCurrentPosition(gotPosition, positionError, options);
  • 45. ! Geolocation API var options = { maximumAge: 60000 }; function gotPosition(p) { var lat = p.coords.latitude; var lon = p.coords.longitude; } function positionError(e) { var code = e.code; } navigator.geolocation.getCurrentPosition(gotPosition, positionError, options);
  • 46. ! Phone-Specific Tags • apple-mobile-web-app-capable (yes/no) • apple-mobile-web-app-status-bar-style (default, black, black-translucent) • format-detection (telephone=no)
  • 48. ! IUI Code Example <!-- Toolbar --> <div class="toolbar"> <h1 id="pageTitle"></h1> <a id="backButton" class="button" href="#"></a> </div> <!-- Main Menu --> <ul id="home" title="Home" selected="true"> <li><a href="#calendars">Calendars</a></li> <li><a href="#blogs">Blogs</a></li> <li><a href="#mailinglists">Mailing Lists</a></li> <li><a href="/iphone/about">About</a></li> </ul> <!-- Calendars --> <ul id="calendars" title="Calendars"> </ul>
  • 49. ! IUI Code Example <!-- Toolbar --> <div class="toolbar"> <h1 id="pageTitle"></h1> <a id="backButton" class="button" href="#"></a> </div> <!-- Main Menu --> <ul id="home" title="Home" selected="true"> <li><a href="#calendars">Calendars</a></li> <li><a href="#blogs">Blogs</a></li> <li><a href="#mailinglists">Mailing Lists</a></li> <li><a href="/iphone/about">About</a></li> </ul> <!-- Calendars --> <ul id="calendars" title="Calendars"> </ul>
  • 50. ! IUI Code Example <!-- Toolbar --> <div class="toolbar"> <h1 id="pageTitle"></h1> <a id="backButton" class="button" href="#"></a> </div> <!-- Main Menu --> <ul id="home" title="Home" selected="true"> <li><a href="#calendars">Calendars</a></li> <li><a href="#blogs">Blogs</a></li> <li><a href="#mailinglists">Mailing Lists</a></li> <li><a href="/iphone/about">About</a></li> </ul> <!-- Calendars --> <ul id="calendars" title="Calendars"> </ul>
  • 51. ! IUI Code Example <!-- Toolbar --> <div class="toolbar"> <h1 id="pageTitle"></h1> <a id="backButton" class="button" href="#"></a> </div> <!-- Main Menu --> <ul id="home" title="Home" selected="true"> <li><a href="#calendars">Calendars</a></li> <li><a href="#blogs">Blogs</a></li> <li><a href="#mailinglists">Mailing Lists</a></li> <li><a href="/iphone/about">About</a></li> </ul> <!-- Calendars --> <ul id="calendars" title="Calendars"> </ul>
  • 52. Questions? Chris Morrell http://cmorrell.com/ @inxilpro
  • 53. Resources • Safari Mobile Web Programming: http://bit.ly/4Fkdnp • Viewport Meta Element: http://www.w3.org/TR/2010/CR- mwabp-20100211/#bp-viewport • CSS3 Media Queries: http://www.w3.org/TR/css3-mediaqueries/ • PhoneGap: http://phonegap.com/ • Titanium Mobile: http://www.appcelerator.com/ • Apple iPhone Dev Center: http://developer.apple.com/iphone/ • W3C Geolocation API: http://dev.w3.org/geo/api/spec- source.html • Offline Storage & Caching: http://bit.ly/bvlVJ8 • CSS3 Transitions: http://webkit.org/blog/138/css-animation/