SlideShare una empresa de Scribd logo
1 de 26
Phonegap/Cordova




                   @kgutteridge
Why?

   Write once run anywhere
   HTML5
   Javascript
   One code base




                              @kgutteridge
Supported Platforms

   iOS >=3.2
   Android >=1.5
   Blackberry >=4.6 but really >=5
   Symbian >=1
   webOS > 1.4.5

   Samsung Bada
   Qt
   WP7




                                      @kgutteridge
Background

   People at Nitobi originally "we don’t want this project
    to exist its to plug gaps"
   IBM + RIM + Microsoft + Symbian + Palm
   Now adopted into the Apache Software Foundation




                                                    @kgutteridge
Languages

   HTML
   CSS 3
   Javascript




                 @kgutteridge
Javascript

   http://wtfjs.com/
   https://www.destroyallsoftware.com/talks/wat




                                                   @kgutteridge
Why?

   JIL
   Bondi
   WAC
   W3C




            @kgutteridge
Its a hack

   Webview
   Call js from native code
   Call native code from js




                               @kgutteridge
Why?

   Accelerometer
   Camera
   Capture
   Compass
   Connection
   Contacts
   Device
   Events
   File
   Geolocation
   Media
   Notification
   Storage
                    @kgutteridge
Write once debug everywhere
    Weinre
    debug.phonegap.com
    Blackberry playbook
    Opera dragonfly




                                  @kgutteridge
Why?

   Is this still the right way to build your app?




                                                     @kgutteridge
Installation of SDKs (iOS)

     http://phonegap.com/download
     Install xCode http://developer.apple.com
     Select new Cordova project
     Run once, will get error
     Add ‘www’ file to project
        create folder references




                                                 @kgutteridge
Installation of SDKs (Android)

   http://www.eclipse.org/downloads/
   http://developer.android.com/sdk/installing.html
   Start a 2.2 Android project




                                                   @kgutteridge
Installation of SDKs (Android)

   Create www folder in assets




                                  @kgutteridge
Installation of SDKs (Android)


     Copy cordova-1.50.jar to libs
     Copy xml directory into the res directory
     Add cordova lib to build path
     Link “phonegap iOS app” into www
     Add Cordova import to main activity
     Extend DroidGap rather than Activity
     Add in onCreate
       super.loadUrl(“file://android_asset/www/
        index.html”);



                                                   @kgutteridge
Installation of SDKs (Android)




                                 @kgutteridge
Installation of SDKs (Android)

     Edit AndroidManifest.xml

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:resizeable="true"
    android:anyDensity="true"
    />




                                   @kgutteridge
Installation of SDKs (Android)


          Add permissions
        <uses-permission   android:name="android.permission.CAMERA" />
	       <uses-permission   android:name="android.permission.VIBRATE" />
	       <uses-permission   android:name="android.permission.ACCESS_COARSE_LOCATION" />
	       <uses-permission   android:name="android.permission.ACCESS_FINE_LOCATION" />
	       <uses-permission   android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
	       <uses-permission   android:name="android.permission.READ_PHONE_STATE" />
	       <uses-permission   android:name="android.permission.INTERNET" />
	       <uses-permission   android:name="android.permission.RECEIVE_SMS" />
	       <uses-permission   android:name="android.permission.RECORD_AUDIO" />
	       <uses-permission   android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
	       <uses-permission   android:name="android.permission.READ_CONTACTS" />
	       <uses-permission   android:name="android.permission.WRITE_CONTACTS" />
	       <uses-permission   android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
	       <uses-permission   android:name="android.permission.ACCESS_NETWORK_STATE" />
	       <uses-permission   android:name="android.permission.GET_ACCOUNTS" />
	       <uses-permission   android:name="android.permission.BROADCAST_STICKY" />




                                                                                     @kgutteridge
Installation of SDKs (Android)




                                 @kgutteridge
Installation of SDKs

       Add attribute
         configChanges="orientation|keyboardHidden"
       Add second activity
       <activity
        android:name="com.phonegap.DroidGap"
        android:label="@string/app_name"
        android:configChanges="orientation|keyboardHidden">
        <intent-filter></intent-filter>
</activity>




                                                       @kgutteridge
SDKs are a pain

   build.phonegap.com




                         @kgutteridge
Config.xml

   Based of W3C widget spec
