| Pros: * 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 |
* 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.