3. the killing field
• phonegap project background
• mobile projects in practice
• backend design concerns
• mobile web client design
• progressive enhancement to ‘native’
5. phonegap project
• history/goals/philosphy
• licensing
• web standards
• the phonegap technique (ffi / 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
6. phonegap project
• history/goals/philosphy
• licensing
• web standards
•
•
imma teach ya fuckin
the phonegap technique (ffi / 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
7. 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
8. philosophy
• unix was (still is) right
• simple is better
• plan to fail; software is organic
• when in doubt use brute force
9. goals
• the web as a first class platform
• => installable web apps
• cease to exist
• => browsers adopt this model
14. 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
15. web standards
• w3c has many
• whatwg seems to be working well
• bondi / jil / wac / webinos
• de facto standards ?
• mozilla getting snippy about the flailing of
the various standards bodies: web apis and
b2g (fuck yes.)
16. the phonegap technique
• colloquially called ‘the bridge’
• more correctly a FFI (foreign function
interface)
17. the technique ‘splained
1. we instantiate a webview
2. 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!
18. primary platforms
• Apple iOS >= 3 (we’ve supported since
1.x)
• Google Android >= 1.5
• BlackBerry >= 5.x (supported since 4.2)
34. Performance
• benchmarking us (right now just init)
• benchmarking them (popular js libs)
• js unification and cleanup
• continual improvements to the bridge
• plugins removal will help tonnes
• data access another area of interest
35. security
• locking down the file://
• config.xml feature element lockdown
• code hotloading (hydra project)
• some crypto apis
• looking secure storage
36. tooling
• unification of mobile dev nomenclature
• standard project directory structuring
• build the tools devs are REbuilding every
project
37. tooling
• unification of mobile dev nomenclature
automate project directory structuringbitch
the shit out of this
• standard
• build the tools devs are REbuilding every
project
38. 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
40. Lets review
• philosophy
• licensing
• community adoption
• contributors
• tooling from 3rd parties
• no lock in: your app runs in a browser too
41. 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.
43. mobile projs in practice
• define your project philosophy and goals
• value != money
• design (...not just the pretty)
• shipping
44. know your philosophy
• a good problem defn outlines a solution
value proposition
• can’t be a hero without an enemy
45. have a goal (not goals)
• min viable product defn
• 1 sentence: no use of the word ‘and’
46. great ux happens
iteratively
• you design always; init w/ research
• big upfront designs fail. don’t fail.
47. bias
• technical bias is a normal condition
• embrace your bias; its skills you have
• embrace your existing technical debt
• be wary of anything preaching a ‘one true
way’
49. Good news!
• You have likely already invested in the web.
• If not, don’t worry, web tech is being taught
in elementary schools.
• Today you have the knowledge and skills to
build end to end systems with HTML, CSS
and JavaScript.
50. 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