Flutter vs. React Native vs. Xamarin

A Data-Driven Comparison of the Most Popular Cross Platform Mobile Development Technologies

Scott Hatfield
9 min readFeb 21, 2023

In the world of mobile app development, cross platform technologies have gained significant popularity in recent years. The ability to build an app that can run on multiple operating systems using a single codebase has been a game-changer for developers and businesses alike. Cross platform technologies offer a number of benefits over native development, including faster time-to-market, lower development costs, and the ability to reach a wider audience.

But with so many cross platform development technologies available, it can be difficult to choose the right one for your project. In this article, we’ll take a closer look at some of the most popular cross platform development technologies and compare their features, strengths, and weaknesses. Whether you’re a developer looking to expand your skillset or a business owner seeking to build a mobile app, this article will provide you with the information you need to make an informed decision about which cross platform technology is right for you.

There are three major technologies in the cross-platform mobile development space in terms of the share of companies and development teams using the technologies compared to competing options:

· Flutter by Google

· React Native by Facebook

· Xamarin by Microsoft

These three technologies are compared within this document across a range of metrics.

LT;DR Rubric

Each of the three cross-platform mobile development technologies discussed in this document were evaluated based on a range of metrics with data sourced from various developer platforms and statistical analysis firms. For each metric, the technologies were ranked in first (🥇), second (🥈), and third (🥉) place based on their relative performance. For any categories in which a score could not be assigned due to a lack of available data, the technologies were ranked with an N/A indicator.

To create an overall ranking of the three technologies, points were awarded based on the scores for each metric:

🥇 = 3 points

🥈 = 2 points

🥉 = or N/A 1 point

For each metric, it is possible for two or more technologies to “tie” and receive the same ranking in instances where the information available about the technologies do not definitively favor a single platform.

+------------------------+--------------+---------+-------+
| Flutter | React Native | Xamarin | |
+------------------------+--------------+---------+-------+
| Maturity | 🥉 | 🥈 | 🥇 |
| Developer Satisfaction | 🥇 | 🥈 | 🥉 |
| Developer Engagement | 🥇 | 🥈 | 🥉 |
| Popularity | 🥇 | 🥈 | 🥉 |
| OSP Engagement | 🥇 | 🥈 | N/A |
| Framework Development | 🥇 | 🥈 | N/A |
| Case Studies | 🥇 | 🥇 | 🥉 |
| Totals | 19 | 15 | 9 |
+------------------------+--------------+---------+-------+

Introductions

There are numerous tools for cross-platform development in addition to native development tools for each mobile platform. The reason this article focuses on Flutter, React Native, and Xamarin is because these are the three largest, most popular, and most actively developed technologies among those studied by industry organizations and developer surveys. Each is backed by a large technology company meaning they offer more stable and more well-supported platforms compared to independent projects or technologies maintained by small development teams.

In order of the oldest to the newest technology, this section introduces each of these three major cross-platform development technologies.

Xamarin

Xamarin logo

Released in 2011, Xamarin is the oldest of the three technologies discussed in this document. It gained popularity for its high performance and code execution speed continues to be a major focus and benefit to the technology. Xamarin was acquired by Microsoft in 2016 and, like most Microsoft development technologies, it has excellent documentation. However, Xamarin is significantly less popular and less discussed than the other two technologies making community support for this technology much lower. It is also more difficult to find developers with experience in Xamarin development. Last, because it does not compile into native code, it is more difficult to build UIs in Xamarin that emulate the design principles and patterns of each mobile OS.

React Native

React Native logo

React Native was released by Facebook (now Meta) in 2015. Like Flutter, React Native is a pseudo-declarative UI framework in which apps are developed using ready-made or custom-composed UI “components.” This approach has the benefit of making development extremely fast and the development of UIs that closely resemble native design patterns much easier. A robust collection of libraries and plugins allow the framework to be extended and/or incorporate platform-specific functionality without requiring developers to implement support for these features manually. React Native is much more popular than Xamarin but, according to industry research, its popularity has been quickly leveling off for the past couple years. Some analytics point to the association between React Native and Meta, which faces a number of cultural and political issues, as part of the reason for the decline in developer engagement. Developers are also much less satisfied with React Native development compared with Flutter.

Flutter

Flutter logo

Flutter is the newest framework among the three discussed in this document and was introduced by Google in 2017. Development with Flutter is very similar to React Native in the sense that Flutter is also a pseudo-declarative framework in which apps are built from “widgets” that are either included in the Flutter SDK or bespoke for a particular app. The main reason Flutter stands out among its competitors is its approach to user interface development. Flutter apps can be built to look exactly the same on all platforms because Flutter uses canvases to enable direct control over each and every pixel on the displays for the target platforms. It is extremely fast to develop and maintain UIs that are both visually appealing and conform to platform standards and design patterns. Flutter is also the most popular cross-platform framework and its popularity continues to grow extremely quickly. Both the documentation and community for Flutter are excellent and provide strong support for development teams using Flutter. However, because it is the youngest framework in the list, there are fewer published apps using Flutter than React Native. It is also very difficult to find developers with experience in Flutter development.

