DEV Community

loading...
Cover image for Cross Platform Fight ? React Native VS Flutter ? Who will win ?

Cross Platform Fight ? React Native VS Flutter ? Who will win ?

mrsaeeddev profile image Saeed Ahmad ・3 min read

React Native :

React Native

What is React Native?

React Native is an open-source mobile application framework that uses JavaScript.

What is React Native for?

React Native is an effective framework for:

  • Cross-platform development
  • Building mobile apps using JavaScript language
  • Developing applications for both Android and iOS using a single codebase Using the same design as React

Please note:

Apps created using React Native are not mobile web apps. React Native uses the same fundamental UI building blocks as regular iOS and Android apps: this means that instead of building in Java, Kotlin, or Swift – you’re putting the same building blocks together, using JavaScript and React (source).

React Native uses components that are analogous to widgets in Flutter.
To develop web and desktop applications with React Native, it’s best to use external libraries (as detailed in this paragraph).

Who created React Native?

Facebook created React Native.

What popular apps are made with React Native?

  • Instagram
    (iOS, Android)

  • Uber Eats
    (iOS, Android)

  • Facebook
    (iOS, Android)

  • Shopify
    (iOS · Android)

  • Fb Ads Manager
    (iOS, Android)

  • Pinterest
    (iOS, Android)

  • Skype
    (iOS, Android)

  • Tesla
    (iOS, Android)

  • Bloomberg
    (iOS, Android)

  • Wix.com
    (iOS · Android)

… as well as plenty more.

If you’d like to see other examples of apps made with React Native, check out the official React Native showcase.

Flutter :

Flutter

What is Flutter?

Flutter is a portable UI toolkit. In other words, it’s a comprehensive app Software Development Kit (SDK), complete with widgets and tools.

What’s Flutter for?

Flutter enables cross-platform app development.

It gives developers an easy way to build and deploy visually attractive, natively-compiled applications for mobile (iOS, Android), web, and desktop – all using a single codebase (source: official Flutter website).

Please note:

When it comes to developing desktop apps with Flutter, the API is still in the development stage. Google is working on extending Flutter to support desktop and web as a target environment, allowing developers to create macOS, Windows, and Linux applications with the technology.
In the long run, this effort will lead to a fully integrated solution where developers can create apps for desktop platforms as they do for mobile platforms – at the time of writing, however, the solution is in development.

Flutter for Web is currently available as a technical preview only. Flutter for Web is a code-compatible implementation of Flutter that allows you to compile existing Flutter code written in Dart into a client experience that can be embedded in the browser and deployed to any web server. You can use all the features of Flutter, and you don’t need a browser plug-in.

A little more about Flutter…

It’s free and open source
It’s based on Dart – a fast, object-oriented programming language (Google released Dart 2.3 with new support for UI-as-code features – note that Dart is now in its 2.6 version). Dart is relatively new, and is easy to learn – especially for experienced developers more familiar with Java and C#.

The architecture is based on the very popular reactive programming (it follows the same style as React).

It provides its own widgets, drawn from its own high-performance rendering engine – these are fast, attractive and customizable Thanks to the widget experience, Flutter apps have a great look and feel (while you can still create your own custom app design using readily-available UI elements that follow specific platform guidelines)

Who created Flutter?

A team at Google built Flutter.

But as an open-source project, both Google and the Flutter community contribute to its development.

What popular apps are made with Flutter?

  • Xianyu app by Alibaba (App on App Store, App on Google Play) – Alibaba is one of the biggest e-commerce companies in the world
  • Hamilton app (App on App Store, App on Google Play, Website) – official app for the Broadway Musical

  • Google Ads app (App on App Store, App on Google Play)

  • Reflectly (App on App Store, App on Google Play, Website)

  • App for JD Finance – a leading digital technology company (App on App Store)

  • Topline app by Abbey Road Studios (App on App Store, App on Google Play)

Keeping these things in mind, What's your opinion on future of cross platform mobile app development. Who will win this race?

Discussion (12)

pic
Editor guide
Collapse
ndy40 profile image
Ndy

React native will remain in the lead unless FB messes up the ecosystem. The Javascript advantage favours React Native and many people are aware of JS. The flutter technical merits will only draw those who care to read it but the young and upcoming developer will come across 100 people building react native apps before he meets his first flutter. I only discovered dart because I was looking for a compile to JS language outside typescript and as a result came across flutter. When I look at the job market, no flutter roles but react native and so flutter is my personal teamwork of choice for mobile apps. When the bills need to be paid, I would learn React native or go the cross Kotlin route.

Collapse
mrsaeeddev profile image
Saeed Ahmad Author

Yeah I think similarly as well. As React Native is more easier for JS Devs so is Flutter for C# and Java Developers. Yes currently Flutter is not in-demand but you will see it's demand will rise exponentially in coming days.

Collapse
nombrekeff profile image
Keff

I've used both, they both have good and bad thing and I dont think one should "win" over the other, I think it's a good thing to have a variety of tools for each purpose so each team and individuals decide what fits better into their development stack. It also forces the team behind those tools to keep improving them, resulting in better tools.

PD: I do prefer flutter for more performant apps, and React native for more personal projects.

Collapse
mrsaeeddev profile image
Saeed Ahmad Author

I have to agree. Every framework has it's merits so it should be upon the team to decide which one to pick up, according to business requirements.

Collapse
getwidget profile image
GetWidget

In the long run, Flutter looks like take the edge on react native.

Collapse
kdemetter profile image
De Metter Kenny

I have to agree, coming from Java, Flutter was very easy for me to learn

Collapse
mrsaeeddev profile image
Collapse
mrsaeeddev profile image
Saeed Ahmad Author

Yeah. I think same. It's animations are awesome specially. Also, the ease of development for those coming from a background of C# and Java is an added advantage. What do you think?

Collapse
adusoft profile image
Geofrey Aduda

React Native Wins, I don't Trust Flutter as per now but trust React Native as its has been tested and proven. has thousands of community support unlike flutter.

Collapse
mrsaeeddev profile image
Saeed Ahmad Author

Thanks for your comment. But there are performance issues with React Native with animations, accessing native things like Camera, Memory etc. Apps using these things extensively face sudden decrease in performance. On the other hand, Flutter shines in this area. That's why developers are more optimistic about the future of Flutter, taking over the fight of dominance in Cross Platform duel.

Collapse
matheuspicioli profile image
Matheus Picioli

I like much more Flutter because is a strongly typed language!
JavaScript almost all parameters is a string...
PS: Sorry my English

Collapse
mrsaeeddev profile image
Saeed Ahmad Author

Yes Flutter is based on Dart so it's strongly typed one. However JS is weakly typed. TypeScript is there but it hasn't been adopted so commonly by JavaScript programmers.