Flutter vs React Native: When to Choose Flutter Over React

Flutter vs. React Native: In a nutshell

Criteria
Flutter
React Native
What is it?
A portable UI toolkit for building natively-compiled apps across mobile, web, and desktop* from a single codebase
A framework for building native applications using React
Official release
December 2018, Google I/O
March 2015, F8 Conference
Created by
Google
Facebook
Free and open source
Yes
Yes
Programming language
Dart
JavaScript
Popularity
120,000 Stars on Github (May 2021)
95,300 stars on Github (May 2021)
UI
Flutter apps look as good on the up-to-date operating systems as they do on older versions. Since they only have one codebase, the apps look and behave similarly across iOS and Android – but thanks to Material Design and Cupertino widgets, they can also imitate the platform design itself. How’s that possible? Flutter contains two sets of widgets which conform to specific design languages: Material Design widgets implement Google’s design language of the same name; Cupertino widgets imitate Apple’s iOS design. This means that your Flutter app will look and behave naturally on each platform, imitating their native components.
Application components look just like native ones (e.g. a button on an iOS device looks just like a native iOS button, and the same on Android). The fact React Native uses native components under the hood should give you confidence that, after any OS UI update, your app’s components will be instantly upgraded as well. That said, this can break the app’s UI but it happens very rarely. If you want your app to look near-identical across platforms – as well as on older versions of an operating system (as Flutter achieves) – then consider using third-party libraries (like this one). They will enable you to use Material Design components, in place of native ones.
Sharing code
With Flutter 2 (announced in March 2021), we can use the same codebase to ship native apps to five operating systems: iOS, Android, Windows, macOS, and Linux; as well as web experiences targeting browsers such as Firefox, Chrome, Safari, or Edge. Flutter can even be embedded in cars, TVs, and smart home appliances. (source). Perhaps the single largest announcement in Flutter 2 is production-quality support for the web. It can be used for: Progressive Web Apps (PWAs) that combine the web’s reach with the capabilities of a desktop app, Single Page Apps (SPAs) that load once and transmit data to and from internet services. Existing mobile apps – allowing Flutter apps to be run on a desktop.
iOS and Android – but there are select libraries that allow you to use the same code to build iOS, Android, web, and Windows10 apps. You can also extract shared code in mobile, desktop, and web apps, to a separate repository; treat it as a separate project; then inject it in the same way as another dependency. This allows a developer to focus on writing code for a specific platform without having to consider compatibility with another one. Top apps made with this technology Xianyu app by Alibaba, Hamilton app for Hamilton Musical, Google Ads app, Philips Hue, My BMW Instagram, Facebook, Facebook Ads, Skype, Tesla Time-to-market Typically much faster than native development. Possibly as fast as development with Flutter. However… React Native uses bridge and native elements, so it may require separate optimization for each platform – a problem that widget-based Flutter doesn’t run into. It may make the app development with React Native longer. Competitive advantage Great look and feel thanks to rich widgets; Rapidly growing community, and popularity; Excellent documentation with strong support from the Flutter team (which makes it easy to start developing with Flutter); Improving Flutter for Web, offering the potential for one codebase across mobile and web platforms Difficult to beat time-to-market length Stability (5+ years on the market); Many successful, prominent market players using React Native; Mature, vast community; Easy-to-learn technology; Plenty of tutorials and libraries, which allow quick and easy development; Code can be easily reused for both web app and desktop app development. When it is not the best fit If… • Your app needs to support 3D Touch (for now, Flutter doesn’t support 3D – but it features on the Flutter team’s long-term roadmap) • The design of your app is platform-specific • Your app requires multiple interactions with an OS; or requires rare, little-known native libraries • You need a minimalistic UI, but rely on significant use of the phone hardware (e.g. an application that plays music, or only takes pictures) • You want to create an instant app (small-sized app) If your app sounds like any of the above, it’s probably better you choose native app development. Read more about these cases here >> If… • Your app needs to handle less common, or ultra-specific tasks (like calculations) in the background • You require custom communication via Bluetooth (which can be tricky to implement using React Native) • You want to create an app for Android only In truth, if you want to build an iOS app and you know JavaScript, consider React Native – but if you want an Android-only app, it’s likely better to build natively with another team. Why? Right now, iOS has better support than Android. If your app sounds like any of the above, it’s probably better you consider choosing native app development.
Competitive advantage
Great look and feel thanks to rich widgets; Rapidly growing community, and popularity; Excellent documentation with strong support from the Flutter team (which makes it easy to start developing with Flutter); Improving Flutter for Web, offering the potential for one codebase across mobile and web platforms Difficult to beat time-to-market length
Stability (5+ years on the market); Many successful, prominent market players using React Native; Mature, vast community; Easy-to-learn technology; Plenty of tutorials and libraries, which allow quick and easy development; Code can be easily reused for both web app and desktop app development.

