Software developer, Md Akhtar Hossain, compares 3 of the leading cross-platform mobile development frameworks: Xamarin, React Native & Flutter. His analysis features an in-depth look at pros and cons, industry trends, major adopters, and training options for each tool.
Xamarin, React Native, and Flutter are some of the best frameworks out there for cross-platform mobile application development. These tools save you a lot of time as they let you build apps for multiple mobile operating systems - such as Android and iOS - using just one codebase. Obviously, you need to make some additional adjustments for each platform, but these frameworks let you reuse code to a great extent for cross-platform development, drastically increasing your efficiency and ROI.
But which one of these 3 tools is the right fit for you? This post will provide a concise breakdown of these popular mobile app development frameworks to help you choose.
Here is a quick comparison table of some basic information on Xamarin vs. React Native vs. Flutter:
Xamarin | React Native | Flutter | |
Language | C# | JavaScript and React | Dart |
Price | Free | Free | Free |
Open-source | Yes | Yes | Yes |
Developed by | Microsoft | ||
Release date | May 16, 2011 | March, 2015 | May, 2017 |
Mobile OS support | Windows, Android, iOS, Blackberry | Android, iOS | Android, iOS |
And a heads-up graph of interest trends for each platform over the last 5 years:
See the dynamic version of this chart with up to the minute data on Google Trends.
Now let's take a deeper look at the Xamarin, Flutter, and React Native frameworks for mobile application development.
Before digging deep into the pros and cons, let’s begin with a quick introduction to Xamarin along with some interesting facts and resources.
With 60,000+ contributors, Xamarin is a free and open-source mobile app development framework created by Microsoft. Professionals from more than 2,700 companies have taken part to improve this framework. It was released on May 16, 2011. This cross-platform app development tool lets you build apps and games for Windows, Android, iOS, macOS, Blackberry, tvOS, and watchOS.
Xamarin lets you write code in C# using Visual Studio. So you’re required to install Visual Studio for Xamarin development. Get Visual Studio here.
Official tutorials and courses, Planet Xamarin, its YouTube channel, the Xamarin Blog, forums, and Udemy courses have made learning Xamarin a breeze. These educational resources will give you a ton of useful information about this framework.
Five year interest trend for Xamarin:
Chart courtesy of Google Trends.
The above chart demonstrates that this framework has high interest over the last 5 years, however the popularity of Xamarin seems to be leveling off.
Xamarin is used by big companies such as UPS, Outback Steakhouse, HCL, Aggreko, Olo, FreshDirect, Alaska Airlines, and many more.
Some of the main benefits of using Xamarin include the following:
The code-sharing feature greatly increases the productivity of a Xamarin developer who has to build apps for multiple platforms. There are many other features and tools, such as easy debugging, iOS simulator, auto-provisioning, DevOps tools, profiler, Xamarin.Forms, SkiaSharp, and Xamarin.Essentials that enable rapid app development.
Xamarin.Forms is a UI framework built by Microsoft which lets you create cross-platform UIs. Visual API gives you a consistent look and feel across various operating systems. XAML and C# let you create declarative and non-declarative UIs respectively.
Pre-built layouts, controls, and pages of Xamarin.Forms allow you to make high-quality user interfaces. You can easily define new controls, cells, layouts, and pages and change any control’s behavior using this tool.
More information about UI development with Xamarin.Forms can be found here.
Although this powerful framework has many benefits, it also has some drawbacks. Consider the following negative aspects of Xamarin:
For Android development in Xamarin, there’s not enough support for Java code generation, and there isn’t full Java generics support. There’s also very little dynamic language support.
With 2,200+ GitHub contributors, React Native is another free, open-source mobile development framework. Companies like Microsoft, Callstack, Software Mansion, and Infinite Red have helped to improve this framework. React Native was made by Facebook and its bustling community. It was released in March 2015. You can develop Android and iOS mobile apps using this tool.
React Native lets you build apps using React and JavaScript.
The following image gives you a rough idea how cross-platform development is performed using React Native:
This image shows how React Native code is written:
The official documentation and Christine Abernathy’s React Native tutorial will help you get started with this framework. This and this navigation tutorial will help you understand navigation basics. The official speed optimization guide will help you learn how to improve your React Native app’s performance.
Five year interest trend for React Native:
The above chart demonstrates that React Native’s worldwide popularity has increased over the past 5 years.
Chart courtesy of Google Trends.
Today’s most successful React Native apps include Facebook, Instagram, Facebook Analytics, Skype, Facebook Ads Manager, Discord, Tesla, Walmart, Bloomberg, Pinterest, and many others.
Some of the best React Native app benefits include:
Another plus point of using React Native is that you can optimize your app with native code. You can use native code such as Java or C# code for some parts of your app while the remaining part of your app can be developed using React Native code. Because you can use native code you will realize a big speed boost in a React Native app.
JS.coach and Native Directory give you high-quality components and libraries developed by the community.
Also, tools such as Yoga, Nuclide, Sentry, React Developer Tools, Ignite, Bugnap, and VS Code will speed up the React Native development process.
React Native also provides you with many platform-specific components, such as DatePickerIOS, ProgressViewIOS, ImagePickerIOS, DatePickerAndroid, ProgressBarAndroid, ToolbarAndroid, and so on.
Here are some of the major issues with React Native:
Developed by Google, Flutter is simply one of the most amazing mobile development tools, which lets you create apps for Android and iOS. It was released in May 2017. This is a free and open-source tool with over 650 contributors on GitHub.
The official documentation is pretty useful. You can also learn this framework from other resources such as this free Udemy course and this Flutter & Dart course also on Udemy.
Flutter lets you write code in the Dart programming language. It’s similar to languages like JavaScript. The following screenshot shows what Dart code looks like:
And here's a look at application development using Flutter:
Five year interest trend for Flutter:
Chart courtesy of Google Trends.
Popularity of the Flutter framework has increased dramatically over the past 5 years.
Many powerhouse organizations use Flutter for mobile application development, including Google, Groupon, eBay, BMW, Square, and Sonos.
Some of the major advantages of using Flutter are:
A few noteworthy drawbacks of Flutter include: