Introducing PhoneGap

  Native Mobile Web Apps
Mobile app dev is hard.
Device Platform Fragmentation
Platform            Language                    Notes

Apple iPhone        Objective C                 Requires an Apple machine.
                                                Left arm.

RIM Blackberry OS   Java                        Requires a Windows based
                                                machine. WTF.

Google Android      Java (Dalvik VM)            Runs mostly anywhere.


Windows Mobile      .NET or unmanaged C++       Requires a Windows based
                                                machine.

Nokia Symbian       C++, Java, Python, Flash,   Runs mostly anywhere.
                    WRT

Palm WebOS          HTML, CSS and JavaScript Runs mostly anywhere.
App Distribution Fragmentation
Apple App Store
Android Market
Blackberry App World
Nokia Ovi Store
GetJar
Palm App Catalog
Samsung App Store
LG Application Store
Mobango
Sony Ericsson PlayNow
Windows Marketplace
Vodafone App Store
Java App Store
Verizon VCast
Dev and distribution nightmare.
This is why the internet works.

        cross platform
        open standards
        open source
Cross Platform
                 iPhone
                 Android
                 Blackberry
                 Windows Mobile
                 Nokia *
                 Palm *




                                  * releasing this fall
HTML5

 sorta
Webkit APIs

SQLite
Cache Manifest
CSS Transitions / Transforms / Animations
Custom fonts
PhoneGap API
               Geolocation
               Accelerometer
               Media playback
               Camera
               Device info
               Contacts
               Online/Offline
               SMS / Telephone
               Magnetometer
Future APIs




                      File IO
                 WebSocket
              SQLite Wrapper
Free: as in freedom.

     MIT Licensed
PhoneGap Philosophy

The purpose is to cease to exist.
Make the web a first class dev tool.
Be open, transparent and free.
Adhere to standards when possible.
Problems with the PhoneGap project


   documentation
   app store FUD
   no fucking tests
   many webkit variants
   perceived competition
   tooling is not consolidated
   source is a bit of a gong show
   no standard technique for extending the project
docs.phonegap.com
http://github.com/phonegap/phonegap-docs
App Store Rejections?

   Rename your project.
No fucking tests?!
mobile-spec

http://github.com/phonegap/mobile-spec
The many flavors of Webkit
iPhone OS 3.0 Webkit 528.16 Build
iPhone OS 2.2 Webkit 525.20 Build
iPhone OS 2.02 Webkit 525.20 Build
iPhone OS 1.5 Webkit 419.3 Build
Android 1.5 Webkit Nov 2008 Fork
Android 1.1 Webkit Rev r30692
Android 1.0 Webkit
PalmPre OS Webkit
Nokia S60 Webkit Fork
Nokia WRT Webkit Fork
Not to mention what isn't Webkit

Blackberry
Windows Mobile
.
.
.
.
.
.
.
...yet.
The web still rocks.

(even if the browsers do not)
Other options?
Option             Supported Platforms      Language            License
BigFive            iPhone                   HTML, CSS and JS    GPL2

LiquidGear         iPhone                   HTML, CSS and JS* MIT


Corona             iPhone                   Lua                 Proprietary

Appcelerator       iPhone                   HTML, CSS and JS* Apache / Proprietary
                   Android
Rhodes             iPhone                   HTML, CSS and JS. GPL3
                   Symbian                  Ruby for native code.
                   Android                  Accessed client/server
                   BlackBerry               style.
                   Windows Mobile
NimbleKit          iPhone                   HTML, CSS and JS* Proprietary

* Renders native controls via JavaScript.
Wash, Rinse, Repeat...FAIL

1. First, install all these:
       iPhone SDK
       Android SDK
       Blackberry SDK
       Windows Mobile SDK
       Nokia WRT SDK
2. Download the PhoneGap source.
3. Map to each SDK.
4. Copy your app into each.
5. Build for each.
6. Fix a bug.
7. GOTO 3.

Automation FAIL.
phonegap-dev

sudo gem install phonegap
is demo time nao
Extending PhoneGap

      Plugins
Sauce needs some clean up.
The Future
More devices.
OMTP BONDI

   Spec.