Developer Engagement/Satisfaction

Stack Overflow produces an annual developer survey in which developers respond to questions about how they learn, what tools they use, and what features they most desire. Among the metrics studied are “Loved versus Dreaded” metrics for various languages and technologies. These statistics are often used to communicate developer satisfaction with technologies they use and will potentially use.

https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-tools-tech-love-dread
https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-tools-tech-love-dread

Among Flutter, React Native, and Xamarin, Flutter is the most loved framework with 68.17% of respondents indicating the “loved” the framework. In second place was React Native with 58.08%. Xamarin was the least “loved” framework with 43.32%.

In terms of the popularity of each cross-platform development technology, one often used indicator for the popularity of various platforms is trends observed on Stack Overflow. Since nearly all developers use Stack Overflow to ask and answer questions, trends on the platform provide a useful indicator of the usage for each technology in the industry.

https://insights.stackoverflow.com/trends?tags=flutter%2Creact-native%2Cxamarin

Among Flutter, React Native, and Xamarin, Flutter is by far the most popular technology through 6/9/2022 on the Stack Overflow platform with about twice the engagement as the second place platform, React Native. Note, however, that popularity on Stack Overflow can be a double edged sword for development technologies. One one hand, popularity on the platform indicates overall engagement with the technology and overall interest from developers. However, it also means that more developers need help with Flutter than React Native or Xamarin. This could potentially indicate a technology with a steeper learning curve or less effective documentation.

Engagement on Stack Overflow can also reveal trends in the relative growth in the popularity of each technology. For the past several years, and continuing into 2022, Flutter has been exploding in popularity. React Native can be observed to be experiencing a leveling off in its popularity. Xamarin is by far the least popular cross-platform technology and its popularity has been declining for a number of years.

Global Popularity

The data presented above about developer engagement on Stack Overflow presents one method of measuring the popularity of each cross-platform development technology. A second is directly polling the usage of each platform across the industry. Industry statistical analysis firm, Statista, annually measures the usage of various development technologies.

https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours/

For 2021, Flutter was the most popular cross-platform mobile framework used by software developers globally with 42% of the total. React Native is in a close second place with 38%. Xamarin is in a distant third with 11%.

Engagement with Open Source Projects

Yet another method of measuring the popularity of each cross-platform technology, at least for Flutter and React Native, is to monitor developer engagement with each platform on GitHub. Both Flutter and React Native are open source projects with their source code hosted on GitHub. Xamarin is not open source so it is not included in this section of the analysis.

One method through which developers can express their support for a project on GitHub is by “starring” the project. The number of stars for each project can be tracked over time to express an indication of the degree to which developers support each open source project.

https://star-history.com/#facebook/react-native&flutter/flutter&Timeline

Since about 2020, Flutter surpassed React Native in the total number of stars for each of their open source repositories.

Framework Development Velocity

Another insight that can be gained from data available in the GitHub repositories for Flutter and React Native is the development velocity for the frameworks themselves. For a business to establish a dependency on either Flutter or React Native (or Xamarin), it is critical to establish the degree to which the framework will receive continuing improvements and bug fixes. This capacity can be indicated in several ways, one of which is the rate with which new code is merged into the main branches for each repository.

Flutter

React Native

While both Flutter and React Native are high-velocity projects with frequent commits and merges supported by both Google/Meta and the communities around each project, Flutter’s development velocity is about twice that of React Native.

Case Studies/Notable Apps

While less quantitative than the other metrics presented in this document, one method that can be used as part of the selection process for a cross-platform development technology is to examine notable/popular apps built with each technology. Most large companies will have undergone some kind of technology selection process of the kind presented in this document so insight can be gained by considering the decisions made by other organizations producing apps that have similarities to the mobile apps your organization intends to create.

This section presents a showcase of apps developed using each cross-platform development technology, according to the case studies presented by the websites for each technology.

This section ignores apps created by the same companies working on the cross-platform development technologies themselves. For example, several of Google’s apps are created using Flutter and several apps by Meta are developed using React Native.

Overall, React Native has a larger portfolio of apps and case studies built using the technology. However, Flutter has more examples of apps built to interact with hardware systems, which may be relevant to mobile applications in the IoT space. Xamarin has fewer app examples in either category than the other two frameworks.

Flutter

https://flutter.dev/showcase and https://itsallwidgets.com

  • Philips Hue
  • BMW
  • iRobot
  • Toyota
  • Sonos

React Native

https://reactnative.dev/showcase

  • Tesla
  • Skype
  • Uber Eats
  • Walmart
  • Delivery.com

Xamarin

https://dotnet.microsoft.com/en-us/platform/customers/xamarin

  • UPS
  • Alaska Airlines
  • Seeing AI

--

--

Scott Hatfield

I like to take big, complicated projects, and break them down into simple steps that anybody can understand. https://toglefritz.com/