1.x is a big deal!




                     thank you
PhoneGap
2.x
@brianleroux
PhoneGap 2.x
2.x: http://goo.gl/q4EvS
• change PhoneGap.exec(...) to accept an object { success: function() {} ... etc } •   Enable internationalization (i18n)
  rather than specific args - Michael                                              •   Command line build
• crypto                                                                           •   Device.exitApp() as device independent way of closing application?
• config.xml documented                                                            •   Packaging of plugins (discussion on Planning: Plugin Packaging)
• config.xml of <feature />                                                        •   Plugin only architecture / ship phonegap with no prebuilt APIs
• Websockets                                                                       •   List the inbox and get contents of SMS message
• Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/           •   Native Controls
  publish/Notifications.html)
                                                                                   •   Native contact picker
• HTML media capture (http://www.w3.org/TR/2011/WD-html-media-                     •   Resource profiling hooks
  capture-20110414/)
                                                                                   •   Capacity tests (maybe identify flagship devices!)
• Calendar API (http://dev.w3.org/2009/dap/calendar/)                              •   App invocation w/ data/args (like intents or protocol handlers)
• Messaging API (http://www.w3.org/TR/messaging-api/)                              •   Network loss/regain events
• Menu api to build menus for all platforms (discussion on Planning: Menu API) •       Roaming in isReachable api
                                                                                   •   childbrowser first class
• hotloading of code instead of recompile in 'dev mode'                            •   fix touch events on webos, android
• x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol
    handlers in iOS, intents in Android, etc.
•   phonegap.js autoloaded into webview
•   deprecate accelerometer
•   deprecate media (use html5 audio)
•   Indexed DB (http://www.w3.org/TR/IndexedDB/)
2.x: http://goo.gl/q4EvS
• change PhoneGap.exec(...) to accept an object { success: function() {} ... etc } •   Enable internationalization (i18n)
  rather than specific args - Michael                                              •   Command line build
• crypto                                                                           •   Device.exitApp() as device independent way of closing application?
• config.xml documented                                                            •   Packaging of plugins (discussion on Planning: Plugin Packaging)
• config.xml of <feature />                                                        •   Plugin only architecture / ship phonegap with no prebuilt APIs
• Websockets                                                                       •   List the inbox and get contents of SMS message
• Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/           •   Native Controls
  publish/Notifications.html)
                                                                                   •   Native contact picker
• HTML media capture (http://www.w3.org/TR/2011/WD-html-media-                     •   Resource profiling hooks
  capture-20110414/)
                                                                                   •   Capacity tests (maybe identify flagship devices!)
• Calendar API (http://dev.w3.org/2009/dap/calendar/)                              •   App invocation w/ data/args (like intents or protocol handlers)
• Messaging API (http://www.w3.org/TR/messaging-api/)                              •   Network loss/regain events
• Menu api to build menus for all platforms (discussion on Planning: Menu API) •       Roaming in isReachable api
                                                                                   •   childbrowser first class
• hotloading of code instead of recompile in 'dev mode'                            •   fix touch events on webos, android
• x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol
    handlers in iOS, intents in Android, etc.
•
•
    phonegap.js autoloaded into webview
    deprecate accelerometer
                                                                      You can contribute!
•   deprecate media (use html5 audio)
•   Indexed DB (http://www.w3.org/TR/IndexedDB/)
2.x: http://goo.gl/q4EvS
• change PhoneGap.exec(...) to accept an object { success: function() {} ... etc } •   Enable internationalization (i18n)
  rather than specific args - Michael                                              •   Command line build
• crypto                                                                           •   Device.exitApp() as device independent way of closing application?
• config.xml documented                                                            •   Packaging of plugins (discussion on Planning: Plugin Packaging)
• config.xml of <feature />                                                        •   Plugin only architecture / ship phonegap with no prebuilt APIs
• Websockets                                                                       •   List the inbox and get contents of SMS message
• Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/           •   Native Controls
  publish/Notifications.html)
                                                                                   •   Native contact picker
• HTML media capture (http://www.w3.org/TR/2011/WD-html-media-                     •   Resource profiling hooks
  capture-20110414/)
                                                                                   •   Capacity tests (maybe identify flagship devices!)
• Calendar API (http://dev.w3.org/2009/dap/calendar/)                              •   App invocation w/ data/args (like intents or protocol handlers)
• Messaging API (http://www.w3.org/TR/messaging-api/)                              •   Network loss/regain events
• Menu api to build menus for all platforms (discussion on Planning: Menu API) •       Roaming in isReachable api
                                                                                   •   childbrowser first class
• hotloading of code instead of recompile in 'dev mode'                            •   fix touch events on webos, android
• x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol
    handlers in iOS, intents in Android, etc.
•
•
    phonegap.js autoloaded into webview
    deprecate accelerometer
                                                      What our users think --->
•   deprecate media (use html5 audio)
•   Indexed DB (http://www.w3.org/TR/IndexedDB/)
2.x




      NATIVE SCROLLING
2.x




      NATIVE SCROLLING
First, some perspective
• goals and principles
• tasks and practices
goals and principles
• embrace web technology
• enhance web tech to a first class dev env
• cease to exist
practices
• use the onboard sdk webview
• augment the webview with a bridge to native
• prototype implementation creating a realistic
  roadmap for browsers
software lifecycle: phases of doubt




          Phase 1. can it work?
software lifecycle: phases of doubt




          Phase 1. can it work?
          Phase 2. can it be fast?
software lifecycle: phases of doubt




          Phase 1. can it work?
          Phase 2. can it be fast?
          Phase 3. can it generate value?
software lifecycle: phases of doubt




          Phase 1. can it work?
          Phase 2. can it be fast?
          Phase 3. can it generate value?
software lifecycle: phases of doubt




          Phase 1. can it work?
          Phase 2. can it be fast?
          Phase 3. can it generate value?
software lifecycle: phases of doubt




          Phase 1. can it work?
          Phase 2. can it be fast?
          Phase 3. can it generate value?
http://gapingvoid.com
1.x




          Device APIs
        Major platforms
      Pluggable bridge / ffi
       Better web tooling
2.x



      Thinning out the client
          More platforms
       Platform UX concerns
      Tooling saga continues
         Perf and Security
             Polyfilling
2.x Thinning out the client



Everything becomes a plugin and config.xml becomes the
                       gateway.

                Standard packaging.
                  Plugin discovery.
                     Installation.
               Runtime security model.
2.x More platforms




              Samsung Bada
               MeeGo Linux
             Windows Phone 7
2.x Platform UX Concerns




             Notifications centres
         Physical button event binding
            HTML5 Menu element
2.x Tooling improvements




                Weinre improvements
     Code hotloading / refresh (Hydrating Apps)
  CLI Tooling (manage config.xml, Cordova rebirth)
2.x Performance and Security




       WebGL prototypes are under way
    Background services with pure JavaScript
        Crypto and remote logic loading
     Binary transport w/ JSON serialization
2.x HTML5 Polyfilling




                  workers
                  sockets

              html5 elements ...
Cadence
Next steps
Next steps: FOR REALS


• community forum to plan 2.x release
  schedule
• a major update every year


•   please use our traffic: blog on
    phonegap.com, tweet with the tag
    #phonegap
Now we party!

Phonegap 2.x

  • 2.
    1.x is abig deal! thank you
  • 3.
  • 4.
  • 5.
  • 6.
    2.x: http://goo.gl/q4EvS • changePhoneGap.exec(...) to accept an object { success: function() {} ... etc } • Enable internationalization (i18n) rather than specific args - Michael • Command line build • crypto • Device.exitApp() as device independent way of closing application? • config.xml documented • Packaging of plugins (discussion on Planning: Plugin Packaging) • config.xml of <feature /> • Plugin only architecture / ship phonegap with no prebuilt APIs • Websockets • List the inbox and get contents of SMS message • Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/ • Native Controls publish/Notifications.html) • Native contact picker • HTML media capture (http://www.w3.org/TR/2011/WD-html-media- • Resource profiling hooks capture-20110414/) • Capacity tests (maybe identify flagship devices!) • Calendar API (http://dev.w3.org/2009/dap/calendar/) • App invocation w/ data/args (like intents or protocol handlers) • Messaging API (http://www.w3.org/TR/messaging-api/) • Network loss/regain events • Menu api to build menus for all platforms (discussion on Planning: Menu API) • Roaming in isReachable api • childbrowser first class • hotloading of code instead of recompile in 'dev mode' • fix touch events on webos, android • x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol handlers in iOS, intents in Android, etc. • phonegap.js autoloaded into webview • deprecate accelerometer • deprecate media (use html5 audio) • Indexed DB (http://www.w3.org/TR/IndexedDB/)
  • 7.
    2.x: http://goo.gl/q4EvS • changePhoneGap.exec(...) to accept an object { success: function() {} ... etc } • Enable internationalization (i18n) rather than specific args - Michael • Command line build • crypto • Device.exitApp() as device independent way of closing application? • config.xml documented • Packaging of plugins (discussion on Planning: Plugin Packaging) • config.xml of <feature /> • Plugin only architecture / ship phonegap with no prebuilt APIs • Websockets • List the inbox and get contents of SMS message • Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/ • Native Controls publish/Notifications.html) • Native contact picker • HTML media capture (http://www.w3.org/TR/2011/WD-html-media- • Resource profiling hooks capture-20110414/) • Capacity tests (maybe identify flagship devices!) • Calendar API (http://dev.w3.org/2009/dap/calendar/) • App invocation w/ data/args (like intents or protocol handlers) • Messaging API (http://www.w3.org/TR/messaging-api/) • Network loss/regain events • Menu api to build menus for all platforms (discussion on Planning: Menu API) • Roaming in isReachable api • childbrowser first class • hotloading of code instead of recompile in 'dev mode' • fix touch events on webos, android • x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol handlers in iOS, intents in Android, etc. • • phonegap.js autoloaded into webview deprecate accelerometer You can contribute! • deprecate media (use html5 audio) • Indexed DB (http://www.w3.org/TR/IndexedDB/)
  • 8.
    2.x: http://goo.gl/q4EvS • changePhoneGap.exec(...) to accept an object { success: function() {} ... etc } • Enable internationalization (i18n) rather than specific args - Michael • Command line build • crypto • Device.exitApp() as device independent way of closing application? • config.xml documented • Packaging of plugins (discussion on Planning: Plugin Packaging) • config.xml of <feature /> • Plugin only architecture / ship phonegap with no prebuilt APIs • Websockets • List the inbox and get contents of SMS message • Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/ • Native Controls publish/Notifications.html) • Native contact picker • HTML media capture (http://www.w3.org/TR/2011/WD-html-media- • Resource profiling hooks capture-20110414/) • Capacity tests (maybe identify flagship devices!) • Calendar API (http://dev.w3.org/2009/dap/calendar/) • App invocation w/ data/args (like intents or protocol handlers) • Messaging API (http://www.w3.org/TR/messaging-api/) • Network loss/regain events • Menu api to build menus for all platforms (discussion on Planning: Menu API) • Roaming in isReachable api • childbrowser first class • hotloading of code instead of recompile in 'dev mode' • fix touch events on webos, android • x-platform intents ala https://github.com/PaulKinlan/WebIntents ...protocol handlers in iOS, intents in Android, etc. • • phonegap.js autoloaded into webview deprecate accelerometer What our users think ---> • deprecate media (use html5 audio) • Indexed DB (http://www.w3.org/TR/IndexedDB/)
  • 9.
    2.x NATIVE SCROLLING
  • 10.
    2.x NATIVE SCROLLING
  • 11.
    First, some perspective •goals and principles • tasks and practices
  • 12.
    goals and principles •embrace web technology • enhance web tech to a first class dev env • cease to exist
  • 13.
    practices • use theonboard sdk webview • augment the webview with a bridge to native • prototype implementation creating a realistic roadmap for browsers
  • 14.
    software lifecycle: phasesof doubt Phase 1. can it work?
  • 15.
    software lifecycle: phasesof doubt Phase 1. can it work? Phase 2. can it be fast?
  • 16.
    software lifecycle: phasesof doubt Phase 1. can it work? Phase 2. can it be fast? Phase 3. can it generate value?
  • 17.
    software lifecycle: phasesof doubt Phase 1. can it work? Phase 2. can it be fast? Phase 3. can it generate value?
  • 18.
    software lifecycle: phasesof doubt Phase 1. can it work? Phase 2. can it be fast? Phase 3. can it generate value?
  • 19.
    software lifecycle: phasesof doubt Phase 1. can it work? Phase 2. can it be fast? Phase 3. can it generate value?
  • 20.
  • 21.
    1.x Device APIs Major platforms Pluggable bridge / ffi Better web tooling
  • 22.
    2.x Thinning out the client More platforms Platform UX concerns Tooling saga continues Perf and Security Polyfilling
  • 23.
    2.x Thinning outthe client Everything becomes a plugin and config.xml becomes the gateway. Standard packaging. Plugin discovery. Installation. Runtime security model.
  • 24.
    2.x More platforms Samsung Bada MeeGo Linux Windows Phone 7
  • 25.
    2.x Platform UXConcerns Notifications centres Physical button event binding HTML5 Menu element
  • 26.
    2.x Tooling improvements Weinre improvements Code hotloading / refresh (Hydrating Apps) CLI Tooling (manage config.xml, Cordova rebirth)
  • 27.
    2.x Performance andSecurity WebGL prototypes are under way Background services with pure JavaScript Crypto and remote logic loading Binary transport w/ JSON serialization
  • 28.
    2.x HTML5 Polyfilling workers sockets html5 elements ...
  • 29.
  • 30.
  • 31.
    Next steps: FORREALS • community forum to plan 2.x release schedule • a major update every year • please use our traffic: blog on phonegap.com, tweet with the tag #phonegap
  • 32.