Lately we have had a number of projects that require the development of cross-platform mobile applications, and I figured this would be a good time to introduce you to a framework that has greatly sped up our development timeline, and created more cost-effective budgets for our clients.

A few years ago we began playing around with PhoneGap - a cross-platform development framework for Mobile Applications backed by Adobe. At the time, we weren't impressed and continued developing our applications natively - having separate code-bases for say iOs, Android, and the Web version of an application. This led to difficultly managing changes across revisions, submitting updates, and organizing the projects overall. Enter Apache Cordova...

undefined

 Cordova - the open source engine behind the original PhoneGap framework was donated to the Apache foundation back in 2011 - and has been continually polished by the open source community ever since. The Apache Cordova framework is a essentially a Javascript API layer used to interface with the native code on various operating systems. (At the time of writing this Cordova supports 8 operating systems: iOs, Android, Blackberry, Windows, Unbutu, FirefoxOs, LGWebOs, and FireOs.) With Cordova you can author a project in only HTML, CSS, and JS and deploy it across all platforms. There are essentially no limitations, as you can easily create OS-specific modules that can be integrated via the JS API for any functionality not covered by the extensive list of open source plugins.

 undefined

The workflow for Cordova typically follows this general outline:

  1. Create your project in HTML/CSS/JS, using the browser
  2. Compile your project for your required platforms utilizing Cordova
  3. Open your compiled projects in their respective IDE
  4. Publish your project to the various App Stores

 There are numerous plugins available for interfacing with native functionality (https://cordova.apache.org/plugins/) such as cameras, gyro censors, etc. And you can always create your own system-specific plugins to achieve something not already included in the various plugins.

If you're looking to develop a cross-platform application, we highly recommend giving Cordova a once-over to see if it would fit your needs. In the meantime, here are some resources to get you started: