Flutter vs. React Native and other technologies

Flutter is being constantly compared to other cross-platform technologies. In this article, we decided to describe the pros and cons of each of them – React Native, Cordova and Xamarin.
react native

| Flutter vs. React Native

Both technologies are similar. React Native is a Framework created by another big company – Facebook. It is used in many of their apps – Instagram, Facebook, but also in 3rd party apps – like Skype, Pinterest or Tesla. Like Flutter, React Native offers the ability of writing one codebase for delivery to many platforms. It also supports the hot reload feature, letting developers code apps in a more efficient manner. React Native is also based on a very popular language – JavaScript.

For a very long time, these two technologies walked hand in hand, gaining almost the same popularity. That said, over the last few months the popularity for Flutter grown and has now surpassed the popularity of React Native.

Fun fact: both technologies almost divided the world of development directly in half – Flutter is more popular in both the Americas and Europe, while React Native is the king in Asia.

For a long time, they also shared the same spots in the Github ranking – but today Flutter stays in position 16 with more than 111k Github stars, while React Native has fallen to position 26 with not more than 94k stars.

Those numbers and stats show that more and more people have decided to switch to Flutter and this trend could likely grow in the near future.

React Native has some pros as well – it is just as stable as Flutter, it’s been on the market longer than Flutter and the community is mature and very active. React Native is also easy to learn and gives you access to the wide variety of libraries and tools – but some of them can be considered lower quality and abandoned.

As with any technology, React Native also has some cons and one of the biggest ones is performance. With React Native you still need to write some parts of the application with the native technologies and connect them to RN with bridges using JavaScript. This forces you to have a bigger team of developers and face the very real problem of lower performance and increasing device-related issues. React Native is also not out-of-the-box technology, as it supports a very basic set of components – compared to Flutter which supports Material Design or Cupertino. Lastly, any application made for React Native will also be bigger than Flutter.

All of these points are visible with React Native technology and might seem to miss the needs of modern application needs, but Facebook is constantly working to adapt this technology and soon React Native might overcome some of their disadvantages.

Currently, React Native is used mostly for the development of some smaller apps. It is definitely not the best technology for developing games or apps loaded with animations. Choosing the right technology is the key to the success of developing any application. In the battle between Flutter and React Native…both are good, but we would choose Flutter as the winner. The stars and position on the Github community also supports this choice. The advantages for using Flutter in every app development are obvious – writing one codebase for both platforms, a beautifully designed UI and the high possibility for developers to save time and money.

| Other technologies that compete with Flutter

Flutter also has some other competitors in the market. Knowing they are not as popular as React Native, we will only describe them briefly and outline a few pros and cons.

| Xamarin

Xamarin framework was founded in 2011 with the Xamarin.Android and Xamarin.iOS, cross-platform implementations of Microsoft .Net (dot net). This was probably one of the main reasons why Microsoft decided to acquire the whole company in 2016, and integrate the platform directly into .NET.

Xamarin gives users the ability to create native apps using C# language for Android and iOS. The fact that Xamarin uses C# and .NET is the big advantage – a lot of developers already know this language since it’s been around for many years, so it’s not hard to find developers in the market. Another advantage of Xamarin is the support from Microsoft – the documentation is good, the platform stays up-to-date and the community of users are typically very helpful. There are also a lot of tools dedicated to Xamarin, for example Xamarin Test Cloud.

In general Xamarin is open-source and you can use it for free, but…if you want to develop large and commercial software projects you need to pay a license fee to Microsoft, which will increase the cost of development.

| Cordova

Cordova is considered as another alternative to Flutter. As React Native and Xamarin, this technology is backed up by a tech giant – Apache. It’s also one of the oldest in the industry with the first release in 2009, making it a very stable and proven technology.

It is an open-source and cross-platform development framework with standard web technologies – HTML5, CSS and JavaScript. At this moment, thanks to the web view component, Cordova supports Android, iOS, macOS and Electron. Cordova also supports multiple native plugins, but some of them can be considered to be of low quality or outdated.

One of the advantages of Cordova is the UI framework called Ionic. It was a very popular solution for building cross-platform apps a few years ago.

Disadvantages?

Apps created in Cordova can experience problems with app performance and responsiveness, also the code is platform-specific which can create platform-dedicated problems as well.