Discussion on: React Native vs Flutter — What to Choose in 2021?

alexlion profile image
Alex Lion

Nice article !

You need to quickly build an MVP for your app

Isn't RN more suitable for a MVP if you already have a React webapp ?

Btw, I love Flutter for its efficiency. I hope to find more job than RN.

codetricity profile image
Craig Oda

If you already have a React webapp, then you've already solved a lot of problems for your mobile app and thus should probably use React Native. However, if you're prototyping a new concept, then Flutter is nice. I agree with the author OM that Flutter is more suitable for MVP because of the hot reload, hot restart, and extensive set of Cupertino and Material widgets. For the frontend design aspects, Flutter is closer to painting or sketching than React, IMO. If you build your MVP with Material Design, then you can also use the Material tools for color (Material Color Tool and palette generator), icons (Material Design Icons), fonts (Google Fonts), and paper analogies. It's nice.

In an MVP, you'll need to get people to use your app and the design of your app (the artistic as well as usability) is really going to impact usage. Also, it's likely that your boss or other stakeholders need to review the MVP and they are only spending a limited time reviewing your work and authorization resources or budget for it to continue. You need to have a good design theme, layout, fonts, color, and movement between screens, as well as screen organization all set up from the first demo to your stakeholders or you may create the wrong first impression. Well, this is my opinion.

Also, for me, I really benefit from the type system of dart in Flutter as it helps me avoid foolish errors. These simple problems of using a string instead of a number can really slow down an MVP in critical times. After a few days, you suddenly see, "oh man, I put quotes around the number..." I'm sure that this has happened to all of us. :-( it's less likely to happen with dart than with javascript.

ombharatiya profile image
OM Author

Thanks Craig, I might not have explained this point better than you.

Well, if you compare the type system, then you can use TypeScript as the language in RN applications to avoid any last moment errors or hour long debugging of any such issues.

I think I have written a lot already about what's my opinion over it, and even if Dart is far better when it comes about it's performance and other points, yet I don't think I would be able to align all my team members to choose Flutter for any big app that we are designing. Dart isn't that mature yet to be taken on confidence. What's your opinion over this?

Thread Thread
codetricity profile image
Craig Oda

Thanks for the note about TypeScript. In our usage, I don't think we could align wider groups behind TypeScript instead of JavaScript, simply because everyone knows JavaScript and everyone is busy (or feels they are busy) and are resistant to moving off of standard JS. :-)

The reality of our situation is that we're showing proof-of-concept and MVP with Flutter. For production, people we interact with are using native iOS and Android. This usually means Objective C and Java, not Swift or Kotlin. The reason for the use of older technology is primarily one of skillset. There's usually something that's already built, likely several years ago that new functionality needs to plug into.

Because of that, the prototyping team I work with uses Flutter/Dart to show a specific technique or group of techniques. Then, the techniques are sometimes implemented on native iOS or Android by other groups.

At the moment, we're not trying to get other groups to use Flutter. We're just building in Flutter ourselves and sharing the algorithm or technique with other groups. At the moment, I suspect that among the groups we interact with, no one is deploying with Flutter. This is fine as we're responsible for prototyping and feature showcasing, not for the actual production apps.

For our purposes, Flutter works out fine.

We initially started off with React, but the integration of Flutter with Material Design and the tools made it easier for us to develop consistent themes and widgets. For our purposes, the look and performance of the mobile apps is important.