SlideShare a Scribd company logo
1 of 79
HTML5, PhoneGap
    and what’s next
web site
name




ben@mobz.org
       twitter / github



            email
bbirch@aconex.com
    Senior UI Engineer / Beer Baron
Mobile App Development
The Problem
   Apple             iOS             Objective-C

HTC, Samsung
                   Android                Java
  Others

    RIM         Blackberry OS 4           Java


   Several       WinPhone 7       VB.NET / Silverlight


   Nokia           Symbian          C++ Java Flash?


    Palm            webOS              Javascript
The Soap Opera
   Apple              iOS             Objective-C

 Motorola
                    Android                Java
 Lots More

    RIM         Blackberry OS 5+         C++ ?


Nokia, Others    WinMobile7.5      VB.NET / Silverlight


      ?             Symbian          C++ Java Flash?


     HP             webOS               Javascript
The Soap Opera
   Apple              iOS             Objective-C

 Motorola
                    Android                Java
 Lots More

    RIM         Blackberry OS 5+         C++ ?


Nokia, Others    WinMobile7.5      VB.NET / Silverlight


      ?             Symbian          C++ Java Flash?


     HP             webOS               Javascript
Web vs Native
                             Web          Native

      Dev Cost             Reasonable    Expensive

      Dev Time               Short         Long

   App Portability           High         None

    Performance               Fast       Very Fast

 Native Functionality         No            All

App Store Distribution        No           Yes

      Extensible              No           Yes
Web vs Hybrid vs Native
                           Web         Hybrid       Native

      Dev Cost           Reasonable   Reasonable   Expensive

      Dev Time             Short        Short        Long

   App Portability         High         High        None

    Performance             Fast         Fast      Very Fast

 Native Functionality       No           Yes          All

App Store Distribution      No           Yes         Yes

      Extensible            No           Yes         Yes
The Promise
Write Once, Run Anywhere
Native Goodies & App Store
but first...
        A Bit of History
Some dudes from Canada
Some dudes from Canada


•   2008
Some dudes from Canada


•   2008

•   iPhoneDevCamp
Some dudes from Canada


•   2008

•   iPhoneDevCamp

•   Working prototype with geolocation
Some dudes from Canada


•   2008

•   iPhoneDevCamp

•   Working prototype with geolocation

•   Hangover (probably)
•   2008 - iPhone, Android and Blackberry 4
•   2008 - iPhone, Android and Blackberry 4

•   2009 - Symbian, webOS
•   2008 - iPhone, Android and Blackberry 4

•   2009 - Symbian, webOS

    •   ‘Rejected’ by Apple
•   2010

•   Serious Business
•   Improves consistency of API and implementations across devices

•   Improves test coverage and documentation
•   1.0 released
•   1.0 released
•   2011

•   WTF Adode?!

•   Apache Incubator Project
How it actually works
How it actually works
    Web Tech   Not Web Tech
How it actually works
             Web Tech   Not Web Tech




Native Web
 Control
How it actually works
             Web Tech         Not Web Tech




Native Web
 Control                FFI
How it actually works
             Web Tech         Not Web Tech

                                     Common Plugins
                                     Accelerometer
                                     Camera
                                     Capture
                                     Connection
                                     Contacts
Native Web                           File
                                     Geolocation

 Control                FFI          Notification
                                     Storage ...

                                     Custom Plugins
                                     Badge
                                     Barcode Scanner
                                     Bluetooth
                                     InAppPurchaseManager...
The Native Web Control
         Basically just a browser...
The Native Web Control
         Basically just a browser...

         with all the chrome removed
The Native Web Control
         Basically just a browser...

         with all the chrome removed

         even the top bar
The Native Web Control
         Basically just a browser...

         with all the chrome removed

         even the top bar

         does everything a browser does
Uses Platforms Native Control

    iOS          Android    Blackberry    webOS          Symbian




  WebKit
  532.9          WebKit                   WebKit         WebKit
                             WebKit
   WebCore        with V8                with Piranah   S60 or Qt?
JavascriptCore
Uses Platforms Native Control

    iOS          Android    Blackberry    webOS          Symbian     WinPhone 7.0




  WebKit
  532.9          WebKit                   WebKit         WebKit
                  with V8
                             WebKit      with Piranah   S60 or Qt?
                                                                         IE 7
   WebCore
