Picking a mobile app strategy
...and why I picked PhoneGap
I wanted to make a mobile app for my site this year, and I had a decision to make.
How to make it? There's actually a lot of options, and it's not an easy decision to make
because you're making a big time commitment - you're pretty much always learning something new
and making a new codebase. So you gotta know your options.
How to decide?
- How many platforms do you want to support?
- How important is performance?
- How important is the user experience?
- Which hardware APIs do you need access to?
- How many codebases do you want to have?
- What languages/technologies do you know?
- How much money do you want to spend?
How to decide?
- How many platforms do you want to support? 1
- How important is performance? Eh
- How important is the user experience? Sort of
- Which hardware APIs do you need access to? Camera
My team: (me)
- How many codebases do you want to have? 1
- What languages/technologies do you know? Web/Python
- How much money do you want to spend? $0
|Platform ||Language ||IDE
|iOS ||Objective C ||XCode
|Android ||Java ||Eclipse
|Windows ||.NET ||Visual Studio
|Blackberry||Java ||BB JDE
|hpWebOS ||C/C++/HTML5 ||?
Wrapper API -> Native
Often write once, run in multiple platforms
Native app wrapped around a web view,
communicating with APIs,
All web technology.
Bridging API + Web Tech
phonegap: open source, adobe bought, apache
trigger: startup funded, SaaS
appmobi: also for making offline web apps
document centric vs app centric. "all in one".
things to look for: widgets, speed, platform-specific theming, browser-support.
do they rely on other frameworks?
creating app from JS,
creating the whole container and UI
writing HTML first, using
JS to enhance that HTML,
mobile optimize it,
make it interactive
jQueryMobile + Kendo UI both based on jQuery
responsive, mobile, media queries, fixed header/footer
jQTouch designed to work with jQuery or Zepto.
touch events, scrolling
single-page JS file with server-side and client-side templates
YUI CSS Compressor,
test on localhost in browser,
copy out templates,
deploy to device
test on device,
show tests being run
works in browser, works on emulator in browser, not yet in embedded webview
mock out the phonegap APIs
PhoneGap: Performance Testing
Would I do it again?
- Code reuse
- Knowledge reuse
- Bright future
- Mobile browser bugginess/stability
- Bugs take longer to debug
- Hard to fake native UX
...Yes, probably... but should you?