PhoneGap

mobile html, css, and js

http://goo.gl/Ol9Ao

The Problem

Target OS Development OS Language
Apple iOS Apple OS X Objective C
Google Android * Java (Apache Harmony-ish Dalik Interpretor)
RIM BlackBerry Windows, OS X HTML, CSS and JS. Also: Java
Windows Phone Windows Any .NET citizen (Silverlight runtime)
Samsung Bada Windows C++
HP webOS * HTML, CSS and JS (Also: NodeJS!)
Symbian, MeeGo * C++ (Qt)

The Problem in Summary

  • Proficient in 8 programming languages and sdks.
  • Have 8 devices to test (emulators not enough to ship).
  • Run 2 operating systems (virtualized or otherwise).

More Devices Every Year

  • Tablets on the rise; mostly iPads and Androids.
  • Feature phones replacing smartphones.
  • Smartphones accessing the web overtook desktop browsers accessing the web in 2010.
  • Responsive design in infancy.

Developer Prediction Impossible

  • 2008 BlackBerry still dominated global marketshare for app developers.
  • 2009 iOS rose to dominance.
  • 2010 Android began domination.
  • 2011 Android dominance continued ...but now fragmentation between versions high.
  • 2012: ?!

The Rise of Web Operating Systems

many operating systems, many sdks, many devices, with more coming, no clear winners or consolidation

Problems Web Technology Solved

  • Many Operating Sytems.
  • Many devices and screen sizes.
  • Many SDKs.

Problems Remain

  • The web is sandboxed. This is a feature, not a bug.
  • The currently web has a very poor offline story.
  • The web cannot participate in app store distribution revenue (or discovery).
  • The web cannot access Device APIs.
  • The web has shitty tooling.

Enter PhoneGap

  • Hybrid development: combining the strengths of the web with native envs.
  • First project to bridge a native browser instance to Device APIs.
  • All the benefits of the web without hiding the native platforms internals or tooling.

PhoneGap IS NOT

  • An IDE (we do not dictate tooling choices). That said, Dreamweaver has great PhoneGap support!
  • A language (the web is the platform).
  • Proprietary. Everything we do with PhoneGap is open source and Apache licensed.
  • A runtime (shipping a runtime is prohibitive to downloading apps over a network).

PhoneGap IS

  • Free open source software (Apache V2 License).
  • Built with web standards, existing and emmerging.
  • Open across many platforms.
  • Active and diverse development community and committership.

PhoneGap is Powered by Apache Cordova

  • PhoneGap is a distribution of the open source Apache Cordova Project.
  • There is no difference between the two; we plan to integrate our cloud services for SDK fallback eventually.
  • PhoneGap always has been will always remain free open source software.
  • Think: Cordova is to PhoneGap as WebKit is to Chrome.

PhoneGap Corporate Support

  • Adobe
  • IBM
  • Microsoft
  • RIM
  • Nokia
  • Google

PhoneGap and Web Standards

  • We track various W3C groups.
  • We focus largely on W3C Device API working group.
  • Also track HTML5 webapps working group, W3C Widget Group, and others.

PhoneGap Philosophy

  • Simple is better; when in doubt: use brute force.
  • The web solved cross platform across devices.
  • Free open source software has proven to be the best model for platform development and ecosystem creation.

PhoneGap Philosophy: Simple is Better

  • A JavaScript based foreign function interface between a chromeless browser instance on the device and the native platform code.
  • Sometimes we call this “the hack” or the “the bridge”. On iOS we used the URL for the bridge!
  • It is a blunt method, requiring brute force indeed, we reimplement PhoneGap for every platform we support in the preffered dev env of that platform.
  • This technique has scaled to 8 platforms and up to 300 operations per second. PhoneGap is very much fast enough for nearly any native call negotiation use case.

PhoneGap Philosophy: The Web Solved Cross Platform

  • Apple iOS
  • Google Android
  • RIM BlackBerry
  • Microsoft Windows Phone
  • Samsung Bada
  • Nokia Symbian
  • Nokia Qt
  • HP webOS

PhoneGap Project Goals

  • the web is a first class development platform

  • → installable web apps; no sandbox; good tools
  • cease to exist

  • → reference impl for web standards; the W3C DAP was created because of PhoneGap

PhoneGap is FREE *

  • to use
  • to modify
  • to distribute
  • to sell

* as in speech, not beer!

Device APIs

  • Are truely cross platform abstraction targets.
  • Sensors.
  • Data.
  • Out.

Device Sensors

  • Camera
  • Accelerometer
  • Magnometer
  • GPS

Device Data

  • Filesystem
  • Media
  • Contacts

PhoneGap & UNIX Philosophy

  • We advocate freedom of choice for devlopers.
  • We advocate small, single purpose, and loosely coupled tools. Pro devs compose their env to maximize their productivity for solving the problems they care about at hand. We're here to help developers not lock them in.
  • We do not dictate tooling for gui development; we leave that job to the open web community and we equally support everyone (jquery, dojo, sencha, yui, etc).
  • We do not dictate IDE choices; everything can be done with YOUR favorite tool as long as it supports text.

PhoneGap Plugins: Unlimited Extensibility

  • Every PhoneGap API is a PhoneGap plugin.
  • 3rd parties building plugins now too.
  • Facebook most notably. Salesforce too.

PhoneGap Problems and Weaknesses

  • The web vs native.
  • Device browser variance.
  • Web dev is hard.

PhoneGap Plugins invalidate the web vs native debate.

With PhoneGap the web is native!

PhoneGap Browser Parity

  • PhoneGap is based on the onboard platform SDK WebKit ...but these are different forks.
  • We can, and sometimes do, build our own WebKit; but executable size would be >20mb vs <25kb.
  • Android performance not quite to the same level as iOS.
  • Windows Phone is running IE9 (which actually does have great modern standards compliance and performance).

Web Dev is Hard?

Hosted Services

Support Services

  • Security for enterprise customers.
  • Bug fixes and custom patches.
  • A phone number to call anytime.
  • Advisory hours and custom development problem solving.

First Priority is Contribution

  • An open src project is only as healthy as its activity.
  • First priority is recruitment of committers.
  • When we can’t recruit for committing to the open source project we want them to open source plugins.

Release Philosophy

  • We ship on the classic MAJOR.MINOR.PATCH scheme.
  • Generally agreed upon goal for each month. Ship an RC two weeks in. Hardening and MINOR end of the month.
  • We prioritize shipping over a particular feature, issue, bug, or task.
  • Aim to ship the next MAJOR in July. 2.x!!!!

We just shipped 2.0!

  • Plugins for all the things.
  • Consistent automations and CLI tooling for common development tasks.
  • Windows Phone
  • CordovaView

Useful Links

Tools & Services

  • Proto
  • Ideas
  • Fireworks
  • Browserlabs
  • Business Catalyst
  • Dreamweaver
  • Shadow
  • Edge
  • Fluid grid layouts
  • CSS transitions
  • PhoneGap Build
  • Business Catalyst
  • jQuery Mobile swatches
  • Faster FTP

HTML apps on your mobile device

HTML apps on your mobile device

Shadow

  • Design with web standards
  • Test, preview, debug
  • Multiple devices
  • Easy setup

html.adobe.com

A Better Web

&

Awesome Tools

Join us for PhoneGap Day EU 2013

September, Amsterdam