SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Native Javascript apps with
                                                      Phonegap

                                                    Martin de Keijzer
                      iOSOnRailsConf2013 13-14 April, Alushta Ukraine




Sunday, 14 April 13
Introduction




                                     2

Sunday, 14 April 13
About me

             Martin de Keijzer
             Dutch web developer


                      Working for Ibuildings


                      PHPBenelux Board Member


                      @Martin1982

                      http://www.martindekeijzer.nl
                                                      3

Sunday, 14 April 13
What is PhoneGap?
                      Subtitel




                                          4

Sunday, 14 April 13
What is PhoneGap




                      A way to wrap you HTML
                      app as a native application.
                                                     5

Sunday, 14 April 13
What is PhoneGap
   A way to bridge ‘Native’ functionality to a Javascript API




                                                            6

Sunday, 14 April 13
Mission




                         PhoneGap’s mission is for
                      PhoneGap to cease to exist!




                                                     7

Sunday, 14 April 13
Cordova, PhoneGap
                      WTF?!?!?




                                          8

Sunday, 14 April 13
PhoneGap Pre-Adobe




                                by




                                     9

Sunday, 14 April 13
PhoneGap acquisistion by Adobe




                                       Donated to
 Acquired by




                                                    10

Sunday, 14 April 13
Acquisition by Adobe




                 “PhoneGap”       “Callback”
                                  “Cordova”
                                               11

Sunday, 14 April 13
PhoneGap now




                      Where changes get committed




                                                    12

Sunday, 14 April 13
PhoneGap now




                          PhoneGap releases, still identical to
                                 Apache Cordova




                                                                  13

Sunday, 14 April 13
In conclusion




                           You’ll use PhoneGap!


                                                  14

Sunday, 14 April 13
Installing PhoneGap
                      Getting ready for lift-off




                                                   15

Sunday, 14 April 13
Getting PhoneGap




                      http://phonegap.com/download/

                                                      16

Sunday, 14 April 13
Lib is where the magic lives




                                     “lib” contains all supported
                                           platforms.... and a

                                          ♥♥♥♥   CLI tool ♥ ♥ ♥ ♥




                                                                    17

Sunday, 14 April 13
XCode Command Line Tools




                                      18

Sunday, 14 April 13
Creating your first project

              $ ./path/to/cordova-ios/bin/create

              /path/to/my_new_cordova_project

              com.example.cordova_project_name

              CordovaProjectName




                                                   19

Sunday, 14 April 13
Creating your first project




                               XCode Project

                                               20

Sunday, 14 April 13
The app




                      21

Sunday, 14 April 13
First Run




                       22

Sunday, 14 April 13
Ready for action




     Always use the “www” folder & always assume your
    app is running from a filesystem instead of a web server!




                                                          23

Sunday, 14 April 13
PhoneGap build
                      Let’s take it easy




                                           24

Sunday, 14 April 13
Creating builds using XCode




                                 The pain:
              Running updates and checking requirements over
                              and over again!




                                                               25

Sunday, 14 April 13
Creating builds using XCode




                                         26

Sunday, 14 April 13
PhoneGap build to the rescue!




                       http://build.phonegap.com
                                                   27

Sunday, 14 April 13
PhoneGap build in a nutshell




                                          28

Sunday, 14 April 13
Getting started




                             OR




                                  29

Sunday, 14 April 13
Getting started




                             30

Sunday, 14 April 13
Getting started




                              OR




     Repository that represents    Zip-file that represents
              “www”                        “www”           31

Sunday, 14 April 13
Getting started




                             32

Sunday, 14 April 13
The power of PhoneGap Build



          Title                          Metadata   Test




           Code
                                                           33

Sunday, 14 April 13
Build statusses




                      Grey: Still building, be patient
                      Blue-ish: Build succeeded, click to download
                      Red: Build error, action required
                                                                     34

Sunday, 14 April 13
Build errors




                          35

Sunday, 14 April 13
Working in teams




                              36

Sunday, 14 April 13
Building like a pro




                                   config.xml
                              W3C Widget Specification

                      https://gist.github.com/Martin1982/5063962
                                                                   37

Sunday, 14 April 13
Plug-ins
                      When the web just doesn’t suffice




                                                          38

Sunday, 14 April 13
Accelerometer




                           Get device movement
                            in an X,Y, Z space.




                                                  39

