What is Cordova?
Cordova is a mobile development framework that allows developers to build applications for multiple platforms using HTML, CSS, and JavaScript.
Cordova’s role in app development
Apache Cordova is the open-source version of PhoneGap, Adobe’s now discontinued commercial mobile application framework. It was released in 2009 and allows the development of hybrid web applications, which means they also run on platforms like iOS, macOS, Android, and Windows. Cordova-based apps have access to native features, but the UI is not rendered using native components.
Cordova was released soon after the first smartphones and became a trailblazer of cross-platform mobile app development. Nowadays, there are powerful alternatives: Frameworks like Flutter and React Native also allow developers to target multiple platforms with a shared codebase, but provide a more natural user experience due to how they handle UI components.
Is Cordova depricated?
While Cordova is not fully deprecated yet, several of its components have been deprecated over the years:
Deprecated platforms
The following Cordova platforms have been deprecated and are no longer being developed or supported:
- apache/cordova-blackberry
- apache/cordova-firefoxos
- apache/cordova-ubuntu
- apache/cordova-wp8
- apache/cordova-tizen
- apache/cordova-qt
- apache/cordova-webos
- apache/cordova-amazon-fireos
- apache/cordova-windows
- apache/cordova-wp7
- apache/cordova-bada
- apache/cordova-bada-wac
- apache/cordova-bada-osx
Deprecated core plugins
Several core Cordova plugins have also been deprecated, including:
- cordova-plugin-compat
- cordova-plugin-console
- cordova-plugin-contacts
- cordova-plugin-globalization
- cordova-plugin-wkwebview-engine
Deprecation of the cordova-osx platform
Additionally, the cordova-osx platform for building macOS apps has been officially deprecated, with the recommendation to migrate to cordova-electron or use Mac Catalyst with cordova-ios instead.
While Cordova itself is still actively maintained and used by many companies, its declining popularity and the deprecation of several components indicate that it may eventually be phased out or replaced by newer technologies like Capacitor. However, as of now, the core Cordova project is still actively developed and not fully deprecated.
Hybrid app development with Cordova
Cordova allows you to develop a web application, wrap it in a sandbox browser to run it on mobile platforms, and give it access to device features like the camera or accelerometer. This is especially useful if you want your application to be accessible both via a web browser and as a download in app stores.
The downside is that your application’s UI may feel different to that of natively developed software. For this reason, you should consider using Cordova together with an UI-centered framework like Ionic. Ionic also offers a successor to Cordova called Capacitor.
Is Cordova the right choice for your project?
When it comes to cross-platform development, Cordova offers a lot of advantages. But is it the technology you should use for your next app?
A hybrid approach can save a lot of time and resources, as you can build both iOS and Android apps with the same codebase. Since many software engineers are already familiar with the web technologies used by Cordova (HTML, CSS, and JavaScript), recruiting talent for your project can be easier than for other frameworks and languages.
Keep in mind that you will probably need additional frameworks to effectively develop with Cordova. Cordova gives your app access to the device’s hardware, but you could, for example, create the app’s structure with Angular, and handle the UI with Ionic. If you prefer an all-in-one solution, you might want to have a look at React Native instead.