<?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        id        = "uk.co.kgutteridge.bigm"
        versionCode="10" <!-- optional: Android only -->
        version   = "1.0.0">

    <name>Bigm</name>

    <description>
        An example app for phonegap build.
    </description>

    <author href="http://kgutteridge.co.uk"
email="kgutteridge@gmail.com">
        Kieran Gutteridge
    </author>
</widget>


                                                           @kgutteridge
Plugins

   All phonegap apis are plugins
   https://github.com/phonegap/phonegap-plugins




                                               @kgutteridge
Uh Oh?

   Add in app purchase




                          @kgutteridge
Native vs Web
   Native is native
   Platform metaphors do matter
   Password input boxes
   Clients love to pay for web technologies
   Devs love searching for the unicorn of write once run
    anywhere
   Maybe other options take a look at kirinJS




                                                  @kgutteridge
Q+A


      kieran.gutteridge@intohand.com


      @kgutteridge




                                       @kgutteridge

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Wearables + Azure development
Wearables + Azure developmentWearables + Azure development
Wearables + Azure development
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
從 Google i/o 2015 看下半年 mobile 應用發展趨勢
從 Google i/o 2015 看下半年 mobile 應用發展趨勢從 Google i/o 2015 看下半年 mobile 應用發展趨勢
從 Google i/o 2015 看下半年 mobile 應用發展趨勢
 
Creating Android Apps with PhoneGap
Creating Android Apps with PhoneGapCreating Android Apps with PhoneGap
Creating Android Apps with PhoneGap
 
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
 
Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018
 
An iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React NativeAn iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React Native
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
 
iOS Developers Conference-iOS Automation with Cucumber, Appium and Saucelabs
iOS Developers Conference-iOS Automation with Cucumber, Appium and SaucelabsiOS Developers Conference-iOS Automation with Cucumber, Appium and Saucelabs
iOS Developers Conference-iOS Automation with Cucumber, Appium and Saucelabs
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golang
 
React Native
React NativeReact Native
React Native
 
Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for Beginners
 
Bootiful Development with Spring Boot and Angular - RWX 2018
Bootiful Development with Spring Boot and Angular - RWX 2018Bootiful Development with Spring Boot and Angular - RWX 2018
Bootiful Development with Spring Boot and Angular - RWX 2018
 
Putting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native BostonPutting the Native in React Native - React Native Boston
Putting the Native in React Native - React Native Boston
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development Practices
 
JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
 
Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016
 
Android study jams 2021 [collab] [master]
Android study jams 2021 [collab] [master]Android study jams 2021 [collab] [master]
Android study jams 2021 [collab] [master]
 

Similar a OpenMIC March-2012.phonegap

HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
Motorola Mobility - MOTODEV
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 

Similar a OpenMIC March-2012.phonegap (20)

Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)
 
Android a brief intro
Android a brief introAndroid a brief intro
Android a brief intro
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
 
Getting Your Hooks Into Cordova
Getting Your Hooks Into CordovaGetting Your Hooks Into Cordova
Getting Your Hooks Into Cordova
 
Getting your Hooks into Cordova
Getting your Hooks into CordovaGetting your Hooks into Cordova
Getting your Hooks into Cordova
 
Getting Your Hooks into Cordova
Getting Your Hooks into CordovaGetting Your Hooks into Cordova
Getting Your Hooks into Cordova
 
Android App Development using HTML5 Technology
Android App Development using HTML5 TechnologyAndroid App Development using HTML5 Technology
Android App Development using HTML5 Technology
 
Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)Introduction to Apache Cordova (Phonegap)
Introduction to Apache Cordova (Phonegap)
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action
 
React Native
React NativeReact Native
React Native
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material design
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint Workshop
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
Angularjs Tutorial for Beginners
Angularjs Tutorial for BeginnersAngularjs Tutorial for Beginners
Angularjs Tutorial for Beginners
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 

Más de Kieran Gutteridge (9)

Spring hackathon
Spring hackathonSpring hackathon
Spring hackathon
 
OpenMIC March-2012.making money on mobile
OpenMIC March-2012.making money on mobileOpenMIC March-2012.making money on mobile
OpenMIC March-2012.making money on mobile
 
Winter hackathon intohand one voice olympic app
Winter hackathon intohand one voice olympic appWinter hackathon intohand one voice olympic app
Winter hackathon intohand one voice olympic app
 
Londroid - Non native development
Londroid - Non native developmentLondroid - Non native development
Londroid - Non native development
 