JavascriptCore
Uses Platforms Native Control

    iOS          Android    Blackberry    webOS          Symbian     WinPhone 7.5




  WebKit
  532.9          WebKit                   WebKit         WebKit
                  with V8
                             WebKit      with Piranah   S60 or Qt?
                                                                         IE 9
   WebCore
JavascriptCore
Uses Platforms Native Control

    iOS          Android    Blackberry    webOS          Symbian     WinPhone 7.5




  WebKit
  532.9          WebKit                   WebKit         WebKit
                  with V8
                             WebKit      with Piranah   S60 or Qt?
                                                                         IE 9
   WebCore
JavascriptCore
How it actually works
             Web Tech         Not Web Tech

                                     Common Plugins
                                     Accelerometer
                                     Camera
                                     Capture
                                     Connection
                                     Contacts
Native Web                           File
                                     Geolocation

 Control                FFI          Notification
                                     Storage ...

                                     Custom Plugins
                                     Badge
                                     Barcode Scanner
                                     Bluetooth
                                     InAppPurchaseManager...
What the FFI?


•   Foreign Function Interface

•   aka, the Bridge

•   aka the Mighty Hack
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );


•   PhoneGap.exec( onSuccess, onError,
    "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );


•   PhoneGap.exec( onSuccess, onError,
    "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );


•   gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );


•   PhoneGap.exec( onSuccess, onError,
    "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );


•   gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D


•   <iframe src=”gap://...” style=”display: none”></iframe>
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );


•   PhoneGap.exec( onSuccess, onError,
    "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );


•   gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D


•   <iframe src=”gap://...” style=”display: none”></iframe>




•   PhoneGap.callbackSuccess( 123, { message: “file://.../tmp/1.jpg” } )
•   navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );


•   PhoneGap.exec( onSuccess, onError,
    "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );


•   gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D


•   <iframe src=”gap://...” style=”display: none”></iframe>




•   PhoneGap.callbackSuccess( 123, { message: “file://.../tmp/1.jpg” } )


•   onSuccess( “file://.../tmp/1.jpg” )
The Two Commandments


•   bring unto me your data,
      as long as it can be stringified


•   Let no API method exist unless it doth
    require a callback
How it actually works
             Web Tech         Not Web Tech

                                     Common Plugins
                                     Accelerometer
                                     Camera
                                     Capture
                                     Connection
                                     Contacts
Native Web                           File
                                     Geolocation

 Control                FFI          Notification
                                     Storage ...

                                     Custom Plugins
                                     Badge
                                     Barcode Scanner
                                     Bluetooth
                                     InAppPurchaseManager...
Accessing Native APIs
        PhoneGap Web App                           Mobile OS     Hardware

                                                    Native API    Sensors
Web App                PhoneGap Plugins                           Graphics
               FFI                        OS API                  Network
Javascript
  DOM
   CSS
Resources
                       Native Web View
             Browser                      OS API
Aside: The ‘Gap’
        PhoneGap Web App                           Mobile OS     Hardware

                                                    Native API    Sensors
Web App                PhoneGap Plugins                           Graphics
         The ‘Gap’
              FFI                         OS API                  Network
Javascript
  DOM
   CSS
Resources
                       Native Web View
             Browser                      OS API
Aside: The ‘Gap’
                                          Mobile OS     Hardware

                                           Native API    Sensors
Web App                Browser                           Graphics
                                                         Network
Javascript
  DOM
             Browser             OS API
   CSS
Resources
Aside: The ‘Gap’
                                                         Mobile OS      Hardware

                                                           Native API    Sensors
Web App        “The         Browsergoal
                           secondof PhoneGap is                          Graphics
                                                                         Network
Javascript     for the project to cease to exist”
  DOM
             Browser                               OS API
   CSS                 • Use W3C Published standards where available
Resources              • Provide a reference implementation
Plugins
•   All API features are plugins

•   Common Plugins

     •   Good support across platforms

•   Custom Plugins

     •   Terrible support across platforms

     •   Make your own!
W3C Compatible          Spec Status
Accelerometer        No               Working Draft
   Camera          Complex
  Capture            Yes              Working Draft
  Compass            No               Working Draft
 Connection         Almost            Working Draft
  Contacts           Yes                 Last Call
   Device
   Events
     File            Yes              Working Draft
 Geolocation         Yes         Candidate Recommendation
   Media             No                  Last Call
 Notification         No               Working Draft
   Storage           Yes             Last Call / Retired
iOS   Android   BlackBerry WinPhone    Bada     Symbian    webOS
 Acceler      Yes     Yes        5.0                  Yes       Yes        Yes
 Camera       Yes     Yes        5.0       Yes        Yes       Yes        Yes
 Capture      Yes     Yes        5.0       Yes
 Compass      Yes     Yes                  Yes        Yes       Yes        Yes
Connection    Yes     Yes        5.0       Yes                  Yes        Yes
 Contacts     Yes     Yes        5.0                  Yes                  Yes
  Device      Yes     Yes        5.0       Yes        Yes       Yes        Yes
  Events      Yes     Yes        5.0     Minimal    Minimal     Yes      Minimal
   File       Yes     Yes        5.0       Yes                             Yes
   Geo        Yes     Yes        4.6       Yes        Yes       Yes        Yes
  Media       Yes     Yes                  Yes                Non Spec
Notification   Yes     Yes        4.6       Yes        Yes       Yes        Yes
  Storage     Yes     Yes        6.0                            Yes        Yes
Audio/Video
Sensors
Notification
Connection
Custom Plugins
•   Application Preferences

•   Barcode Scanner

•   Clipboard

•   InAppPurchaseManager

•   Keychain

•   NativeControl

•   Bluetooth
PhoneGap Demo
Debugging -
  weinre
PhoneGap Roadmap

•   1.x ( 2011)

    •   performance, ease of use improvements

    •   further w3c spec compliance

• 2.x ( 2012 )
  • Calendar, Messaging, Bluetooth, Audio/Video
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
Improved Device Support
web site
name




ben@mobz.org
       twitter / github



            email

More Related Content

What's hot

Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapAjax Experience 2009
 
Ibm i-modernization
Ibm i-modernizationIbm i-modernization
Ibm i-modernizationTom Presotto
 
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Taras Filatov
 
Droid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroidcon Berlin
 
Cisco Presentation jabber update
Cisco Presentation   jabber updateCisco Presentation   jabber update
Cisco Presentation jabber updatesolarisyougood
 
Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client updateVitor Costa
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 
Jabber integration with SAP
Jabber integration with SAPJabber integration with SAP
Jabber integration with SAPJabborate
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationMuhammad Hakim A
 
Belgacom presentatie portal roundtable 27 september 2012
Belgacom presentatie portal roundtable 27 september 2012Belgacom presentatie portal roundtable 27 september 2012
Belgacom presentatie portal roundtable 27 september 2012MooijBert
 
Accessing Native APIs from Touch
Accessing Native APIs from TouchAccessing Native APIs from Touch
Accessing Native APIs from TouchSencha
 
S60 Web Runtime - Web2.0 Expo Europe 2008
S60 Web Runtime - Web2.0 Expo Europe 2008S60 Web Runtime - Web2.0 Expo Europe 2008
S60 Web Runtime - Web2.0 Expo Europe 2008petrosoininen
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 

What's hot (15)

Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone Gap
 
Mobile stategy
Mobile stategyMobile stategy
Mobile stategy
 
Ibm i-modernization
Ibm i-modernizationIbm i-modernization
Ibm i-modernization
 
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
 
Droid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtime
 
Cisco Presentation jabber update
Cisco Presentation   jabber updateCisco Presentation   jabber update
Cisco Presentation jabber update
 
Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client update
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Jabber integration with SAP
Jabber integration with SAPJabber integration with SAP
Jabber integration with SAP
 
Phonegap/Cordova vs Native Application
Phonegap/Cordova vs Native ApplicationPhonegap/Cordova vs Native Application
Phonegap/Cordova vs Native Application
 
Belgacom presentatie portal roundtable 27 september 2012
Belgacom presentatie portal roundtable 27 september 2012Belgacom presentatie portal roundtable 27 september 2012
Belgacom presentatie portal roundtable 27 september 2012
 
Web works presso
Web works pressoWeb works presso
Web works presso
 
Accessing Native APIs from Touch
Accessing Native APIs from TouchAccessing Native APIs from Touch
Accessing Native APIs from Touch
 
S60 Web Runtime - Web2.0 Expo Europe 2008
S60 Web Runtime - Web2.0 Expo Europe 2008S60 Web Runtime - Web2.0 Expo Europe 2008
S60 Web Runtime - Web2.0 Expo Europe 2008
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 

Viewers also liked

2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology
2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology
2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web TechnologyYiJu Tseng
 
Aflateen junio 2013 español
Aflateen junio 2013 españolAflateen junio 2013 español
Aflateen junio 2013 españolLisbeth Rodriguez
 
Revisão final de biologia Enem 2015
Revisão final de biologia Enem 2015Revisão final de biologia Enem 2015
Revisão final de biologia Enem 2015Anderson Bento Matias
 
Ley de la_economia_popular_y_solidaria_ecuador
Ley de la_economia_popular_y_solidaria_ecuadorLey de la_economia_popular_y_solidaria_ecuador
Ley de la_economia_popular_y_solidaria_ecuadorLisbeth Rodriguez
 
Freshmen homeroom attendance
Freshmen homeroom attendanceFreshmen homeroom attendance
Freshmen homeroom attendance87654322
 
Architecture schools and colleges in delhi and ncr adit
Architecture schools and colleges in delhi and ncr aditArchitecture schools and colleges in delhi and ncr adit
Architecture schools and colleges in delhi and ncr aditAditya Kamal
 
Técnicas de comunicación
Técnicas de comunicaciónTécnicas de comunicación
Técnicas de comunicaciónJAZESCA
 
Data Types and Processing in ES6
Data Types and Processing in ES6Data Types and Processing in ES6
Data Types and Processing in ES6m0bz
 
Gef pr-0022 plan de contingencia
Gef pr-0022 plan de contingenciaGef pr-0022 plan de contingencia
Gef pr-0022 plan de contingenciaAlvaro Fachin Ríos
 
Sure shot NATA guess papers
Sure shot  NATA  guess papersSure shot  NATA  guess papers
Sure shot NATA guess papersAditya Kamal
 
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...YiJu Tseng
 

Viewers also liked (14)

2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology
2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology
2nd AMA-IEEE Describing Electronic Medical Record by Semantic Web Technology
 
Aflateen junio 2013 español
Aflateen junio 2013 españolAflateen junio 2013 español
Aflateen junio 2013 español
 
Jack Aziz
Jack AzizJack Aziz
Jack Aziz
 
Revisão final de biologia Enem 2015
Revisão final de biologia Enem 2015Revisão final de biologia Enem 2015
Revisão final de biologia Enem 2015
 
Ley de la_economia_popular_y_solidaria_ecuador
Ley de la_economia_popular_y_solidaria_ecuadorLey de la_economia_popular_y_solidaria_ecuador
Ley de la_economia_popular_y_solidaria_ecuador
 
Freshmen homeroom attendance
Freshmen homeroom attendanceFreshmen homeroom attendance
Freshmen homeroom attendance
 
Architecture schools and colleges in delhi and ncr adit
Architecture schools and colleges in delhi and ncr aditArchitecture schools and colleges in delhi and ncr adit
Architecture schools and colleges in delhi and ncr adit
 
Memoria de cã lculo cuvierta
Memoria de cã lculo cuviertaMemoria de cã lculo cuvierta
Memoria de cã lculo cuvierta
 
Técnicas de comunicación
Técnicas de comunicaciónTécnicas de comunicación
Técnicas de comunicación
 
Data Types and Processing in ES6
Data Types and Processing in ES6Data Types and Processing in ES6
Data Types and Processing in ES6
 
Gef pr-0022 plan de contingencia
Gef pr-0022 plan de contingenciaGef pr-0022 plan de contingencia
Gef pr-0022 plan de contingencia
 
Inmunodeficiencia
InmunodeficienciaInmunodeficiencia
Inmunodeficiencia
 
Sure shot NATA guess papers
Sure shot  NATA  guess papersSure shot  NATA  guess papers
Sure shot NATA guess papers
 
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...
Diagnostic Journeys of Patients Evaluated for Lyme Disease and Given Extended...
 

Similar to HTML5, PhoneGap and What's Next

HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile WebMrJ1971
 
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10psiborg
 
Best practices for delivering quality web experiences
Best practices for delivering quality web experiencesBest practices for delivering quality web experiences
Best practices for delivering quality web experiencesBen Mantooth
 
Introduction to Phonegap
Introduction to PhonegapIntroduction to Phonegap
Introduction to PhonegapAndrei Firoiu
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07Enough Software
 
Developing Downloadable Mobile Apps Using HTML5 and PhoneGap
Developing Downloadable Mobile Apps Using HTML5 and PhoneGapDeveloping Downloadable Mobile Apps Using HTML5 and PhoneGap
Developing Downloadable Mobile Apps Using HTML5 and PhoneGapWorklight
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser worldPeter-Paul Koch
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Federico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothFederico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothIxDA_Poznan
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
HTML5 for Mobile - When and Why
HTML5 for Mobile - When and WhyHTML5 for Mobile - When and Why
HTML5 for Mobile - When and WhyDMI
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
 

Similar to HTML5, PhoneGap and What's Next (20)

Unify - JSConf.EU 2010
Unify - JSConf.EU 2010Unify - JSConf.EU 2010
Unify - JSConf.EU 2010
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile Web
 
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
 
Best practices for delivering quality web experiences
Best practices for delivering quality web experiencesBest practices for delivering quality web experiences
Best practices for delivering quality web experiences
 
Introduction to Phonegap
Introduction to PhonegapIntroduction to Phonegap
Introduction to Phonegap
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Developing Downloadable Mobile Apps Using HTML5 and PhoneGap
Developing Downloadable Mobile Apps Using HTML5 and PhoneGapDeveloping Downloadable Mobile Apps Using HTML5 and PhoneGap
Developing Downloadable Mobile Apps Using HTML5 and PhoneGap
 
Webapi
WebapiWebapi
Webapi
 
Mobile Lean UX
Mobile Lean UXMobile Lean UX
Mobile Lean UX
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser world
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Federico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothFederico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native both
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
HTML5 for Mobile - When and Why
HTML5 for Mobile - When and WhyHTML5 for Mobile - When and Why
HTML5 for Mobile - When and Why
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
 

Recently uploaded

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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

HTML5, PhoneGap and What's Next

  • 1. HTML5, PhoneGap and what’s next
  • 2. web site name ben@mobz.org twitter / github email
  • 3. bbirch@aconex.com Senior UI Engineer / Beer Baron
  • 5. The Problem Apple iOS Objective-C HTC, Samsung Android Java Others RIM Blackberry OS 4 Java Several WinPhone 7 VB.NET / Silverlight Nokia Symbian C++ Java Flash? Palm webOS Javascript
  • 6. The Soap Opera Apple iOS Objective-C Motorola Android Java Lots More RIM Blackberry OS 5+ C++ ? Nokia, Others WinMobile7.5 VB.NET / Silverlight ? Symbian C++ Java Flash? HP webOS Javascript
  • 7. The Soap Opera Apple iOS Objective-C Motorola Android Java Lots More RIM Blackberry OS 5+ C++ ? Nokia, Others WinMobile7.5 VB.NET / Silverlight ? Symbian C++ Java Flash? HP webOS Javascript
  • 8.
  • 9. Web vs Native Web Native Dev Cost Reasonable Expensive Dev Time Short Long App Portability High None Performance Fast Very Fast Native Functionality No All App Store Distribution No Yes Extensible No Yes
  • 10. Web vs Hybrid vs Native Web Hybrid Native Dev Cost Reasonable Reasonable Expensive Dev Time Short Short Long App Portability High High None Performance Fast Fast Very Fast Native Functionality No Yes All App Store Distribution No Yes Yes Extensible No Yes Yes
  • 12. Write Once, Run Anywhere Native Goodies & App Store
  • 13. but first... A Bit of History
  • 14. Some dudes from Canada
  • 15. Some dudes from Canada • 2008
  • 16. Some dudes from Canada • 2008 • iPhoneDevCamp
  • 17. Some dudes from Canada • 2008 • iPhoneDevCamp • Working prototype with geolocation
  • 18. Some dudes from Canada • 2008 • iPhoneDevCamp • Working prototype with geolocation • Hangover (probably)
  • 19.
  • 20. 2008 - iPhone, Android and Blackberry 4
  • 21. 2008 - iPhone, Android and Blackberry 4 • 2009 - Symbian, webOS
  • 22. 2008 - iPhone, Android and Blackberry 4 • 2009 - Symbian, webOS • ‘Rejected’ by Apple
  • 23. 2010 • Serious Business
  • 24. Improves consistency of API and implementations across devices • Improves test coverage and documentation
  • 25. 1.0 released
  • 26. 1.0 released
  • 27. 2011 • WTF Adode?! • Apache Incubator Project
  • 28.
  • 30. How it actually works Web Tech Not Web Tech
  • 31. How it actually works Web Tech Not Web Tech Native Web Control
  • 32. How it actually works Web Tech Not Web Tech Native Web Control FFI
  • 33. How it actually works Web Tech Not Web Tech Common Plugins Accelerometer Camera Capture Connection Contacts Native Web File Geolocation Control FFI Notification Storage ... Custom Plugins Badge Barcode Scanner Bluetooth InAppPurchaseManager...
  • 34. The Native Web Control Basically just a browser...
  • 35. The Native Web Control Basically just a browser... with all the chrome removed
  • 36. The Native Web Control Basically just a browser... with all the chrome removed even the top bar
  • 37. The Native Web Control Basically just a browser... with all the chrome removed even the top bar does everything a browser does
  • 38. Uses Platforms Native Control iOS Android Blackberry webOS Symbian WebKit 532.9 WebKit WebKit WebKit WebKit WebCore with V8 with Piranah S60 or Qt? JavascriptCore
  • 39. Uses Platforms Native Control iOS Android Blackberry webOS Symbian WinPhone 7.0 WebKit 532.9 WebKit WebKit WebKit with V8 WebKit with Piranah S60 or Qt? IE 7 WebCore JavascriptCore
  • 40. Uses Platforms Native Control iOS Android Blackberry webOS Symbian WinPhone 7.5 WebKit 532.9 WebKit WebKit WebKit with V8 WebKit with Piranah S60 or Qt? IE 9 WebCore JavascriptCore
  • 41. Uses Platforms Native Control iOS Android Blackberry webOS Symbian WinPhone 7.5 WebKit 532.9 WebKit WebKit WebKit with V8 WebKit with Piranah S60 or Qt? IE 9 WebCore JavascriptCore
  • 42. How it actually works Web Tech Not Web Tech Common Plugins Accelerometer Camera Capture Connection Contacts Native Web File Geolocation Control FFI Notification Storage ... Custom Plugins Badge Barcode Scanner Bluetooth InAppPurchaseManager...
  • 43. What the FFI? • Foreign Function Interface • aka, the Bridge • aka the Mighty Hack
  • 44.
  • 45. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } );
  • 46. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } ); • PhoneGap.exec( onSuccess, onError, "com.phonegap.camera", "getPicture", [ { quality: 50 } ] );
  • 47. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } ); • PhoneGap.exec( onSuccess, onError, "com.phonegap.camera", "getPicture", [ { quality: 50 } ] ); • gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D
  • 48. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } ); • PhoneGap.exec( onSuccess, onError, "com.phonegap.camera", "getPicture", [ { quality: 50 } ] ); • gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D • <iframe src=”gap://...” style=”display: none”></iframe>
  • 49. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } ); • PhoneGap.exec( onSuccess, onError, "com.phonegap.camera", "getPicture", [ { quality: 50 } ] ); • gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D • <iframe src=”gap://...” style=”display: none”></iframe> • PhoneGap.callbackSuccess( 123, { message: “file://.../tmp/1.jpg” } )
  • 50. navigator.camera.getPicture( onSuccess, onError, { quality: 50 } ); • PhoneGap.exec( onSuccess, onError, "com.phonegap.camera", "getPicture", [ { quality: 50 } ] ); • gap://4132@com.phonegap.camera.getPicture/123/?%7B%22quality%22%3A50%7D • <iframe src=”gap://...” style=”display: none”></iframe> • PhoneGap.callbackSuccess( 123, { message: “file://.../tmp/1.jpg” } ) • onSuccess( “file://.../tmp/1.jpg” )
  • 51. The Two Commandments • bring unto me your data, as long as it can be stringified • Let no API method exist unless it doth require a callback
  • 52. How it actually works Web Tech Not Web Tech Common Plugins Accelerometer Camera Capture Connection Contacts Native Web File Geolocation Control FFI Notification Storage ... Custom Plugins Badge Barcode Scanner Bluetooth InAppPurchaseManager...
  • 53. Accessing Native APIs PhoneGap Web App Mobile OS Hardware Native API Sensors Web App PhoneGap Plugins Graphics FFI OS API Network Javascript DOM CSS Resources Native Web View Browser OS API
  • 54. Aside: The ‘Gap’ PhoneGap Web App Mobile OS Hardware Native API Sensors Web App PhoneGap Plugins Graphics The ‘Gap’ FFI OS API Network Javascript DOM CSS Resources Native Web View Browser OS API
  • 55. Aside: The ‘Gap’ Mobile OS Hardware Native API Sensors Web App Browser Graphics Network Javascript DOM Browser OS API CSS Resources
  • 56. Aside: The ‘Gap’ Mobile OS Hardware Native API Sensors Web App “The Browsergoal secondof PhoneGap is Graphics Network Javascript for the project to cease to exist” DOM Browser OS API CSS • Use W3C Published standards where available Resources • Provide a reference implementation
  • 57. Plugins • All API features are plugins • Common Plugins • Good support across platforms • Custom Plugins • Terrible support across platforms • Make your own!
  • 58. W3C Compatible Spec Status Accelerometer No Working Draft Camera Complex Capture Yes Working Draft Compass No Working Draft Connection Almost Working Draft Contacts Yes Last Call Device Events File Yes Working Draft Geolocation Yes Candidate Recommendation Media No Last Call Notification No Working Draft Storage Yes Last Call / Retired
  • 59. iOS Android BlackBerry WinPhone Bada Symbian webOS Acceler Yes Yes 5.0 Yes Yes Yes Camera Yes Yes 5.0 Yes Yes Yes Yes Capture Yes Yes 5.0 Yes Compass Yes Yes Yes Yes Yes Yes Connection Yes Yes 5.0 Yes Yes Yes Contacts Yes Yes 5.0 Yes Yes Device Yes Yes 5.0 Yes Yes Yes Yes Events Yes Yes 5.0 Minimal Minimal Yes Minimal File Yes Yes 5.0 Yes Yes Geo Yes Yes 4.6 Yes Yes Yes Yes Media Yes Yes Yes Non Spec Notification Yes Yes 4.6 Yes Yes Yes Yes Storage Yes Yes 6.0 Yes Yes
  • 60.
  • 65. Custom Plugins • Application Preferences • Barcode Scanner • Clipboard • InAppPurchaseManager • Keychain • NativeControl • Bluetooth
  • 67. Debugging - weinre
  • 68. PhoneGap Roadmap • 1.x ( 2011) • performance, ease of use improvements • further w3c spec compliance • 2.x ( 2012 ) • Calendar, Messaging, Bluetooth, Audio/Video
  • 78.
  • 79. web site name ben@mobz.org twitter / github email