W3C Device API Group
Now... go write some apps!*
http://phonegap.com
http://groups.google.com/group/phonegap


Brian LeRoux
brian@nitobi.com
http://twitter.com/brianleroux
* After beers. Ideally at least 12 hours after beers.

Brian Le Roux Presentation Introducing Phone Gap

  • 1.
    Introducing PhoneGap Native Mobile Web Apps
  • 2.
  • 3.
    Device Platform Fragmentation Platform Language Notes Apple iPhone Objective C Requires an Apple machine. Left arm. RIM Blackberry OS Java Requires a Windows based machine. WTF. Google Android Java (Dalvik VM) Runs mostly anywhere. Windows Mobile .NET or unmanaged C++ Requires a Windows based machine. Nokia Symbian C++, Java, Python, Flash, Runs mostly anywhere. WRT Palm WebOS HTML, CSS and JavaScript Runs mostly anywhere.
  • 4.
    App Distribution Fragmentation AppleApp Store Android Market Blackberry App World Nokia Ovi Store GetJar Palm App Catalog Samsung App Store LG Application Store Mobango Sony Ericsson PlayNow Windows Marketplace Vodafone App Store Java App Store Verizon VCast
  • 5.
  • 6.
    This is whythe internet works. cross platform open standards open source
  • 7.
    Cross Platform iPhone Android Blackberry Windows Mobile Nokia * Palm * * releasing this fall
  • 8.
  • 9.
    Webkit APIs SQLite Cache Manifest CSSTransitions / Transforms / Animations Custom fonts
  • 10.
    PhoneGap API Geolocation Accelerometer Media playback Camera Device info Contacts Online/Offline SMS / Telephone Magnetometer
  • 11.
    Future APIs File IO WebSocket SQLite Wrapper
  • 12.
    Free: as infreedom. MIT Licensed
  • 13.
    PhoneGap Philosophy The purposeis to cease to exist. Make the web a first class dev tool. Be open, transparent and free. Adhere to standards when possible.
  • 14.
    Problems with thePhoneGap project documentation app store FUD no fucking tests many webkit variants perceived competition tooling is not consolidated source is a bit of a gong show no standard technique for extending the project
  • 15.
  • 16.
    App Store Rejections? Rename your project.
  • 17.
  • 18.
  • 19.
    The many flavorsof Webkit iPhone OS 3.0 Webkit 528.16 Build iPhone OS 2.2 Webkit 525.20 Build iPhone OS 2.02 Webkit 525.20 Build iPhone OS 1.5 Webkit 419.3 Build Android 1.5 Webkit Nov 2008 Fork Android 1.1 Webkit Rev r30692 Android 1.0 Webkit PalmPre OS Webkit Nokia S60 Webkit Fork Nokia WRT Webkit Fork
  • 20.
    Not to mentionwhat isn't Webkit Blackberry Windows Mobile . . . . . . . ...yet.
  • 21.
    The web stillrocks. (even if the browsers do not)
  • 22.
    Other options? Option Supported Platforms Language License BigFive iPhone HTML, CSS and JS GPL2 LiquidGear iPhone HTML, CSS and JS* MIT Corona iPhone Lua Proprietary Appcelerator iPhone HTML, CSS and JS* Apache / Proprietary Android Rhodes iPhone HTML, CSS and JS. GPL3 Symbian Ruby for native code. Android Accessed client/server BlackBerry style. Windows Mobile NimbleKit iPhone HTML, CSS and JS* Proprietary * Renders native controls via JavaScript.
  • 23.
    Wash, Rinse, Repeat...FAIL 1.First, install all these: iPhone SDK Android SDK Blackberry SDK Windows Mobile SDK Nokia WRT SDK 2. Download the PhoneGap source. 3. Map to each SDK. 4. Copy your app into each. 5. Build for each. 6. Fix a bug. 7. GOTO 3. Automation FAIL.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Now... go writesome apps!* http://phonegap.com http://groups.google.com/group/phonegap Brian LeRoux brian@nitobi.com http://twitter.com/brianleroux * After beers. Ideally at least 12 hours after beers.