phonegap project• history/goals/philosphy• licensing• web standards• the phonegap technique (fﬁ / bridge)• platform support• more on the bridge: plugins• the future of mobile is device apis• device apis: sensors• device apis: data• device apis: outputs• present and future: a little about our roadmap• phonegap/build• perceived competition
phonegap project• history/goals/philosphy• licensing• web standards•• imma teach ya fuckin the phonegap technique (fﬁ / bridge) platform support• everything aight? more on the bridge: plugins• the future of mobile is device apis• device apis: sensors• device apis: data• device apis: outputs• present and future: a little about our roadmap• phonegap/build• perceived competition
history• 2008 got its start as a lofty summertime hack; gained traction as a concept @nitobi with android and blackberry implementations in the fall• 2009 ppl started to pay attention when we got ‘rejected’ by apple; we added Symbian and webOS support• 2010 IBM began tag teaming w/ Nitobi• 2011 RIM joined: now its a gang bang• 2011 we shipped 1.x
philosophy• unix was (still is) right• simple is better• plan to fail; software is organic• when in doubt use brute force
goals• the web as a ﬁrst class platform• => installable web apps• cease to exist• => browsers adopt this model
Nitobi vs PhoneGap• we are the creators• we are contributors• nitobi is a software company that makes money writing software for ppl• we give away as much IP as possible
web standards• w3c has many• whatwg seems to be working well• bondi / jil / wac / webinos• de facto standards ?• mozilla getting snippy about the ﬂailing of the various standards bodies: web apis and b2g (fuck yes.)
the phonegap technique• colloquially called ‘the bridge’• more correctly a FFI (foreign function interface)
the technique ‘splained1. we instantiate a webview2. we call js from the native code (‘deviceready’)3. you can call native code from the js ... aaaand then we send data/ callbacks from the native!
primary platforms• Apple iOS >= 3 (we’ve supported since 1.x)• Google Android >= 1.5• BlackBerry >= 5.x (supported since 4.2)
platforms support cont.• HP webOS• Nokia Symbian• Samsung Bada
Performance• benchmarking us (right now just init)• benchmarking them (popular js libs)• js uniﬁcation and cleanup• continual improvements to the bridge• plugins removal will help tonnes• data access another area of interest
security• locking down the ﬁle://• conﬁg.xml feature element lockdown• code hotloading (hydra project)• some crypto apis• looking secure storage
tooling• uniﬁcation of mobile dev nomenclature• standard project directory structuring• build the tools devs are REbuilding every project
tooling • uniﬁcation of mobile dev nomenclatureautomate project directory structuringbitch the shit out of this • standard • build the tools devs are REbuilding every project
common tasks• launch an emulator• create a project• build a project to a device / emulator• attach a logger (console.log to stdout)• run the mobile-spec unit test suite
A quick interlude about competition• We have none.
Lets review• philosophy• licensing• community adoption• contributors• tooling from 3rd parties• no lock in: your app runs in a browser too
PhoneGap/Build• We build your apps ‘in the cloud’.• A commercial enterprise from Nitobi.• Always free for Free/Open Source projects.• Always 1 free private repo for developers.
shipping• a daily activity• writing unit tests for health and sanity• single click builds (test/dev/release)• distributed rcs and practices are crucial• automate everything manual