Thoughts from the Wet Coast

The musings of an ASP.NET Developer from Canada's We(s)t Coast

Apache Cordova - The Framework formerly known as PhoneGap

Last Modified: May 2 2017
Oct 26 2012

In my previous post I reviewed Icenium - a new ICE (Integrated Cloud Environment) that is based on Apache Cordova.  But what is Apache Cordova? 

About a year ago Adobe announced the purchase of Nitobe - a small Vancouver company - whose main claim to fame was PhoneGap - a framework for building cross-platform mobile Apps.  With the purchase of Nitobe, the PhoneGap framework was released as an Open Source project and submitted to the Apache Software Foundation as an Incubator project.

The Nitobe developers who were transferred to Adobe have continued to work on Apache Cordova, and the project is currently at version 2.1.  Apache Cordova is a set of device APIs that allow developers to access various device functions such as the Accelerometer or the camera using JavaScript.  Combined with a JavaScript UI Framework such as Dojo jQuery Mobile or Kendo UI this allows developers to write smartphone applications in HTML 5 CSS 3 and JavaScript.

As Apache Cordova APIs allow developers to access device functions without using native code (Objective-C for iOS, Java for Android or Silverlight/C# for Windows Phone) apps can be created for multiple platforms using the same code-base. Currently Apache Cordova is available for the following platforms:

  • iOS
  • Android
  • Blackberry
  • Symbian
  • Windows Phone
  • WebOS
  • Bada

which pretty much covers 99% of all smartphones.

The Apache Cordova API can be broken down into 13 areas:

  • Accelerometer - work with the device’s motion sensor capability
  • Camera - control the device’s camera(s)
  • Capture - capture media files using the devices media capabilities
  • Compass - obtain the direction the device is pointing
  • Connection - check the network state
  • Contacts - work with the device’s contacts database
  • Device - get device specific info
  • Events - hook into native events through JavaScript
  • File - manage the devices native File System
  • Geolocation - work with the device’s location sensors (GPS)
  • Media - record and playback media
  • Notification - work the device’s notification system
  • Storage - hook into the device’s native storage system

Apps built with Apache Cordova are still packaged using the platform SDKs and can be made available in the relevant App Store.

Icenium, Telerik’s new ICE which I reviewed earlier, provides support for iOS and Android, but I already have a developer account for Windows Phone so I can use that account to deploy any app I develop with Apache Cordova to my Samsung Focus.

While it is true that Icenium offers a more complete developer experience than working with the native platform tools and the relevant Apache Cordova SDK, it is limited by its restriction to iOS and Android devices.  I have a Windows Phone and an iPad so I will using both approaches over the coming few months. Hopefully this will be an ongoing set of blogs as I start to develop some real apps with this exciting framework.


The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.