As the Title is self descriptive we wanted to make a choice with either Flutter or React native for our next app. So let me try to share some important facts which we considered while making the selection of one of the either frameworks.
First lets begin with similarities they have
Simple words both frameworks are used to build cross platform mobile apps . Both have same intent write once and execute on multiple platform(of course with slight modifications if needed).
Both are backed by tech giants :Flutter (Google),React Native(Facebook)
Lets see what makes them different
Ease of getting Started:
So lets start with the installation part . i guess flutter was easy for me to get started with as compared to react native.
I have been through various videos of React Native get started videos and found that most of them had an issue with the time taken for react native to setup . its quite high and tedious and also fragile i can say because there is a huge web of dependencies which we have to take care while installing react native.
Next thing is the way flutter interacts with your simulators is quite native or easy i would say as compared to react native where you need to scan a bar code and install an app named as expo prior to see your first glimpse of your app.
Flutter:1 React Native:0
I guess this could not be your first blog where you might be reading that flutter is more performant than react native . So lets discuss why
This is how react native will give you the native experience:
and for flutter it is:
There is no bridge in between. So this is one of the reason why Flutter is more performant than react native:
Flutter:2 React Native:0
Maturity and Support:
React Native Release Year:2015 — — → GitHub Stars:75107
Flutter Release Year:2017 — — — — →GitHub Stars:56860
This is pretty controversial topic , but going on the number React Native wins the race..
Flutter:2 React Native:1
React Native has got more options and JS community is more active than dart. Dart is still newbie and growing.
Flutter:2 React Native:2
In Built Feature Set:
React Native: UI Rendering ,Device API Access
Flutter: UI Rendering ,Device API Access, Navigation,Testing,Widget Library
Flutter:3 React Native:2
To begin with react native will seem to be easy but as on when you move towards achieving your goal of building a full fledged app, which is having more capabilities like accessing maps ,voice commands,animations,navigation's and much more it starts getting difficult with react native.
For flutter you may seem to get it difficult to start with because you will need to know some widgets really well like container,scaffold,rows,columns and much more, but this is just for begging but once you know these stuff its childs play after. Things like Navigation and Animations are really easy in flutter.
Flutter:4 React Native:2
There are much more reason where you can find flutter to be on the upper hand but i would like to highlight one more important aspect of flutter that is regarding why flutter used Dart.
Dart has got both AOT(Compilation) and JIT ,haven't heard any language having these features [i might be wrong if there is any other language let me know].
Dart can also be JIT (Just In Time) compiled for exceptionally fast development cycles and game-changing workflow(Hot reloading)
Dart avoids preemptive scheduling and shared memory.
Dart can do object allocation and garbage collection without locks. Because Flutter apps are compiled to native code, they do not require a slow bridge between realms. Dart makes it easier to create smooth animations and transitions that run at 60fps.
At last i feel i should go with flutter , but there are still some grey areas in it which i would like to explore like
How would i add third party sdk in flutter?
How would i add existing aar in flutter? and much more…