Sunday, 14 April 13
Camera & Capture & Media



                                                   Use the device’s library,
                                                 camera and microphone to
                                                 work with local audio, video
                                                        and images.



                      Don’t forget iOS 6 supports:
                      <input type="file" accept="image/*" capture="camera">

                                                                              40

Sunday, 14 April 13
Compass




                      API to detect which way a
                       device user is pointing




                                                  41

Sunday, 14 April 13
Connection




                         See if a user is connected and
                        inspect the type of connection:

                              Wifi, xG, Ethernet



      Caution navigator.isOnline is your close friend
                                                          42

Sunday, 14 April 13
Contacts




                      Access the user’s contact list




                                                       43

Sunday, 14 April 13
Device




                      •Name
                      •Cordova version
                      •Platform
                      •UUID
                      •Version
                      •Model


                                         44

Sunday, 14 April 13
Events




                      Handles application state
                      (deviceready, paused etc)




                                                  45

Sunday, 14 April 13
File




                      Filesystem bridging, based
                         on the W3C File API




                                             46

Sunday, 14 April 13
Geolocation



                                      API to get the latitudes and
                                       longitudes of the device.


                      Caution: Already supported by browsers!




                                                                     47

Sunday, 14 April 13
Globalization




                           Currency, language, date time




                                                           48

Sunday, 14 April 13
InAppBrowser




                          The browser opened by
                            window.open()




                                             49

Sunday, 14 April 13
Notification




                          •Alert
                          •Confirmation
                          •Beep
                          •Vibrate



                                         50

Sunday, 14 April 13
Splashscreen




                      No matter how beautiful your splash screen is,
                       eventually you’ll need to show and hide it
                                                                       51

Sunday, 14 April 13
Storage




                            SQL storage based on the W3C
                               WebSQL specification.




             Caution; WebSQL is no longer maintained
                    IndexedDB is the new superhero!
                                                      52

Sunday, 14 April 13
User plugins
                      Why reinvent the wheel




                                               53

Sunday, 14 April 13
Pick what you want




                      https://github.com/phonegap/phonegap-plugins   54

Sunday, 14 April 13
QUESTIONS



                                  55

Sunday, 14 April 13
Thank you for listening

                                  mdkeijzer@ibuildings.nl
                                            @Martin1982




Sunday, 14 April 13

Más contenido relacionado

Similar a Native Javascript apps with PhoneGap

Reggefiber glasvezel presentatie
Reggefiber glasvezel presentatieReggefiber glasvezel presentatie
Reggefiber glasvezel presentatieVincent Everts
 
Native Javascript apps with PhoneGap by Martin de Keijzer
Native Javascript apps with PhoneGap by Martin de KeijzerNative Javascript apps with PhoneGap by Martin de Keijzer
Native Javascript apps with PhoneGap by Martin de KeijzerCodemotion
 
From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15Jan Jongboom
 
Screencasting in the classroom
Screencasting in the classroomScreencasting in the classroom
Screencasting in the classroomEllen Cordeiro
 
Test Driven Infrastructure Development
Test Driven Infrastructure DevelopmentTest Driven Infrastructure Development
Test Driven Infrastructure DevelopmentPuppet
 
Test driven infrastructure development
Test driven infrastructure developmentTest driven infrastructure development
Test driven infrastructure developmentTomas Doran
 
Porting Tips: iOS to Android
Porting Tips: iOS to AndroidPorting Tips: iOS to Android
Porting Tips: iOS to Androidelhypnotoad
 
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoWorkshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoCarlos Solis
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersPablo Godel
 
Secret sauce of building php applications
Secret sauce of building php applicationsSecret sauce of building php applications
Secret sauce of building php applicationsLin Yo-An
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsTroy Miles
 
Spring in-the-cloud
Spring in-the-cloudSpring in-the-cloud
Spring in-the-cloudJoshua Long
 

Similar a Native Javascript apps with PhoneGap (17)

Reggefiber glasvezel presentatie
Reggefiber glasvezel presentatieReggefiber glasvezel presentatie
Reggefiber glasvezel presentatie
 
Native Javascript apps with PhoneGap by Martin de Keijzer
Native Javascript apps with PhoneGap by Martin de KeijzerNative Javascript apps with PhoneGap by Martin de Keijzer
Native Javascript apps with PhoneGap by Martin de Keijzer
 