Pros and cons of Flutter

Pros of Flutter

We’ll start with the pros that make Flutter the best choice for the developers. Here’s the list of advantages of Flutter over React Native:

  • It looks great!
  • It’s rich in widgets;
  • The community is rapidly growing
  • Well-structured documentation
  • Permanent improvements for web development
  • It requires less testing
  • The apps are fast
  • It helps to create the same UI for older devices
  • Flutter 2 helps to build apps for the web!

Cons of Flutter

Even though the list of Flutter advantages is impressive, some disadvantages are still important to consider.

  • It is not native
  • The apps are bigger than native ones
  • It still has a limited set of tools and libraries comparing to native apps

These disadvantages are minor, and they do not interfere with app development. However, in some cases, the cons of Flutter may be decisive when choosing a cross-platform development framework.

Flutter Apps Examples

Applications are written in Flutter:

  • Google Ads.
  • Alibaba.
  • Square.
  • eBay.
  • Hamilton Musical.
  • Reflection.

Which one to pick for your next project?

As we can see now, Flutter and React Native have many things in common. First and foremost, they are both open-source frameworks that anyone can use. They both are developed by leading companies: Google created Flutter vs React Native was created by Facebook. To compare basic info about Flutter and React Native, you can check this info by NIX.

Flutter is easier to use as it is more resistant to system updates. It means that when iOS or Android update the OS, the app will remain the same. On the contrary, React Native depends on native elements, so when the update is released, some problems may appear in the launch app. Currently, Flutter supports Android 4.1+ or iOS 8+, while React Native supports Android 4.1+ and iOS 10+. 

The biggest difference between React Native and Flutter is that Flutter has plugins developed by the Google team, like geolocation and mapping. Unfortunately, React Native app works better with apps with a one-time location and does not require tracking. 

All in all, Flutter and React Native are great choices to save time and money on mobile app development. What framework to choose will depend on the preferences of the developer and the company.

