Contents
    Eugene Saturow Head of Flutter

    Flutter VS Apache Cordova: Choosing the Best Technology for Cross-Platform Development

    In 2022, 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. Many developers are familiar with Apache Cordova, as it is one of the oldest cross-platform frameworks, and Flutter is among the most popular cross-platform technologies in 2022. 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 actively develops the technology and makes its new versions more effective and better equipped with tools and possibilities. 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’. So it looks like a website inside a mobile app. Apps built with Cordova use a single native widget Web View, that performs all actions and interfaces of the app and make them look native-like. Thanks to the active developer community, there are many free-to-use plugins for the framework built over the 13 years since its initial release.

    Flutter framework is an ecosystem running on Dart programming language. Flutter uses its own graphics engine Skia, every element is drawn on the canvas. Apps made with Flutter consist of widgets, which can be considered the app’s ‘building blocks’. Flutter doesn’t use native widgets, but its own. And it has some pros and cons: at one point, it provides high-speed performance and fast rendering. But at the same time, an app built with Flutter widgets can differ from the native one if you choose a unified design for all platforms instead of a native look.

    Flutter is an open system based on open-source resources, and it has gathered a huge developer community evolving framework. Being supported by Google and an ever-growing community, Flutter comes with an extensive library of widgets for developing modern and beautiful mobile applications.

    Learn more about Flutter advantages we have tried out and successfully used as Flutter early adopters
    Learn more

    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.

    UI

    Apps built with Cordova use a web-based UI running in a WebView. This means, 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)
    Video streaming platform on Flutter (Android and iOS). Developed by Surf

    As for Flutter, you can choose whether your app will look native-like or will have a unified design for all platforms. There are tools that allow you to flexibly customize it. 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.

    Performance 

    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 it eliminates the need for a ‘communication bridge’ between its modules, which guarantees a smooth experience even on platforms with older hardware and high performance.

    Who wins: Flutter.

    We used Flutter to develop a corporate app as a part of a large-scale custom ERP system for KFC. Read our detailed case study.
    Read now

    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. One more important point is that Flutter’s popularity grows fast, and its developer community produces a lot of content  for self-study, and many various courses are offered. 

    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: no winner.

    Developers availability

    Today, Flutter and Cordova share second and third places, respectfully, among the most popular cross-platform technologies. However, from 2019 to 2022, Cordova’s popularity dropped by thirteen 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.

    Who wins: Flutter.

    Future

    Over 13 years Apache Cordova has gained many supporters in the developer community, but now its popularity is falling and may 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 most popular cross-platform framework, despite being only 6 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;

    • 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 is now the most popular in the world.

    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.