From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15
 
Screencasting in the classroom
Screencasting in the classroomScreencasting in the classroom
Screencasting in the classroom
 
Test Driven Infrastructure Development
Test Driven Infrastructure DevelopmentTest Driven Infrastructure Development
Test Driven Infrastructure Development
 
Test driven infrastructure development
Test driven infrastructure developmentTest driven infrastructure development
Test driven infrastructure development
 
Porting Tips: iOS to Android
Porting Tips: iOS to AndroidPorting Tips: iOS to Android
Porting Tips: iOS to Android
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoWorkshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developers
 
Secret sauce of building php applications
Secret sauce of building php applicationsSecret sauce of building php applications
Secret sauce of building php applications
 
To succeed in IT Industry...
To succeed in IT Industry...To succeed in IT Industry...
To succeed in IT Industry...
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Phonegap
PhonegapPhonegap
Phonegap
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Spring in-the-cloud
Spring in-the-cloudSpring in-the-cloud
Spring in-the-cloud
 

Más de Martin de Keijzer

High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016Martin de Keijzer
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app devMartin de Keijzer
 
tiCONF Amsterdam 2014 building mobile teams
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teamsMartin de Keijzer
 
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeMartin de Keijzer
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildMartin de Keijzer
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OSMartin de Keijzer
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2Martin de Keijzer
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 geckoMartin de Keijzer
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend FrameworkMartin de Keijzer
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Martin de Keijzer
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CIMartin de Keijzer
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]Martin de Keijzer
 
Een introductie voor Phpunit
Een introductie voor PhpunitEen introductie voor Phpunit
Een introductie voor PhpunitMartin de Keijzer
 

Más de Martin de Keijzer (18)

High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
 
tiCONF Amsterdam 2014 building mobile teams
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teams
 
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
 
The Environment Restaurant
The Environment RestaurantThe Environment Restaurant
The Environment Restaurant
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap Build
 
Mobile is everywhere
Mobile is everywhereMobile is everywhere
Mobile is everywhere
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend Framework
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CI
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]
 
Subversion In De Praktijk
Subversion In De PraktijkSubversion In De Praktijk
Subversion In De Praktijk
 
Een introductie voor Phpunit
Een introductie voor PhpunitEen introductie voor Phpunit
Een introductie voor Phpunit
 

Último

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 