14 Comments

  • This post was just what I needed today

  • After I originally commented I seem to have clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I recieve 4 emails with the exact same comment. There has to be an easy method you can remove me from that service? Appreciate it.

  • Having read this I thought it was very enlightening. I appreciate you spending some time and energy to put this article together. I once again find myself personally spending way too much time both reading and commenting. But so what, it was still worthwhile.

  • You have made some decent points there. I looked on the internet for more information about the issue and found most people will go along with your views on this site.

  • Hi, I do think this is a great blog. I stumbledupon it 😉 I’m going to come back once again since I bookmarked it. Money and freedom is the greatest way to change, may you be rich and continue to help others.

  • That is a very good tip especially to those new to the blogosphere. Short but very precise info… Thanks for sharing this one. A must read post.

  • Hello there! This post couldn’t be written any better! Looking at this article reminds me of my previous roommate! He always kept preaching about this. I most certainly will send this information to him. Fairly certain he’s going to have a great read. I appreciate you for sharing!

  • I blog frequently and I really appreciate your content. This article has really peaked my interest. I’m going to book mark your blog and keep checking for new details about once a week. I subscribed to your Feed too.

  • After looking at a handful of the blog articles on your web page, I seriously appreciate your technique of writing a blog. I saved it to my bookmark site list and will be checking back in the near future. Please visit my web site as well and let me know what you think.

  • That is a really good tip especially to those new to the blogosphere. Brief but very accurate information… Appreciate your sharing this one. A must read article.

  • Great web site you have got here.. It’s difficult to find good quality writing like yours nowadays. I really appreciate individuals like you! Take care!!

  • Pretty! This was an incredibly wonderful post. Many thanks for providing this information.

  • Hello there, I believe your web site could possibly be having browser compatibility issues. Whenever I look at your website in Safari, it looks fine however, if opening in I.E., it has some overlapping issues. I merely wanted to provide you with a quick heads up! Besides that, wonderful website!

  • After checking out a number of the blog articles on your website, I truly appreciate your technique of blogging. I saved as a favorite it to my bookmark site list and will be checking back soon. Take a look at my website too and let me know what you think.

  • Good post. I learn something new and challenging on sites I stumbleupon everyday. It will always be useful to read through articles from other writers and practice a little something from other websites.

  • Aw, this was a very nice post. Spending some time and actual effort to create a top notch article… but what can I say… I hesitate a lot and never seem to get nearly anything done.

  • After I initially commented I seem to have clicked on the -Notify me when new comments are added- checkbox and now every time a comment is added I receive 4 emails with the same comment. Perhaps there is a means you are able to remove me from that service? Many thanks.

  • An interesting discussion is worth comment. I think that you ought to write more on this issue, it might not be a taboo matter but usually folks don’t speak about such subjects. To the next! All the best.

  • This is a topic which is close to my heart… Best wishes! Exactly where can I find the contact details for questions?

  • Hi there! This post couldn’t be written any better! Looking through this post reminds me of my previous roommate! He continually kept preaching about this. I’ll forward this post to him. Fairly certain he will have a great read. Thank you for sharing!

  • I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.

    • Hazel Nguyen

      Thanks for paying attention to our blog. Our consultation is free so you can leave your questions here and we will try to answer them asap

  • I am currently writing a paper and a bug appeared in the paper. I found what I wanted from your article. Thank you very much. Your article gave me a lot of inspiration. But hope you can explain your point in more detail because I have some questions, thank you. 20bet

    • Hazel Nguyen

      Thanks for paying attention to our blog. Our consultation is free so you can leave your questions here and we will try to answer them asap.

  • Your article gave me a lot of inspiration, I hope you can explain your point of view in more detail, because I have some doubts, thank you.

  • Very nice post. I just stumbled upon your blog and wanted to say that I’ve really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!

  • I may need your help. I tried many ways but couldn’t solve it, but after reading your article, I think you have a way to help me. I’m looking forward for your reply. Thanks.

    • Maya Nguyen

      Thanks for paying attention to our blog. Our consultation is free so you can leave your questions here and we will try to answer them asap.

  • I am a student of BAK College. The recent paper competition gave me a lot of headaches, and I checked a lot of information. Finally, after reading your article, it suddenly dawned on me that I can still have such an idea. grateful. But I still have some questions, hope you can help me.

    • Maya Nguyen

      Thank you so much for paying attention to our blog. Feel free to ask if you have any doubts so we will try to give you some advice asap!

  • Your article made me suddenly realize that I am writing a thesis on gate.io. After reading your article, I have a different way of thinking, thank you. However, I still have some doubts, can you help me? Thanks.

    • Maya Nguyen

      It’s our pleasure to help you with your problems. Just leave your question so we will try to give some advice. Thanks for your attention!

  • Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

    • Maya Nguyen

      It’s our pleasure to help you with your problems. Just leave your question so we will try to give some advice. Thanks for your attention!

Leave a Reply

Your email address will not be published. Required fields are marked *

  • All Posts
  • Digital transfomation
  • Technology stack
  • Working process
Load More

End of Content.

en_USEnglish