I have worked in more than 10 React Native apps, some of them in production, some built from scratch by me, my team and a few already started and we took over the project. I have a couple months using Flutter now and I can tell the difference is huge. Besides Flutter has its own built-in component for basically any needs, it feels a lot more efficient and simpler than React Native. All of my React Native apps have been without expo so I've had to deal with dependencies in three platforms: Node, Android and iOS and this has brought too many problems to our projects. We've had problems like libraries that we're using aren't up-to-date with React Native versions or they simply work in one platform and in the other they don't. I've had many problems with Google Map, Google Places and Firebase. These dependencies problems I've had have took me days and even weeks. I've been really stuck on dependencies problems in React Native. Another problem I faced is that besides using React Navigation, React Native won't provide you an easy way to edit the app bar. Which in Flutter is a breeze. In Flutter you don't have to deal with dependencies in three platforms that much. Or if you want to make a list item you can drag to the left/right to delete, for some reason, in React Native it was just really complicated, because I was able to create it but its performance wasn't the best. It felt kind of buggy. In comparison, with Flutter it was as simple as taking a Dismissable widget and add a background with what I needed. I agree with you on a big difference Flutter and React Native have: React Native heavily depends on external dependencies. For example, if you want to make a header that looks good on both platforms, you'll probably need to install a UI library: Native Base. Which is cool because it gives you a lot of cool stuff to work with, like headers, footers, buttons, layouts, grid, etc. On Flutter, you don't need to install anything to make a full app looking the way you want it to look. In React Native you have to build your own animations for anything you want, while in Flutter you have a few animations already out of the box. Also, Flutter has a better debugging experience. You can see right away all the logs from your app or your device right in your editor and also, run the app, use breakpoints, see a better detailed explanation of your errors. In React Native, it's a little more complicated. If you want to see logs in iOS code, you need to either open Xcode and run the app from there or you can enable the debug logging in the browser. Which isn't that comfortable. To my eyes, Flutter is more complete and easier to work with than React Native, because of the dependencies problems, lack of framework's components and performance. I also feel a difference in the stability of the app I wish I could explain better. I really hope Flutter gets more attention because being a React Native developer is somewhat expensive and demanded, but there's not as many job offers for Flutter developers nor the equivalent good salary.