Hack camp 2011
Hack camp 2011Hack camp 2011
Hack camp 2011
 
BCS Mobile development choices
BCS Mobile development choicesBCS Mobile development choices
BCS Mobile development choices
 
Into to Android Live Wallpapers
Into to Android Live WallpapersInto to Android Live Wallpapers
Into to Android Live Wallpapers
 
App Stores Global Opportunities
App Stores Global OpportunitiesApp Stores Global Opportunities
App Stores Global Opportunities
 
Android, iPhone and application development
Android, iPhone and application developmentAndroid, iPhone and application development
Android, iPhone and application development
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

OpenMIC March-2012.phonegap

  • 1. Phonegap/Cordova @kgutteridge
  • 2. Why?  Write once run anywhere  HTML5  Javascript  One code base @kgutteridge
  • 3. Supported Platforms  iOS >=3.2  Android >=1.5  Blackberry >=4.6 but really >=5  Symbian >=1  webOS > 1.4.5  Samsung Bada  Qt  WP7 @kgutteridge
  • 4. Background  People at Nitobi originally "we don’t want this project to exist its to plug gaps"  IBM + RIM + Microsoft + Symbian + Palm  Now adopted into the Apache Software Foundation @kgutteridge
  • 5. Languages  HTML  CSS 3  Javascript @kgutteridge
  • 6. Javascript  http://wtfjs.com/  https://www.destroyallsoftware.com/talks/wat @kgutteridge
  • 7. Why?  JIL  Bondi  WAC  W3C @kgutteridge
  • 8. Its a hack  Webview  Call js from native code  Call native code from js @kgutteridge
  • 9. Why?  Accelerometer  Camera  Capture  Compass  Connection  Contacts  Device  Events  File  Geolocation  Media  Notification  Storage @kgutteridge
  • 10. Write once debug everywhere  Weinre  debug.phonegap.com  Blackberry playbook  Opera dragonfly @kgutteridge
  • 11. Why?  Is this still the right way to build your app? @kgutteridge
  • 12. Installation of SDKs (iOS)  http://phonegap.com/download  Install xCode http://developer.apple.com  Select new Cordova project  Run once, will get error  Add ‘www’ file to project  create folder references @kgutteridge
  • 13. Installation of SDKs (Android)  http://www.eclipse.org/downloads/  http://developer.android.com/sdk/installing.html  Start a 2.2 Android project @kgutteridge
  • 14. Installation of SDKs (Android)  Create www folder in assets @kgutteridge
  • 15. Installation of SDKs (Android)  Copy cordova-1.50.jar to libs  Copy xml directory into the res directory  Add cordova lib to build path  Link “phonegap iOS app” into www  Add Cordova import to main activity  Extend DroidGap rather than Activity  Add in onCreate  super.loadUrl(“file://android_asset/www/ index.html”); @kgutteridge
  • 16. Installation of SDKs (Android) @kgutteridge
  • 17. Installation of SDKs (Android)  Edit AndroidManifest.xml <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> @kgutteridge
  • 18. Installation of SDKs (Android)  Add permissions <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> @kgutteridge
  • 19. Installation of SDKs (Android) @kgutteridge
  • 20. Installation of SDKs  Add attribute  configChanges="orientation|keyboardHidden"  Add second activity  <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden"> <intent-filter></intent-filter> </activity> @kgutteridge
  • 21. SDKs are a pain  build.phonegap.com @kgutteridge
  • 22. Config.xml  Based of W3C widget spec <?xml version="1.0" encoding="UTF-8" ?> <widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" id = "uk.co.kgutteridge.bigm" versionCode="10" <!-- optional: Android only --> version = "1.0.0"> <name>Bigm</name> <description> An example app for phonegap build. </description> <author href="http://kgutteridge.co.uk" email="kgutteridge@gmail.com"> Kieran Gutteridge </author> </widget> @kgutteridge
  • 23. Plugins  All phonegap apis are plugins  https://github.com/phonegap/phonegap-plugins @kgutteridge
  • 24. Uh Oh?  Add in app purchase @kgutteridge
  • 25. Native vs Web  Native is native  Platform metaphors do matter  Password input boxes  Clients love to pay for web technologies  Devs love searching for the unicorn of write once run anywhere  Maybe other options take a look at kirinJS @kgutteridge
  • 26. Q+A kieran.gutteridge@intohand.com @kgutteridge @kgutteridge

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n