Developing apps with Apache Cordova

App Factory

© Lead Image © venimo,

© Lead Image © venimo,

Article from Issue 193/2016

Roll out an app elegantly and quickly for up to eight operating systems using the Cordova framework. According to the Apache Foundation, the only requirements are knowledge of HTML, CSS, and JavaScript.

In early 2009, the small company Nitobi introduced a software tool named PhoneGap. Web developers could use this tool to develop complete apps in HTML, CSS, and JavaScript that simultaneously ran on iPhones, Androids, and BlackBerrys. Only two-and-a-half years later, Adobe took over Nitobi, and PhoneGap along with it. Adobe passed the source code on to the Apache Foundation, which is developing the framework under the name Cordova [1] (see the "Oh, You Beautiful Cordovas" box).

Oh, You Beautiful Cordovas

Cordova is a small town in an idyllic location on the Gulf of Alaska. Geographers will find another place of the same name in central Alabama. Cordova is also the name of a suburb of Memphis, Tennessee. However, it is much more likely that you will know the Spanish city of Córdoba in Andalusia, which is also capital of the Province of Córdoba. In English, Córdoba is usually written as Cordova.

The takeover did not change the basic way the framework functions. As a developer, you can program a complete app in HTML, CSS, and JavaScript in Cordova, which then runs on iOS, Android, BlackBerry 10, Windows, Firefox OS, WebOS, Ubuntu Touch, and even as a normal web application in the browser. Cordova also supports Amazon's FireOS, although this option is considered deprecated.

Practical Testing

The source code is subject to Apache License 2.0. Cordova has already helped launch numerous apps, including fitness app Sworkit [2] and the baby monitoring software Clever Baby [3]. Many other developer tools harness the Cordova framework and development environment, such as Ionic [4] and PhoneGap by Adobe [5]. The company continues to use the original name of the project.


First, Cordova requires the desired target platforms' SDKs for its work. If you want to offer your app on Android devices, you have to install the Android Studio or Android SDK (aka Android command-line tools) in addition to a Java Development Kit (JDK)[6]. In the case of Android, some environment variables should also be set; for example, JAVA_HOME prompts the JDK installation, ANDROID_HOME is the directory with the Android SDK, and PATH should contain the tools and platform-tools subdirectories from the Android SDK.

Node in the Bag

A range of command-line tools make it easier to build apps as a Cordova developer. These tools are based in turn on Node.js [7], which is found in most distros' repositories. Cordova expects the framework under the program name node, although Ubuntu calls the program nodejs. To remedy this, additionally install the nodejs-legacy package, which adds a matching symlink to nodejs.

The npm command, which is the Node.js package manager installs Cordova with a simple:

sudo npm install -g cordova

A short moment later, you can create a first small sample application.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Tutorials – Cordova Sensor

    Frameworks like Cordova make creating simple mobile apps quite easy. Making apps that use your phone's sensor is slightly trickier, but, thanks to a new universal standard, things are not as hard as you may think.

  • Tutorials – Docker

    You might think Docker is a tool reserved for gnarly sys admins, useful only to service companies that run complicated SaaS applications, but that is not true: Docker is useful for everybody.

  • Electron

    GitHub's Electron project brings the benefits of web programming to the realm of desktop applications.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More