| I recently rewrote a small app in flutter that was originally react native.
Initially I was sceptical, mainly about learning dart. But it wasn't hard to pick up. I found the development experience much smoother than react native, things just worked, whereas in react native there were many many small bugs and issues with the many packages required. Flutter IDE support is good with the intellij plugin [1].
Performance, I didn't do any benchmarks, but a simple list with thousands of items feels much smoother on flutter than react native.
There are packages for redux as well in flutter, so state management is taken care of [2].
The only downside I experienced with flutter is that Json handling is clumsy, apparently because flutter doesn't support reflection, which would be necessary to have comfortable Json-decoding like with Javas gson or go's json package [3]. Another thing to consider is that react native will render on one thread, and handle the application logic on another thread, but that means the application logic is still restricted to a single javascript thread, which can lead to bottlenecks eventually. From what I understand (haven't tested), dart can work multithreaded, having an advantages there. End of the day, I would chose flutter over react native. Mainly because of Javascript and all the pain that comes with it. [1] https://plugins.jetbrains.com/plugin/9212-flutter [2] https://pub.dartlang.org/packages/flutter_redux [3] https://github.com/flutter/flutter/issues/1150 |
If the development workflow is good, trying it on a smaller Android project seems feasible. What I find attractive there is that you can sidestep the legacy Android APIs which was created for much more constrained hardware than we run today. Might even be worth just doing that and keeping iOS development the same. If iOS 12 widgets all look different, that would age Flutter apps.