Brian LeRoux discusses the state of PhoneGap and outlines a plan to release version 1.0. Key points include: consolidating the installation process, improving documentation with tutorials and API docs, implementing continuous integration testing, creating a unified build process, defining a plugin API, and separating work into organized projects to address issues like the disorganized source code. The goal is to make PhoneGap easy for developers to use across multiple mobile platforms through a web-focused approach.
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Phonegap 1.0
1. Brian LeRoux, Nitobi
The Road to PhoneGap 1.0
phonegap.com
nitobi.com
brian@nitobi.com
twitter.com/brianleroux
brianleroux.github.com
westcoastlogic.com
etc.
2. Nitobi Software
‣ Founded in 1998
‣ 15 employees
‣ Based in Vancouver, BC (Gastown)
‣ ^---Canada, eh.
‣ Early player in JavaScript, Ajax, AIR,
Mobile web
Brian LeRoux / Nitobi Software / PhoneGap
4. Here’s the thing...
Platform Language Awesome
iPhone Objective C Not so much.
Android Java (Dalvik VM) Ok.
Blackberry Java (Who knows.) Bad scene.
Windows Mobile .NET and/or C++ Nuff said.
Nokia C++, Java, Flash Sorta cool right?
Lite, Web tech
Palm HTML. CSS. Exactly.
JavaScript.
Brian LeRoux / Nitobi Software / PhoneGap
5. We’ve seen this before...
‣ History is repeating itself.
‣ Platforms causing fragmentation.
‣ Who will save us?!
Brian LeRoux / Nitobi Software / PhoneGap
6. Stand back! I know javascript.
Brian LeRoux / Nitobi Software / PhoneGap
7. PhoneGap is Web Dev
‣ with native api access
‣ web technology: html, css and
javascript
Brian LeRoux / Nitobi Software / PhoneGap
8. Our philosophy
‣ The purpose of PhoneGap is for
PhoneGap to cease to exist.
Brian LeRoux / Nitobi Software / PhoneGap
9. In plain english
Problem: too many devices, platforms and stores.
Solution: enable web developers.
• Cross Platform
• Open Standards
• Open Source
Brian LeRoux / Nitobi Software / PhoneGap
10. Why?
Brian LeRoux / Nitobi Software / PhoneGap
11. One last time
‣ We are here to bring the web to native
devices not the other way around
‣ We are going to adhere to open
standards whenever possible
‣ The entire project stack is to remain
completely open source
Brian LeRoux / Nitobi Software / PhoneGap
12. PhoneGap Risks
‣ API still evolving and the Roadmap is unclear.
‣ Documentation is terrible and divisive.
‣ Competition?
‣ App store rejection FUD.
‣ Which webkit?
‣ Tooling is not consolidated.
‣ No fucking tests!
‣ No plugin architecture.
‣ The source tree is a mess.
‣ No defined roles, incentives, timelines for contributers.
Brian LeRoux / Nitobi Software / PhoneGap
13. API
‣ users do not easily know what is going
on on which device
‣ a hourly test page output would fix this
‣ whats next for phonegap?
‣ how do we plan features?
‣ (hint: not implmented)
Brian LeRoux / Nitobi Software / PhoneGap
14. Docs
‣ complete fail
‣ we need: examples, quickstarts,
advanced usage, official blog, api docs
and how to contribute tutorials
Brian LeRoux / Nitobi Software / PhoneGap
16. Don’t be fooled
‣ Lockin is not a goal of phonegap.
Brian LeRoux / Nitobi Software / PhoneGap
17. Rejection Letters
‣ the drama was nice
‣ but it was a symptom of our own
failure not Apple’s
‣ need to have a unified build process
across devices that performs project
naming and obfuscation built in
Brian LeRoux / Nitobi Software / PhoneGap
18. Which Webkit?
‣ we need to document the differences
between our platforms
‣ needs to be accessible to all users
quickly
‣ should give warnings during unified
build process
‣ sounds a whole lot like CI
Brian LeRoux / Nitobi Software / PhoneGap
19. Tooling not consolidated
‣ You need to download Palm, Android,
iPhone, BlackBerry SDK's...
‣ Then you need to learn how to build
for each on individually...
‣ Then resolve each x-platform issue...
‣ Repeat?!
‣ automation FAIL
Brian LeRoux / Nitobi Software / PhoneGap
20. Testing
‣ the JavaScript API needs tests
‣ (src for impls too but thats not as
important b/c thats not our
abstraction remember)
‣ I wrote the basis for this months ago ;)
‣ We need a continuous integration
server showing the results online all
the time
Brian LeRoux / Nitobi Software / PhoneGap
21. Plugins
‣ native apis that don't fit our web-iful
world view
‣ so simple to do!
‣ we need a leader for this
‣ Possibly an official 3rd party site?
Brian LeRoux / Nitobi Software / PhoneGap
22. Source is a mess
‣ lots to say about it but suffice to say
first time user is going to be FUCKED
trying to navigate this
‣ needs to be solved TODAY by us all
‣ later.
Brian LeRoux / Nitobi Software / PhoneGap
23. Roles
‣ We’re serious about recognizing
contribution.
‣ Projects concerned with problem
areas/risks instead of specific tech.
Brian LeRoux / Nitobi Software / PhoneGap
24. PhoneGap Projects
‣ Everyone: source tree organization review w/ team
‣ mobile-spec
‣ phonegap-doc
‣ phonegap-dev
‣ phonegap-install
‣ Plugin Project
Brian LeRoux / Nitobi Software / PhoneGap
25. How do we organize?
‣ Separate projects.
‣ Separate source.
‣ Separate issue trackers.
Brian LeRoux / Nitobi Software / PhoneGap
26. Timing
‣ Starts immediately.
‣ Friday Afternoon PhoneGap Hackdays
2pm - ?
‣ Its ready when its ready!
Brian LeRoux / Nitobi Software / PhoneGap
27. PhoneGap 1.0 (proposed)
‣ Installer/Updater of SDK
‣ New Docs Online
‣ CI Running
‣ Unified Build Process in place
‣ Plugin Website
Brian LeRoux / Nitobi Software / PhoneGap
28. Installer Project
‣ Single click install
‣ Everything a dev needs in one package
including SDK’s
‣ Updating
Brian LeRoux / Nitobi Software / PhoneGap
29. Docs Project
‣ One simple example app
‣ Quickstarts for each feature
‣ Advanced Usage tutorial w/ XUI
‣ Searchable and styled API docs
‣ Offline API doc in PDF form
‣ How to Contribute tutorial
‣ Official Blog w/ one post a week
Brian LeRoux / Nitobi Software / PhoneGap
30. Continuous Integration
‣ Single suite of tests for the JS API
‣ Runs hourly and online
‣ Packaged w/ the SDK
‣ Separate project will be useful for our
‘competition’
Brian LeRoux / Nitobi Software / PhoneGap
31. Unified Build Process
‣ One click and I get three binaries:
iPhone, Android, BB from one www
folder.
‣ Thats it! So simple! ;)
Brian LeRoux / Nitobi Software / PhoneGap
32. Plugins
‣ Need to define an API for this
‣ Would be nice if it was mirrored in JS
so plugins could be 100% web
‣ More important than any other Android
or iPhone feature.
‣ Need a repo and separate site for
listing plugins.
Brian LeRoux / Nitobi Software / PhoneGap
33. On the Horizon
‣ Palm, WRT and WinMo
‣ Bondi and Widgets
Brian LeRoux / Nitobi Software / PhoneGap
34. PhoneGap Touring
‣ OSCON
‣ FITC
‣ Ajax Experience
‣ Adobe Max
Brian LeRoux / Nitobi Software / PhoneGap
35. one last thing
‣ Browsers are already making PhoneGap
obsolete.
‣ Which means we're winning.
‣ Real artists ship. Here’s to 1.0!
Brian LeRoux / Nitobi Software / PhoneGap