• Nitobi Software,Vancouver
Welcome to the
Hockey’s Golden city!
Don’t go farther north
Things I’m working on
6 billion people on the planet
1 billion television sets
3 billion web enabled mobile devices
Apps for that
• Mobile Web Apps
• Native Apps
• Hybrid Apps
The Mobile Web
• Growing stupid fast
• Tech is also moving stupid fast
• A whole new clusterfuck of browsers
• Many ﬂavors of WebKit
• Blackberry and IE Mobile
Not to mention
• Fucked up screen sizes
• Bizzare pixel density
• ...and basically complete shit for cpus,
memory and storage
Constraints === Focus
• Know your demographic
• Choose your target platforms
• What does your target browser support?
• Ofﬂine capable? storage / cache manifest
• RESTful JSON
• favor parse to eval btw
• Use local storage or device api for ﬁle i/o
to cache data as much as possible
• Update apps through the various stores
front end solutions
Apple iPhone OS .............................. Obj C
RIM Blackberry ................................. Java
Google Android ................................ Java
Symbian / Maemo (Nokia) ............. *
Palm webOS ..................................... Web
Windows Mobile ............................. .NET
• Device APIs
• ...and one more thing
We got a pony too
two of em.
• www folder
• single index.html ﬁle that loads static assets
• remoting via xhr/json-p
• oh ya: icon, loading screen
• The architecture of a hybrid app is
strikingly similar to that of a W3C Widget
• Device APIs are being standardized by the
W3C DAP Group and OTMP BONDI
• demo time nao
• 1.0 is very soon
• better tests in mobile-spec
• build tooling
• widget spec compliance
But! Web apps suck?
• But there are libs for that.
• Or quit your bitching and just wait for
The DOM is broken
But it is possibly a little better on mobile.
An embarrassing mess.
• jQuery work-alike
• simple api
• Admittedly a shitty name
• 1.0 coming soon
• Build tooling based on RequireJS
• Support for ALL mobile browsers
• Web apps: Cache Manifest
• Hybrid apps: Reachability API
• DOM storage
Cache Manifest Example
DOM Storage Example
• DOM Storage is key/value only. Slightly
nicer than cookies but way lamer name.
• SQLite seems like a bad idea: schemas,
migrations, impedance mismatch, oh my.
How about a Lawnchair?
• JSON document store (not key/value)
• Designed for mobile; very light
• Clean and simple async oo api
• Adaptor pattern for store customization
Some code, eh
• 1.0 is REAL SOON I FUCKING PROMISE
• Adaptors abstracted into a RequireJS build
• Some actual benchmarks
• PhoneGap File I/O adaptor
• App stores are sanitized and walled
gardens. The content is dictated.
• 30% for the ability to sell is corporate
greed at its worst.
• Requiring provisioning to build code on a
device you own is unethical.
• This should not be tolerated by
developers: speak out!