Flutter VS Apache Cordova: Choosing The Best Technology For Cross-Platform Development

    In 2021, choosing a cross-platform technology for developing your app can be difficult. Ten years ago, when Surf just started as an app developer, it wasn’t so. Now there are plenty of cross-platform frameworks to choose from, and each of them has its own pros and cons, avid supporters and critics. Apache Cordova and Flutter are among the most popular cross-platform technologies in 2021. In the article, we’ll compare both of them to help you choose on what to build your next app.

    Flutter and Cordova. Overview

    Apache Cordova framework was created by Nitobi in 2009. Several years later, the company was purchased by Adobe Systems, and Cordova was rebranded as PhoneGap. Later its name was changed again to Apache Cordova, so, basically, PhoneGap and Cordova are the same technology. Among popular apps built on Cordova are Untappd, Localeur, SparkChess and others.

    Flutter is a newer framework in comparison to Cordova. Its first version was presented by Google in 2017, and Google still manages the technology. You’ve definitely come across apps built on Flutter, among which multiple Google apps (Stadia, Ads, Assistant), Baidu, Groupon, Grab and others.

    How they work

    Cordova is an open-source development framework, which runs on standard web-technologies: JavaScript, HTML5 and CSS3. Basically, an app built using Cordova is multiple HTML-pages in a platform’s native ‘shell’. Thanks to the active developer community, there are many free-to-use plugins for the framework built over the 12 years since its initial release.

    Flutter framework is a closed ecosystem running on Dart programming language. Apps made with Flutter consist of widgets, which can be considered app’s ‘building blocks’. Being supported by Google and an ever-growing community, Flutter comes with an extensive library of widgets for developing modern and beautiful mobile applications.

    Testing and fixing

    A quick and easy testing process plays an important role in the overall app development speed and quality. Flutter framework supports automated testing, which analyzes code and marks down possible mistakes, and it also has Hot Reload feature, which instantly updates the app after any changes in the code — no refresh of the whole app is required. 

    While having some convenient debugging tools, Apache Cordova doesn’t have such automated code analysis functions as Flutter. Developers can implement LiveReload feature, which is quite similar to Hot Reload, to save time on recompiling the app after code changes.

    Who wins: Flutter.


    Apps on Cordova use a web-based UI running in a WebView. Because of this, an app has one visual style and can maintain a similar look across iOS, Android and other platforms. While it might have benefits in some situations, this uniformity comes at a cost: apps on Cordova often don’t feel native and look more like websites inside an app.

    Screen mockups: 

    Spark Chess on Cordova (Android and iOS)
    Groupon on Flutter (Android and iOS)

    Flutter doesn’t use native UI elements of the platform, but it automatically updates the look and the feel (scrolling speed, tapping animation) according to the platform’s visual style. This way, apps on Flutter have that native feel of UI, which is treasured by many phone users.

    Who wins: Flutter.


    As mentioned before, Cordova apps execute in a WebView, and while WebViews on smartphones with high-end hardware are quite powerful, the WebViews of cheaper models can’t boast outstanding performance, so any apps built on web-based frameworks are bound to suffer from performance issues.

    Flutter uses its own rendering engine, and the default availability of native components eliminates the need for a ‘communication bridge’ between its modules, which guarantees a smooth experience even on platforms with older hardware.

    Who wins: Flutter.

    How easy it is to learn the framework

    Because Flutter uses Dart programming language, a brainchild of Google, most of the developers are initially unfamiliar with it (unless they’ve worked at Google). Of course, learning a new coding language takes time and effort, but, according to many Flutter developers, learning Dart, compared to other programming skills, is far from hard.

    Contrary to Flutter, Apache Cordova runs on web-technologies familiar to almost any programmer: JavaScript, CCS3 and HTML5. This significantly reduces time required to start developing apps on Cordova.

    Who wins: Cordova.

    Developers availability

    Today, Flutter and Cordova share second and third places, respectfully, among the most popular cross-platform technologies. However, from 2019 to 2020, Cordova’s popularity dropped by almost ten percent, while Flutter’s popularity gained the same amount. Anyway, you shouldn’t have trouble finding a developer for any of these two frameworks, they are, after all, among the most popular.

    Developers availability for different cross-platform frameworks

    Who wins: Flutter.


    Over 12 years Apache Cordova has gained many supporters in the developer community and, being supported by Adobe, the framework will still be a popular tool for cross-platform development in the years to come. But, as mentioned earlier, its popularity waned recently, and it might decrease even further, giving away its share to other cross-platform technologies.

    Compared to Cordova, Flutter’s future looks brighter: the technology is supported and promoted by Google and is already the second most popular cross-platform framework, despite being only 5 years old.

    Who wins: Flutter.

    What to choose for your project

    • Go with Cordova, if:

    – you need a quick app prototype and have no time to learn a new coding language;

    – your goal is a simple app with an interface similar across platforms and no graphics or animation.

    • Choose Flutter, if:

    – you need an app for mobile and desktop with great performance;

    – there will be graphics and/or animation in your app.

    To sum things up

    Apache Cordova is a mature cross-platform framework based on web-technologies. It is easy to learn, since the majority of developers is already familiar with JavaScript and HTML, and can be a great tool for quick prototyping and building simple apps. Because of its technological limitations, apps on Cordova suffer from mediocre performance and can’t provide UI’s look native to a platform they run on. There are lots of free-to-use plugins and modules created by Cordova’s community, but, in recent years, its popularity has steadily decreased.

    Flutter is a newer technology and runs on its own coding language. Although this can stop some developers, mastering Flutter opens up the creative possibilities of a modern, powerful cross-platform framework with top-notch testing and debugging tools, which only grows in popularity.

    Brief comparison of Flutter & Apache Cordova key characteristics

    Having over a decade of experience in app development, we at Surf decided to go with Flutter and currently use it to create cross-platform apps for our projects.

    If you think it’s time to go from sketches and notes on your next app to a real thing — we are here to help. Tell us briefly about the project, and we’ll return to you with an approximate quote for developing your app.