| I have been working for the past four years exclusively on react-native apps and their backend API, from bootstrap to publishing, adding new features every few months and maintaining the apps. It was a mixed experience. When I migrated to expo two years ago, many problems were solved but not all. But I still encounters bugs and problems with many common dependencies. It is not uncommon to have bugs on certain Android brands, with the community on github reporting the bug but waiting months for it to be fixed. iOS is by far better and more stable than Android. Performance is great on iOS, but less great on Android. Our apps are animation heavy using react-native-reanimated and react-native-skia. Everything went perfect on iOS but we had to remove some animations or simplify them on Android. Upgrading your dependencies every four months will probably break something somewhere : deep links stop working, some animations stop working, or maybe it's another dependency from the JS world.
Sometime the fix is easy, other time an issue with the regression can be found on Github, other time we have no data. Overall I'd say react-native is perfectly servicable and is easy to learn for anyone, which is a big plus.
I'd recommend react-native because it is easy, have a big JS ecosystem, but I am now on the Flutter side. |
They can be great as long as you and your customers stay on their most well-trodden path. But as these frameworks grow and become more byzantine, and as your project requirements start reaching for more rarified features and your customers start using new and differing runtime platforms, maintenance overhead starts to dominate and you find yourself running into invisible walls that make it hard for you to deliver on your project roadmap or satisfy the support standards you want for your customers.
This has always been the case for these frameworks, going back many decades, but especially since the explosion of efforts to build them around web stacks, which are easier for developers to use but harder for framework designers to keep sufficiently robust and capable as they age.