* Developing plugins (to use native code functionality) is fairly easy. I recently created a PDF viewer plugin for Android without any prior knowledge of java, in 2 days.
* Dart has smaller ecosystem but dart is a real language with a batteries included std library. I don't think I need to state the superiority of dart as a language.
* Flutter's non native components make it easier for you to customize them
* Flutter doesn't have an obvious way to use native views in apps. You can launch native views but compositing native and flutter views is a bit weird right now.
* The ease of use in the development cycle is phenomenal. Nothing like I've ever seen in UI dev.
I started leveraging the json_serializable lib and all my responses were returning null... it took me a few days of heavy debugging to figure out it was how I crafted my constructors and how the code generators worked with it.
* Flutter is faster. You really notice that for example the animations in flutter are much smoother than in RN
* Flutter has really fast development cycle with hot reload (< 1s)
* Writing UI only once for both iOS and Android
* Better documentation
* Better tooling support in editors (VSCode and Intellij)
Cons:
* The Flutter ecosystem is quite small, there are many lacking plugins
* The Dart ecosystem is way smaller than JS
* RN uses the native widgets, in Flutter they are mimicked and sometimes wrongly, for example the iOS datepicker