SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile appsMVM Infotech Co. Ltd.
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentjini james
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Mobile Application Development Services-MobileApptelligence
Mobile Application Development Services-MobileApptelligenceMobile Application Development Services-MobileApptelligence
Mobile Application Development Services-MobileApptelligenceMobileapptelligence
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application DevelopmentTharindu Dassanayake
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application DevelopmentSyed Absar
 
Mobile Development Overview
Mobile Development OverviewMobile Development Overview
Mobile Development OverviewShawn Grimes
 
New Mobile App Development PowerPoint Presentation Slides
New Mobile App Development PowerPoint Presentation Slides New Mobile App Development PowerPoint Presentation Slides
New Mobile App Development PowerPoint Presentation Slides SlideTeam
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPTDhivya T
 
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
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Mobile phone applications
Mobile phone applicationsMobile phone applications
Mobile phone applicationsNazish khalid
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile appsvodQA
 
Firebase - Dynamic Links
Firebase - Dynamic LinksFirebase - Dynamic Links
Firebase - Dynamic LinksFilipe Nunes
 
Mobile operating system by Shabeeb
Mobile operating system by ShabeebMobile operating system by Shabeeb
Mobile operating system by ShabeebShabeeb Shabi
 
History of mobile apps
History of mobile apps History of mobile apps
History of mobile apps Swathi Young
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my collegeSneha Lata
 
Introduction to iOS Apps Development
Introduction to iOS Apps DevelopmentIntroduction to iOS Apps Development
Introduction to iOS Apps DevelopmentProf. Erwin Globio
 

Was ist angesagt? (20)

Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile apps
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Mobile Application Development Services-MobileApptelligence
Mobile Application Development Services-MobileApptelligenceMobile Application Development Services-MobileApptelligence
Mobile Application Development Services-MobileApptelligence
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
Mobile Development Overview
Mobile Development OverviewMobile Development Overview
Mobile Development Overview
 
New Mobile App Development PowerPoint Presentation Slides
New Mobile App Development PowerPoint Presentation Slides New Mobile App Development PowerPoint Presentation Slides
New Mobile App Development PowerPoint Presentation Slides
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Mobile App Testing
Mobile App TestingMobile App Testing
Mobile App Testing
 
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
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Mobile phone applications
Mobile phone applicationsMobile phone applications
Mobile phone applications
 
Importance of mobile apps
Importance of mobile appsImportance of mobile apps
Importance of mobile apps
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile apps
 
Firebase - Dynamic Links
Firebase - Dynamic LinksFirebase - Dynamic Links
Firebase - Dynamic Links
 
Mobile operating system by Shabeeb
Mobile operating system by ShabeebMobile operating system by Shabeeb
Mobile operating system by Shabeeb
 
History of mobile apps
History of mobile apps History of mobile apps
History of mobile apps
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my college
 
Introduction to iOS Apps Development
Introduction to iOS Apps DevelopmentIntroduction to iOS Apps Development
Introduction to iOS Apps Development
 

Andere mochten auch

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
 
Introduction to Computer Applications
Introduction to Computer ApplicationsIntroduction to Computer Applications
Introduction to Computer ApplicationsNajma Alam
 
HiQ v Linkedin
HiQ v LinkedinHiQ v Linkedin
HiQ v LinkedinMatt Charney
 
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
 
Operating system
Operating system Operating system
Operating system Talha Mahmood
 

Andere mochten auch (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...
 
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
 
Module1
Module1Module1
Module1
 

Ă„hnlich wie 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
 
chapter2
chapter2chapter2
chapter2Pon Tovave
 

Ă„hnlich wie 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
 

KĂĽrzlich hochgeladen

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 

KĂĽrzlich hochgeladen (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 

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/