Cordova

Mobile App Development

Cordova Development - The 12 Primary Characteristics

In this article we are going to go through all the pros and cons of the Cordova technology for the purposes of application development. The categories which we are going to use for comparison are the same categories used for the Mobile App Development page. 

To learn more about other app development technologies (e.g. Flutter, React Native, Swift etc.) go to the Mobile App Development page.

INTEGU-Apache-Cordova

Table of Contents

1. Webview

Cordova is a webview technology intended for both the iOS and Android OS.

However, since it is essentially a website wrapped in a smartphone application, it can also be reused as a web service. This is of cause dependent on the level of necessary integration with the smartphone device APIs.

Cordova has been around for several years and have through that time become the source for multiple other frameworks, which use the Cordova technology to create their own version of a webview technology. We will in the next section take a look at one of its offspring: Ionic.

INTEGU-Apache-Cordova

2. Development Cost

Cordova is together with Ionic among the cheapest development technologies, since the code base can be reused, not only for both iOS and Android, but also for any web project.

This also means that there might be a chance that the developer will not even have to create an app for mobile platforms, if you are already in possession of a website which mirrors the intended content of the app. Although this might be unlikely, it is at least a possibility, if you for example want to recreate an online store, a news site, or a blog as a mobile application.

3. Programming Language

Cordova is a smartphone-application-wrapper for web development projects, and similar to the majority of web development technologies it is written in JavaScript.

If you want to utilize a framework like Angular or React, there is nothing stopping you from wrapping these types of project in a Cordova-wrapper.

However, when compared with Ionic, Cordova, might require a bit extra boilerplate code in order to work. Whereas Ionic is intended to be designed and developed using either Angular or React.

4. Page-By-Page Adoption

Doing a page-by-page adoption with Cordova is not recommended. However as with all programming, it can be done, but it will be the equivalent to working on two projects, where one is dependent on the other.

5. Supporters

Originally developed at iPhoneDevCampin San Francisco. The original PhoneGap project was released by Nitobi.

Currently, Adobe purchased Nitobi and later re-released the PhoneGap project under the new name of Cordova.

Since Adobe have release Cordova under the Apache Software Foundation, it has opened up the technology to a variety of developers around the world. It is therefore difficult to determine who exactly is the main contributor and maintainer to the project. 

INTEGU-PhoneGap

6. Open Source

Cordova is open source. The repository can be found here.

Since Adobe have release Cordova under the Apache Software Foundation, it has opened up the technology to a variety of developers around the world. It is therefore difficult to determine who exactly is the main contributor and maintainer to the project.

However, if we take a quit glance at the top contributors within the past two years, it shows us that both developers with a background in PhoneGap and Ionic are still contributing to the project.

7. Device API-Access

Cordova can access native APIs through plugins. However, these plugins will have an effect on the performance of the application.

Additionally, not all plugins are built with the same attention to detail, which means that you might experience some unwanted side-effects when compared to how the native device API is intended to function.

8. Performance

Cordova has the slowest performance of all the mobile technologies we have reviewed. This is because the code is never compiling to native and therefore never gains a direct access to all the native APIs

Adobe even warns that Apple might reject apps build with Cordova if their performance is too slow. Unfortunately, Cordova is not alone with this issue, as it is an inherited disadvantage of the webview technology.

9. UI Consistency

There is no native UI experience when developing a Cordova application. Instead this has to be handled through custom HTML and CSS components.

This might not be an issue for your application in the design and development phase. However, Apple has unfortunately set a requirement that any app published through their App Store should have the look and feel associated with the iOS ecosystem. This therefore means that the app might be rejected from the App Store, if you do not take the time and consideration to design the application according to the iOS ecosystem.

10. Hot Reload

Cordova does not support hot reload. This disadvantage will down the line convert into many wasted developer hours spend on waiting.

Although it is not possible to get hot reloading capabilities when working with Cordova, it is possible to enable live reloading (stateless reload) through the use of third-party plugins (Cordova Browser-Sync Plugin)

11. Require Native SDK

When developing the Cordova project, there is not need for neither the Android or iOS SDK, since you will get the same results from launching the project through the Chrome browser and setting the viewport settings to mobile with touch.

However, when the time comes to deploying the application to Android and iOS it will be require to install the native SDKs.

As mentioned in the Swift section, deploying to an iOS device requires Xcode, since it is the only way to get the iOS SDK. Unlike other non-native technologies (e.g. NativeScript), Cordova does not provide a way of deploying the app onto an iOS. This means that Xcode is the only option.

On the other hand, it is easy and simple to deploy the application to an Android phone, through the use of Android Studio to obtain the Android SDK.

12. Require Specific IDE

With Cordova it is possible to select your preferred web development IDE.

Dependent on which one you choose, you might be able to find special plugins or tools, which will improve the experience of developing with Cordova. However, from an objective perspective, this is probably more a question of individual preference. Cordova highlights the Visual Studio and App Builder IDE as potential developer environments on their homepage.

When you eventually want to deploy your application to a physical device, it might be necessary for you to download and install Android Studio or Xcode.

Recommended Reading

Article

  • Introduction to Cordova – Wern Ancheta – Blog
  • Cordova – Homepage – Cordova – Website
  • Ionic – Homepage – Ionic – Website
  • How to wrap Anuglar with Cordova – Elia Palme – Blog
  • Cordova – Contributors – GitHub – Website
  • Cordova Repository – GitHub – Website
  • PhoneGap advice on dealing with Apple Application rejection – Adobe – Website  (remember that Cordova is the open source version of PhoneGap)
  • Cordova Browser-Sync Plugin – npmjs – Website
  • Cordova – iOS SDK – Cordova – Website
  • Cordova – Android SDK – Cordova – Website
  •  

About

Hi, I'm the Author

My name is Daniel H. Jacobsen and I’m a dedicated and highly motivated software developer with a masters engineering degree within the field of ICT. 

I have through many years of constantly learning and adapting to new challenges, gained a well-rounded understanding of what it takes to stay up to date with new technologies, tools and utilities. 

The purpose of this blog is to share both my learnings and knowledge with other likeminded developers as well as illustrating how these topics can be taught in a different and alternative manner.

If you like the idea of that, I would encourage you to sign up for the newsletter.

Cheers! 🍺

Didn't Find What You Were Looking For?

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Scroll to Top
INTEGU - Cookie-consent

INTEGU uses cookies to personalize your experience and provide traceability for affiliate links. By using the website, you agree to these terms and conditions. To learn more see the privacy policy page.