Apache Cordova is a mobile application development platform which allows you to create mobile apps using HTML5, JavaScript, and CSS3 through a set of Cordova development tools which are then turned into a native container allowing you to access the device functions of several platforms.

Apache Cordova is now one of the most popular and top frameworks for building cross-platform mobile apps as it allows developers to easily write one set of code which can then be published on nearly every platform out there.

To set off on your Apache Cordova development journey, check out Apache Cordova’s “Get Started Fast” guide with all the information you need to embark on that journey and our blog post that lists the top Apache Cordova blogs, newsletters, and online communities.

You will also need some tools to help you get started, which is why we’ve compiled below the essential tools needed for Apache Cordova development.

Apache Cordova Development Tools

Apache Cordova Frameworks

PhoneGap is the original and most popular distribution of Apache Cordova. Turn your HTML, CSS and JavaScript into an app on your device in minutes using our simple desktop and developer apps.

Ionic is a front-end SDK for building cross-platform mobile apps. Built on top of Angular, Ionic also provides a platform for integrating services like push notifications and analytics.

Comprehensive cloud-powered and framework-agnostic set of tools Monaca supports both online and offline development, debugging with live-reload feature and cloud build experience.

Custom Elements-based HTML5 framework offers a large selection of components and responsive layout support. Onsen UI lets you create professionally designed multiplatform apps without acquiring additional skillset.

Cocoon is a Cordova based cloud service for building native HTML5 apps and games. Cocoon is focused on providing the best webview engines and features like Canvas+, JS encryption or a custom Developer App.

Framework7 is a free and open source mobile HTML framework for developing hybrid mobile apps or web apps with iOS & Android native look and feel.

Evothings Studio provides Cordova developers with a rapid development workflow, tutorials and example apps for the Internet of Things. Support for Bluetooth Low Energy (BLE) and other IoT related technologies.

Mobiscroll is a collection of cross-platform UI controls for delivering polished iOS, Android & Windows Phone apps. Framework agnostic, use it with plain Javascript, jQuery, Angular, React or Knockout.

Apache Cordova IDEs

Popular IDE for building cross-platform apps for Android, iOS, and Windows. Complete with advanced build and debugging support.

The Cordova Tools Visual Studio extension allows you to debug your code, find commands in the Command Palette, and use IntelliSense to browse objects, functions, and parameters in plugin APIs. This extension works with any Cordova-based project.

App Builder is a complete IDE for Microsoft Windows which allows to create HTML5 and native apps without programming knowledge. Offers dozens of controls and actions ready to be used in your apps and lot of app samples to learn it.

NSB/AppStudio is an IDE for webapps/native apps. One step install includes complete PhoneGap integration, plus Bootstrap, jQuery Mobile and jqWidgets. Drag and Drop Designer. Easy programming in JavaScript or BASIC. Windows and MacOS.

Apache Cordova CLIs

Apache Cordova’s official command line tool.

The Cordova CLI runs on Node.js which is a JavaScript runtime built on Chrome’s V8 JavaScript engine.

The Cordova CLI is distributed as an NPM package which is the package manager for JavaScript and the world’s largest software registry.

A command line tool to install and uninstall plugins for use with Apache Cordova projects.

Command line tool for Apache Cordova contributors to manage Apache Cordova repositories, and to help with releases and pull requests.

Apache Cordova Libraries

A unified JavaScript layer for Apache Cordova projects.

Contains npm modules used primarily by Cordova and plugman.

Exposes shared functionality used by cordova-lib and Cordova platforms.

This module is used for creating Cordova style projects. It also includes support for Cordova templates and can fetch templates from npm and git.

This package can be used to install and uninstall Node.js packages using npm.

This module can be used to serve up a Cordova application in the browser. It has no command-line, but rather is intended to be called using an API.

Apache Cordova Testing Tools

Instabug is the top bug reporting tool for mobile apps. It provides the most useful metadata on the market and exceptional user support. It is also known for its “Shake to Send” feature, an intuitive user gesture that automatically activates bug reports from within the apps on which Instabug is installed.

With each bug report, Instabug automatically captures a screenshot that users can annotate by drawing on, blurring, and magnifying parts of it. Users can also attach further screenshots, voice notes, and screen recordings of the app to provide further context to their report. In addition, Instabug automatically sends detailed user data to developers, including the user steps needed to reproduce each bug, network request and console logs.

The cordova-plugin-test-framework plugin defines the interface for Cordova plugins to write tests and provides a test harness for actually running those tests.

Tests run directly inside existing Cordova projects, so you can rapidly switch between testing and development. You can also be sure that your test suite is testing the exact versions of plugins and platforms that your app is using.

Apache Cordova Paramedic runs Cordova medic/buildbot tests locally.

Apache Cordova Mobile Spec Suite is a set of automated & manual tests that test Cordova core functionality.

Apache Cordova Plugins

This plugin provides an implementation of an old version of the Battery Status Events API. It adds the three events batterystatus, batterycritical, and batterylow to the window object.

This plugin defines a global navigator.camera object, which provides an API for taking pictures and for choosing images from the system’s image library.

This plugin defines a global device object, which describes the device’s hardware and software.

This plugin provides access to some native dialog UI elements via a global navigator.notification object.

This plugin implements a File API allowing read/write access to files residing on the device.

This plugin provides information about the device’s location, such as latitude and longitude. Common sources of location information include Global Positioning System (GPS) and location inferred from network signals such as IP address, RFID, WiFi, and Bluetooth MAC addresses, and GSM/CDMA cell IDs.

You can show helpful articles, videos, and web resources inside of your app. Users can view web pages without leaving your app.

This plugin provides the ability to record and play back audio files on a device.

This plugin provides access to the device’s audio, image, and video capture capabilities.

This plugin provides an implementation of an old version of the Network Information API. It provides information about the device’s cellular and wifi connection, and whether the device has an internet connection.

Cordova plugin to set/lock the screen orientation in a common way for iOS, Android, and windows-uwp. This plugin is based on Screen Orientation API so the API matches the current spec.

This plugin is required to work with splash screens. This plugin displays and hides a splash screen during application launch.

The StatusBar object provides some functions to customize the iOS and Android StatusBar.

This plugin provides a way to vibrate the device.

This plugin implements a whitelist policy for navigating the application webview on Cordova 4.0.

This plugin makes Cordova use the WKWebView component instead of the default UIWebView component and is installable only on a system with the iOS 9.0 SDK.

Apache Cordova Templates

A simple Apache Cordova Hello World application. This is used as the default app template when creating new projects.

This is a reference for building and publishing Cordova templates.