Flutter or React Native (or Native)
(Article originally published on medium.com in June 2020)
First, I’m not a developer. I’m a tech/business guy who can code a little. So this is a view from that perspective.
I have no interest in religious wars between languages, or deep preferences for architectures. I’m interested in what will work and what won’t. In what’s efficient and cost-effective and what isn’t.
TL:DR….Flutter is the dog’s boll***s.
Flutter Logo — from flutter.dev
The main competitors for Flutter are React Native and to code your mobile apps in the specific tooling for either Android or iOS. Neither is as good. It’s not even close.
There are a couple of angles to the debate.
Developer Familiarity (Flutter wins)
Some people will tell you that most front end developers are now more familiar with Javascript and/or Typescript and therefore won’t be as productive in Dart, the language in which Flutter apps are written.
Basically, nonsense.
Dart is a doddle to learn. Plus, mobile apps in Flutter are put together from an extensive library of widgets. It’s not quite as fast as making a mockup prototype, but it’s close. And with hot-reloading of the app as you develop it’s really fast to develop in Flutter.
React Native Logo — from Wikipedia
Yes, React Native may be “more familiar” because it’s in Javascript, but a half-decent developer will be up to speed in Dart in a couple of days. Literally. Dart is a doddle. I mean I learned it. A decent developer will spend longer learning all the available off the shelf widgets, but for each widget they learn they’ll just be getting even faster than coding in React Native or in Native.
Then, comparing to the native toolkits, Flutter (or React Native) saves you half the trouble since you only have to learn one language and not two. No longer any need for an Android codebase and a separate iOS codebase, nor developers.
It’s a no brainer.
Application Speed on device (Flutter & Native tie)
So, once you’ve finished coding, Flutter compiles your app. It’s not interpreted any more. So it runs FAST. It may even be slightly faster than native apps on some occasions (since the compiler writes good code), but it’s generally a little slower. Just a little. Not enough to overcome the development speed advantage.
The Swift logo (Swift is the language for writing iOS apps)
React Native isn’t even at the races. It can take tens of times longer to run than Flutter or Native. It’s a mess.
So, a tie between Flutter and Native.
Web Compatability (Flutter wins)
While not fully mature yet, Flutter apps are soon going to be fully deployable as web apps. The functionality is pretty good already and you can already write one codebase for an Android app, an iOS app, and (with some slight additional code) a web app.
That’s a massive deal.
A nice illustration of a webapp — from https://www.qode.pro/blog/what-is-a-web-app/
Additionally, Flutter is close to having all mobile apps be available also as Progressive Web Apps, which means that a user can use your app on their mobile phone without installing anything. An optimized mobile webpage that acts like your app, if you like.
Again, a massive deal.
Now there are some libraries that people use to let React Native apps run as web apps, but (AFAIK) they’re not core to the project.
So, Flutter wins.
Long term support (They all tie)
Long term, Facebook is likely to continue to support React Native. And Google is going to continue to support Flutter. And Apple and Google will both continue to support development straight onto the various operating systems.
From that point of view they’re all equivalent.
Look and feel (Flutter wins)
Whether you prefer Material Design or the Cupertino look and feel, Flutter allows you to produce beautiful interfaces in both looks. You can do it fast. The interface will be seamless, with cross animations and transitions as good or better than you could even make on Native apps.
If you care about how your app looks, Flutter wins.
Conclusion? Flutter wins.
Developers will always have their preferences for one language over another or one approach over another. I really don’t mind too much.
And from a business point of view Flutter is a useful development.
- It’s faster in development.
- As fast or faster on the device.
- Will be around for a long time.
- Will enable one codebase to be used on mobile, web & mobile web (already almost does).
- Enables beautiful interfaces to be built.
Overall, a no brainer. Flutter wins. Unless someone else comes up with something else (which is always possible) then it’s the way to go.
Design Team Leader / Senior Product Designer
3 年What flutter course/tutorial did you do?