Último (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 

Native Javascript apps with PhoneGap

  • 1. Native Javascript apps with Phonegap Martin de Keijzer iOSOnRailsConf2013 13-14 April, Alushta Ukraine Sunday, 14 April 13
  • 2. Introduction 2 Sunday, 14 April 13
  • 3. About me Martin de Keijzer Dutch web developer Working for Ibuildings PHPBenelux Board Member @Martin1982 http://www.martindekeijzer.nl 3 Sunday, 14 April 13
  • 4. What is PhoneGap? Subtitel 4 Sunday, 14 April 13
  • 5. What is PhoneGap A way to wrap you HTML app as a native application. 5 Sunday, 14 April 13
  • 6. What is PhoneGap A way to bridge ‘Native’ functionality to a Javascript API 6 Sunday, 14 April 13
  • 7. Mission PhoneGap’s mission is for PhoneGap to cease to exist! 7 Sunday, 14 April 13
  • 8. Cordova, PhoneGap WTF?!?!? 8 Sunday, 14 April 13
  • 9. PhoneGap Pre-Adobe by 9 Sunday, 14 April 13
  • 10. PhoneGap acquisistion by Adobe Donated to Acquired by 10 Sunday, 14 April 13
  • 11. Acquisition by Adobe “PhoneGap” “Callback” “Cordova” 11 Sunday, 14 April 13
  • 12. PhoneGap now Where changes get committed 12 Sunday, 14 April 13
  • 13. PhoneGap now PhoneGap releases, still identical to Apache Cordova 13 Sunday, 14 April 13
  • 14. In conclusion You’ll use PhoneGap! 14 Sunday, 14 April 13
  • 15. Installing PhoneGap Getting ready for lift-off 15 Sunday, 14 April 13
  • 16. Getting PhoneGap http://phonegap.com/download/ 16 Sunday, 14 April 13
  • 17. Lib is where the magic lives “lib” contains all supported platforms.... and a ♥♥♥♥ CLI tool ♥ ♥ ♥ ♥ 17 Sunday, 14 April 13
  • 18. XCode Command Line Tools 18 Sunday, 14 April 13
  • 19. Creating your first project $ ./path/to/cordova-ios/bin/create /path/to/my_new_cordova_project com.example.cordova_project_name CordovaProjectName 19 Sunday, 14 April 13
  • 20. Creating your first project XCode Project 20 Sunday, 14 April 13
  • 21. The app 21 Sunday, 14 April 13
  • 22. First Run 22 Sunday, 14 April 13
  • 23. Ready for action Always use the “www” folder & always assume your app is running from a filesystem instead of a web server! 23 Sunday, 14 April 13
  • 24. PhoneGap build Let’s take it easy 24 Sunday, 14 April 13
  • 25. Creating builds using XCode The pain: Running updates and checking requirements over and over again! 25 Sunday, 14 April 13
  • 26. Creating builds using XCode 26 Sunday, 14 April 13
  • 27. PhoneGap build to the rescue! http://build.phonegap.com 27 Sunday, 14 April 13
  • 28. PhoneGap build in a nutshell 28 Sunday, 14 April 13
  • 29. Getting started OR 29 Sunday, 14 April 13
  • 30. Getting started 30 Sunday, 14 April 13
  • 31. Getting started OR Repository that represents Zip-file that represents “www” “www” 31 Sunday, 14 April 13
  • 32. Getting started 32 Sunday, 14 April 13
  • 33. The power of PhoneGap Build Title Metadata Test Code 33 Sunday, 14 April 13
  • 34. Build statusses Grey: Still building, be patient Blue-ish: Build succeeded, click to download Red: Build error, action required 34 Sunday, 14 April 13
  • 35. Build errors 35 Sunday, 14 April 13
  • 36. Working in teams 36 Sunday, 14 April 13
  • 37. Building like a pro config.xml W3C Widget Specification https://gist.github.com/Martin1982/5063962 37 Sunday, 14 April 13
  • 38. Plug-ins When the web just doesn’t suffice 38 Sunday, 14 April 13
  • 39. Accelerometer Get device movement in an X,Y, Z space. 39 Sunday, 14 April 13
  • 40. Camera & Capture & Media Use the device’s library, camera and microphone to work with local audio, video and images. Don’t forget iOS 6 supports: <input type="file" accept="image/*" capture="camera"> 40 Sunday, 14 April 13
  • 41. Compass API to detect which way a device user is pointing 41 Sunday, 14 April 13
  • 42. Connection See if a user is connected and inspect the type of connection: Wifi, xG, Ethernet Caution navigator.isOnline is your close friend 42 Sunday, 14 April 13
  • 43. Contacts Access the user’s contact list 43 Sunday, 14 April 13
  • 44. Device •Name •Cordova version •Platform •UUID •Version •Model 44 Sunday, 14 April 13
  • 45. Events Handles application state (deviceready, paused etc) 45 Sunday, 14 April 13
  • 46. File Filesystem bridging, based on the W3C File API 46 Sunday, 14 April 13
  • 47. Geolocation API to get the latitudes and longitudes of the device. Caution: Already supported by browsers! 47 Sunday, 14 April 13
  • 48. Globalization Currency, language, date time 48 Sunday, 14 April 13
  • 49. InAppBrowser The browser opened by window.open() 49 Sunday, 14 April 13
  • 50. Notification •Alert •Confirmation •Beep •Vibrate 50 Sunday, 14 April 13
  • 51. Splashscreen No matter how beautiful your splash screen is, eventually you’ll need to show and hide it 51 Sunday, 14 April 13
  • 52. Storage SQL storage based on the W3C WebSQL specification. Caution; WebSQL is no longer maintained IndexedDB is the new superhero! 52 Sunday, 14 April 13
  • 53. User plugins Why reinvent the wheel 53 Sunday, 14 April 13
  • 54. Pick what you want https://github.com/phonegap/phonegap-plugins 54 Sunday, 14 April 13
  • 55. QUESTIONS 55 Sunday, 14 April 13
  • 56. Thank you for listening mdkeijzer@ibuildings.nl @Martin1982 Sunday, 14 April 13