I will try to get passed my biases, as I see some promising things so far. While having some experience in the original native Android and iOS development stacks, most of my full-time mobile experience is in Xamarin.
Having only introductory dev experience with React Native and Flutter prior, I recently attended a cross-platform mobile developer conference, focused on RN and Flutter. I see more positives than negatives for both of them.
I recall specifically from the conference that Flutter only has support for application state restore for Android in the Beta/dev branch, and I don’t recall iOS being mentioned. Anyone keen on UX would consider this essential functionality for a mobile app. So it’s not completely there yet.
However, from experience, I am doubtful that the enterprise software I’ve worked on at my past 3 corporations, would have even been possible to do in Flutter. This is mostly due to heavy reliance on both third-party and in-house C++ code, direct access to hardware APIs, and dropping to the native UI APIs, where in some situations a UI abstraction simply won’t cut it. Most projects won’t be that complex, so these are probably not issues for most developers.
I am hopeful that Flutter architecture brings good practices to the table with how it utilizes Dart. It is too easy to write bad, anti-pattern ridden code with iOS, Android and Xamarin stacks because while there are best practices, the languages allow anything.
I really think it would be cool to build my next mobile app in Flutter, or at the very least use it for rapid prototyping and proof of concept pieces. The hot reload really had me sold on the toolchain efficiencies of RN and Flutter for rapid development.