Contents

    Best Mobile Cross-Platform Framework to Choose in 2021

    As mobile apps became an essential extension of almost any type of business, so grew the popularity of cross-platform mobile development frameworks — a convenient alternative to native development, which allows building apps for both iOS and Android from a single codebase by one development team. Currently, the most popular cross-platform technologies are Flutter, React Native, Xamarin, Ionic, Apache Cordova and NativeScript. Each of them has its own strengths and is more suitable for different types of apps.

    Surf has over a decade of experience developing apps using both native and cross-platform technologies for various clients, including retailers, banks, digital platforms and restaurants. While we have a dedicated article where we talk about pros and cons of cross-platform development, in this one we’ll compare the best cross-platform mobile app development tools in terms of their performance, popularity, features and other aspects, so you can choose the right cross-platform solution to build your mobile app. Without further ado, let’s start our comparison with Futter.

    Flutter

    Flutter cross-platform app framework was created by Google and, since its public release in 2017, is still maintained by the corporation. The framework runs on Dart programming language — another Google’s brainchild. The concept of Flutter is based around widgets — blocks that Flutter apps are built of. The framework comes with a vast library of widgets, which can be changed and tweaked according to the project requirements, and supports integration with many third-party solutions, further increasing the developer’s possibilities. The app’s graphics are processed by a powerful Skia engine, making Flutter suitable for building games and apps with heavy animations. Feel free to check our other article to learn more about Flutter architecture.

    After its release, Flutter has quickly gained widespread popularity among mobile app developers, overtaking other cross-platform frameworks, even those that have been around for a longer time. Among apps built with Flutter are multiple Google projects, including Google Ads and Staida, popular journaling app Reflectly, Nubank neobank app and others. 

    Surf has chosen Flutter for many of our clients’ projects and our cross-platform apps received many favorable reviews. For example, our corporate banking app for Rosbank, which was also the first Russian banking app built with Flutter, has won Tagline Awards in the Banking, Finance, and Insurance category. The app helps the bank’s clients with everyday tasks: reminds them about due bills and keeps payment details at hand. The easy-to-use interface allows users to make payments from scratch in just three taps.

    Let’s see what features make Flutter stand out and why so many developers have opted for the platform.

    Advantages of Flutter

    Development process

    The key benefit of developing apps with cross-platform app development frameworks is saved resources, both time and money because you have to write just one set of code for both iOS and Android apps. That also means that the whole development requires fewer team members: developers, testers and managers. For example, when Surf developed apps for the Rigla pharmacy chain, by using Flutter we managed to save 40% of the company’s app development budget.

    One of the outstanding features of Flutter is Hot Reload that lets developers see instantly how code changes impact the app — there’s no need to waste time refreshing the whole app after each change. This speeds up the development process and makes experimenting during development easier. Talking about the same apps for Rigla, the project that included six apps was done in just five months, while the first app was built in three months.

    Performance

    The powerful Skia graphics engine, an integral part of Flutter, makes the framework suitable for apps with heavy animations or graphics. Because Flutter, in contrast to other cross-platform frameworks, doesn’t require a JavaScript bridge for communication with platform’s components, apps on Flutter show a shorter response time. As a result, the majority of apps on Flutter easily maintain above 30 frames per second, so that users don’t notice any lags or dropped frames.

    When Surf developed an app for The Hole streaming platform, smooth screen transitions and responsive playback UI were crucial for a proper user experience. What our client got as the result of four months’ work (it took us one month to design the app and three to build it) was a fast and modern app that completely justified the choice of Flutter as the development framework.

    Large community support

    Despite being only about five years old and using the not-so-common Dart programming language, Flutter has quickly become widely used by developers and currently holds the top place among most popular cross-platform frameworks. Community support means a lot to any technology, making the development process faster and easier: there are more resources, third-party integrations and people willing to help if a developer gets stuck at some point of development. Growing popularity also means the newest versions of iOS and Android are more likely to fully support Flutter shortly after release, which plays down one of the downsides of cross-platform frameworks — postponed support of the latest versions of operating systems.

    Xamarin

    Xamarin is an open-source cross-platform app development framework created by an American company of the same name in 2011. After being acquired by Microsoft in 2016, Xamarin became a part of the .NET framework and now requires large corporate users to buy Visual Studio Enterprise annual subscription, remaining free for individuals and small enterprises. Among apps developed with Xamarin are BBC Good Food, UPS Mobile, Alaska Airlines and many others.

    Because C# is one of the five most popular programming languages and one of .NET family languages, anyone with previous experience in Microsoft ecosystem won’t have much trouble starting using Xamarin. Essentially, the framework consists of three development tools: Xamarin.Forms API that uses standard interface elements and allows to reuse up to 96% of code across platforms, and Xamarin.Android and Xamarin.iOS that support platform-specific app features and UI elements but have code reuse of about 75%. But mind that the code written in Xamarin can be reused only within the .NET technological stack.

    Similar to Flutter’s Hot Reload, Xamarin offers Live Reload feature that enables developers to roll out code changes without app compilation & deployment. While simple apps built with Xamarin show nearly native performance, apps with multiple heavy UI elements and animations might suffer from decreased FPS. This somewhat limits the framework capabilities in comparison to Flutter, which provides stable above-30 FPS even in scenes with heavy graphics. You can learn more on the topic in our comparison of Xamarin and Flutter.

    Cordova

    Apache Cordova cross-platform framework was developed by Nitobi in 2009. Later, the company was purchased by Adobe Systems, and Cordova framework was renamed to PhoneGap, and then its name was changed back again. Cordova is an open-source framework that uses standard web technologies, JavaScript, HTML and CSS, making apps built with the framework a kind of multiple HTML pages wrapped in a native platform ‘shell’. Among popular apps built on Cordova are Localeur, Untappd, SparkChess and others.

    Cordova is considered an easy-to-learn framework because it uses JavaScript language, which is universally used and known by the majority of developers. In the 12 years since its release, members of Cordova developer community have created many free-to-use plugins that make the development process even easier. Although Cordova is still used for simple apps and prototypes, its popularity has gradually declined in recent years, as it gets substituted by more modern frameworks, such as Flutter and React Native, that show greater performance. In our other article, we’ve talked more about how Apache Cordova compares to Flutter.

    React Native

    Created by Facebook in 2015, React Native runs on JavaScript, the 3rd most popular programming language (according to PYPL index). Currently, the framework is the second most popular cross-platform mobile solution, which can be attributed to its high performance, and a large number of free-to-use third-party libraries and plugins. Among brands that chose React Native for their apps are such popular names as Uber Eats, Coinbase and Salesforce.

    Just like Flutter, UI elements of React Native adapt their appearance to the platform’s style, so an app built with it looks exactly like a native one. Although React Native can be used for developing complex apps, multiple tests show that, compared to Flutter, React Native uses more device memory and consumes more battery power. Also, when it came to heavy rendering, Flutter showed the lowests FPS drop to 19, while React Native dropped to 7 frames per second. Learn more about both frameworks in our detailed comparison Flutter vs. React Native.

    Ionic

    Ionic cross-platform framework was created by American company Drifty Co. and publicly released in 2013. The technology is based on JavaScript, HTML and CSS and supports integrations with a large number of third-party libraries and other open-source frameworks, such as Apache Cordova, React, Vue, Angular. Among apps built with Ionic are MarketWatch, Diesel and Sworkit.

    Ionic provides a great selection of pre-built UI components, which update their appearance to match the platform’s visual style — just like Flutter. Because Ionic is based on widely used web technologies, it is easy to learn for developers already familiar with JavaScript and HTML, and the framework is a perfect fit for building progressive web apps (PWAs). However, the usage of web-technologies has a major drawback — apps on Ionic have poor performance compared to Flutter, so the framework is not the best choice for apps that require heavy rendering or very short response time. Also, see our Flutter vs Ionic comparison for more insights.

    NativeScript

    Another popular open-source cross-platform framework is NativeScript. It was released in 2015 and uses JavaScript (JS) or other programming languages that support transcompiling into JS, such as TypeScript. Additionally, NativeScript supports integration with Vue.js and Angular frameworks. The framework provides direct access to native Android and iOS APIs and runs on the device without WebViews or wrappers. Among popular apps built with NativeScript are Sennheiser Smart Control and Regelneef app that controls household energy consumption.

    NativeScript is a great cross-platform development tool for developers already familiar with HTML and JavaScript, but, sinceNativeScript accesses a device’s native API via native components, native APIs knowledge is required to use the framework to its fullest. This also results in a lower code reuse rate across platforms compared to other cross-platform frameworks reviewed in the article. While the performance of NativeScript apps is on par with other frameworks, it is lower than that of Flutter or React Native. Also, NativeScript doesn’t have a feature similar to Flutter’s Hot Reload or Xamarin’s Live Reload, so any code changes require refreshing the whole app.

    To sum things up

    Compared to native development, cross-platform app development technologies make it possible to create apps for both iOS and Android platforms faster, with fewer team members and a smaller budget. Today, there are many cross-platform technologies to choose from, so developers can pick the technology that suits their type of project, uses the preferred programming language and fits them in other aspects. 

    Flutter is one of the modern and popular cross-platform frameworks that has been used to build many popular apps. The framework is regarded by many as the best cross-platform app development framework, which has all the necessary tools for fast-paced development, as well as a rich widget library and support of third-party plugins. Flutter’s architecture and graphic engine allow it to show nearly native performance on different platforms. Over the last few years, the framework’s popularity has grown steadily and it is one of the most widely used cross-platform frameworks today. 
    We at Surf have been developing apps for over 10 years, using both native and cross-platform technologies. We chose Flutter for our cross-platform projects and used it to build fintech apps, e-stores and apps for media platforms. If you think about building an app, let’s discuss and estimate your project. Fill in the form and we’ll contact you shortly.