I've been waiting for the PhoneGap Day 2013 videos to be posted before writing this blog, but it seems the publishers are taking a long time to process them, so, here goes, without pointers to the videos...
PhoneGap Day 2013 was held in [beautiful] Portland, Oregon at the Leftbank Annex, same great location as last year. Intel was one of several sponsors, which allowed us a quick fifteen minute presentation slot on the schedule, giving us a chance to explain why Intel loves HTML5 (we get asked that question a lot) and do a [very] quick plug for our new Intel* XDK tool, for creating hybrid HTML5 mobile apps.
Significant news of the day: Cordova* 3.0 was released (old news now :-). Brian LeRoux has written a summary of what's new in Cordova 3.0, essentially:
- PhoneGap* Command-Line Interface (works on top of Cordova CLI)
- InAppBrowser (formerly known as the ChildBrowser plugin)
- Globalization API (think of this as regionalization tools)
- All PhoneGap APIs are now removable plugins
There was also an indication that support would be coming for Mozilla FireFox OS*, Tizen* and Ubuntu*, but no schedule was provided. Additionally, Microsoft Windows Phone* 8 and BlackBerry* 10 are now fully and officially supported by Cordova, although not by the Adobe* PhoneGap Build* system (as of this writing the Intel XDK includes a beta Windows Phone 8 build service), only when using the standard ìDIYî Cordova distributions, which means you need to have the respective developer SDKs (Microsoft* Visual Studio* 2012 and QNX* Momentics* IDE) installed on your system to create an installable hybrid mobile image for these platforms.
Unfortunately, the presentation and demo gods were not kind to many of the presenters (including Intel). Troubles included: getting laptop displays to show up on the presentation screen (this was mostly a problem for MacBook Pros* not switching into "mirror mode" -- turns out the trick is Command-F1 or Fn-Command-F1); a web site that went off-line; wireless hardware that failed to connect; and a humorous near fall off the stage during a very unusual "inspirational" presentation.
When links to the videos do finally get posted (all the sessions were recorded), these are the ones I personally recommend watching (until then, the links in the list below will take you to slides, where available):
- Michael Brooks of Adobe -- PhoneGap Command-Line
- Joe Marini of Google* -- Chrome Packaged Apps
- Michal Mocny of Google -- Porting Chrome Packaged Apps to Mobile Using Cordova
- Chris Hughes representing himself -- Making Real Sh*t
- Lyza Danger Gardner of Cloud Four* -- PhoneGap Self-Defense for Web Devs
Here's why I consider the above presentations to be the highlights of the day:
Michael Brooks -- PhoneGap Command-Line
PhoneGap CLI (Command-Line Interface) is the Adobe frontend for the Apache* Cordova CLI plus their cloud-based PhoneGap Build service. It is a VERY useful tool for developers who are command-line mavens. This tool may not be interesting to those who prefer working within an IDE. However, it does make the installation, maintenance and use of local and remote PhoneGap build systems much easier to manage and use! A quick description of the CLI by the Michael can be found here: http://log.michaelbrooks.ca/post/phonegap-cli-preview. I'll try to explain it in more detail below...
Cordova CLI normalizes the process of combining your HTML5 mobile web app code with the Cordova container code and then building with the respective native [target platform] SDK tools. That is, it helps you manage the Cordova hybrid app build process (which requires that you have the target platform SDK installed on your development system -- e.g., Apple* Xcode*, Android* SDK, Visual Studio 2012, etc.). Cordova CLI also simplifies the process of locating your HTML5 mobile app project files within the build system, especially if you are building for multiple target devices (e.g. iOS*, Android, Windows 8, etc.).
This means that using Cordova CLI on a Mac OS X machine that hosts a guest Windows 8 VM, you could use the Cordova CLI to build a hybrid HTML5 Cordova app for iOS, Android, Windows 8 and any other supported target on a single development machine. For example, you could install the Xcode and Android SDKs on OS X and install VS 2012 on the Windows 8 guest VM; then install the Cordova CLI on both systems (OS X and Windows 8); and, finally, use Cordova CLI to build for each target.
PhoneGap CLI builds on top of Cordova CLI to provide an automatic push to PhoneGap Build for those cases where your local system does not contain the SDK tools necessary to do a Cordova build locally. For example, you might only have the Xcode SDK on your OS X system and are using it to build and debug Cordova apps locally for iOS targets. Once you're confident you've got your hybrid app working on iOS, you could use the PhoneGap CLI to push that project to PhoneGap Build and generate builds for Android, Win8, et al.
p.s. In addition to the respective native code SDK for each platform, the PhoneGap CLI and Cordova CLI tools require NodeJS on your system.
Joe Marini -- Chrome Packaged Apps
Michal Mocny -- Porting Chrome Packaged Apps to Mobile Using Cordova
Chrome Packaged Apps are browser web apps that can be run within the Chrome browser on supported desktops (Windows, Linux and OS X) and Chrome OS; think of them as hybrid HTML5 apps for the desktop. They utilize the Chrome API to get access to the local filesystem and other platform-specific features.
A group of Google engineers in Canada have extended the target platform for Chrome Packaged Apps to include Android and iOS mobile devices by building PhoneGap plugins that mimic [most of] the Chrome APIs. In other words, it is now possible to build a Chrome Packaged App that runs on Linux, Windows, OS X, Chrome OS, Android and iOS!
I asked Joe how much overlap they saw between the Chrome API and the Cordova API and he said they are not trying to replace the Cordova API, just make it easier to get from Chrome desktop apps to mobile device apps. Their demo also included a command-line build interface, which Joe told me is built on top of the Cordova CLI (ala PhoneGap CLI).
The Mobile Chrome Apps project was supposed to launch in August as version 1.0. We're at the end of August (at the time of this writing) and I don't see an official announcement...
Chris Hughes -- Making Real Sh*t
Watch this video, when it becomes available, for its entertainment value only; there was very little practical content. It was meant to be an inspirational talk to motivate developers to move beyond the browser and desktop and use HTML5 with "real sh*t."
Lyza Danger Gardner -- PhoneGap Self-Defense for Web Devs
This was a very good presentation. Lyza is co-founder of a small web development company located in Portland (Cloud Four). She's a very smart person and puts on a great presentation. Hers is well worth the time to watch. She goes through the pitfalls of building a hybrid app, rounding it out with some excellent advice for would-be Cordova developers. Most significant bit of advice is to make as much as possible of your mobile hybrid app work in your desktop browser, minimizing what you have to test/develop on device or in an emulator/simulator -- because that part is so difficult! (Something weíre working hard to rectify with the Intel XDK.)
Here's an interview with her by Brian LeRoux (of Adobe/PhoneGap). I hope the video does get posted because her presentation is well worth listening to and watching, both for her wit and her ability to relate the difficulties associated with creating hybrid HTML5 apps.
Like Lyza, Pamela Fox gave a similar presentation called PhoneGap Pain Points at last year's PhoneGap Day 2012, which I also highly recommend.
August 30, 2013
*some of these names and brands may be claimed as the property of others