Editor's Notes

  1. \n
  2. \n
  3. saas provider, construction industry\nagile, long term strategy to move our platform to the mobile\n
  4. mobile app we are developing\narchitecture\n
  5. So which languages to learn?\nObjective-C is the most obvious,\nJava - each platform has a different API\nc++, silverlight, flash: no thanks\n
  6. Palm sold webOS to HP\nHP fired their CEO\nAndroid bought Motorola\nHTC, Samsung and others are worried\niOS still strong but not sharing\nAmazon just forked Android and has it&amp;#x2019;s own app store.\n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. July 2008, App Store opens.\nNitobi - Brock Whitten, Brian LaRoux\nMacromedia, San Fransisco\n
  14. July 2008, App Store opens.\nNitobi - Brock Whitten, Brian LaRoux\nMacromedia, San Fransisco\n
  15. July 2008, App Store opens.\nNitobi - Brock Whitten, Brian LaRoux\nMacromedia, San Fransisco\n
  16. July 2008, App Store opens.\nNitobi - Brock Whitten, Brian LaRoux\nMacromedia, San Fransisco\n
  17. 2009 - works directly with Sony/Ericsson on Symbian\n\n
  18. 2009 - works directly with Sony/Ericsson on Symbian\n\n
  19. 2009 - works directly with Sony/Ericsson on Symbian\n\n
  20. Emerging Technology Group\nassign 5 devs full time iOS, Android, BB5/6\nEnsure success\n
  21. Specific plugins for clients - open sourced\nRIM guys came out for a week to work on BB 5.0\n\n
  22. Very successful release\n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  40. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  41. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  42. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  43. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  44. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  45. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  46. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  47. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  48. iOS uses the WebCore and JavascriptCore technologies\nAndroid uses Googles V8 javascript engine&amp;#x2019;\nBlackberry is very similar to iOS\nwebOS uses a custom graphics engine Piranah\n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. w3c accel and compass spec are complex\ncamera ~= capture\nnavigator.network.connection.type due to android bug\nmedia needs html5 audio &amp; video api&amp;#x2019;s\n\n\n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n