- Web devs typically don’t have strong instincts for mobile apps, they require more mentorship & onboarding time.
- Animation and interactivity is strongly limited in RN - You’re always so many levels removed from the actual APIs being used. For example, using UIKit and CoreAnimation are absolutely amazing and super lightweight on CPU/GPU in comparison. UICollectionView is a modern miracle that offers so much more control than FlatList.
- JS/Babel/node_modules is hell, no I won’t elaborate.
- Multi-threading, priority/concurrent queues etc for maintaining good all-around perf while doing intense operations is very strong with native platforms. RN just has sophisticated band-aids.
Honestly it mostly depends on the type of work the app will be doing, the dev resources available to you, and the level of quality you want to attain. I strive to create the best of the best user experience, and native is the best way to attain that.
The app I work on still uses RN for some features, but the results historically have been disappointing on average.
Happy coding!