On Github LeeFlannery / iamphonegap
An introduction to PhoneGap
... is a mobile development framework
... where apps are written in HTML/CSS/JS
... and they are deployed like a native mobile "app."
PhoneGap apps are "hybrid" (a.k.a "cross platform") applications - part native, part mobile web.
Hybrid apps can have some features of a native mobile app, but are coded like a mobile web site.
A PhoneGap webview is a program wrapper around the "in-app" full-screen browser for your mobile platform.
Cordova is the free open-source version of the PhoneGap engine. Cordova is under the stewardship of the Apache Software Foundation.
PhoneGap is Adobe's branded version of Cordova. The PhoneGap brand includes a distribution of Cordova and extends to some of Adobe's non-free offerings.
Note: probably not what Adobe has in mind ...
It's possible someday that HTML5 will give you more access to native device APIs.
e.g. geolocation is already possible in some browsers with HTML5 JS APIs.
$ npm install -g cordova $ cordova create ohaiProject com.lolcats.ohai ohaiApp
... builds your scaffolding app.
Paid service from Adobe, point it to your repo, they'll compile "in the cloud" and send you binaries.
iOS - need XCode, need to launch from XCode
Android - need Android SDK, can run emulator from command line
iOS - need XCode and developer account
Android - just need the SDK, can launch from command line
With iOS simulator and Safari devtools
Run a PhoneGap app in a browser, blocking or catching device API events.
Small little JS snippets, search Github Gists there are a ton of examples.
Kinda low rent, works best when you don't care a lot about native API use.
jQuery Mobile?
Twitter Bootstrap?
Angular JS?
Ember JS?
"Use HTML. It works really well." - Brian Leroux
The best framework to use with PhoneGap is the one that suits your team and the app you're trying to build.
App Store Requirements:
Up to 100 devices, Test Flight, loading directly with XCode possible
Google Play Developer Console Requirements:
// Wait for device API libraries to load // function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); } // device APIs are available // function onDeviceReady() { // Register the event listener document.addEventListener("menubutton", onMenuButton, false); } // Handle the menu button // function onMenuButton() { alert ("Hey stop pushing that!"); }
If you can live with the trade-offs, PhoneGap is a viable option that gets you into the app store door.