Choose Flutter


Information in this post is just my personal feelings which could be different from yours.

Compare frameworks

I never was an Android developer but from time to time I tried to create some apps for my mobile phone. I tried several frameworks and technologies: Xamarin, Nativescript, React Native, and finally Flutter. What I can say - the fastest boost for me as a newcomer was indeed in Flutter. The community is so big (93k stars on GitHub at the moment) so you can get almost anything you need out of community for your Android application.

For example I required my app a calendar to show the events based on the dates. With the Flutter community that was the smoothest process I could even imagine - there are several great calendar widgets on GitHub completely open-source and free, nevertheless, very powerful and customizable. So I'm a complete rookie on the Dart/Flutter development was able to complete a calendar feature in a matter of time (a few hours to be honest).

Check the following community list:

An awesome list that curates the best Flutter libraries, tools, tutorials, articles and more. - Solido/awesome-flutter

I tried to do the same with Xamarin, React Native or NativeScript - unfortunately only React Native is outstanding with its community and perhaps it's just my feeling but there are no that much good and customizable components for the others.

Xamarin has XML structured code style for UI which for me is very painful to develop, no hot reload, debug of components isn't easy, MVVM approach is just a mess. IMO it's the worst thing I've ever tried.

NativeScript is cool if you have some experience with Angular but again it's not so widely popular so you can have some difficulties finding a component out of community.

So let's take a look at Flutter vs React Native:
I'd prefer Flutter for its Dart language which is strongly typed out of the box and for its strong relation to Material Design guidelines. The way both of the frameworks are structured is almost the same - you're writing UI, styles, and logic in the same files, arranging the components as they will appear on the UI and adding callbacks. The difference comes in the development environment - Flutter has outstanding extensions for VS Code though I was able to quickly and painlessly debug my app, check the components in runtime or even make some performance profiling! Also worth mentioning that Flutter is great at resolving dependencies through and has clean and intelligible
pubspec.yaml where you can customize the app.

The main point of success of the framework as for me is how far I can go in development and how many difficulties I'll be facing during the process. Flutter is easy and powerful so if you just as I didn't have a chance to touch it you'll be able to get up to speed in several days. Also if for some reason you need to dive deeper you can succeed in that due to such a great community that you'll definately find good and useful during the development.