| Former Dev that did Web -> Ionic -> RN -> Native iOS over the course of 6 years speaking here. - 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! |
Although that list directly relates to the number of people you reach per line of code.
Web (all devices) -> Ionic (most devices) -> RN (Android + iOS) -> Native iOS (iOS only and probably only more recent devices).
People do cross-platform development, because it runs on so many platforms with almost no additional code. And for sure, you might not get the full experience of every platform this way, but maybe it's still good enough for users to solve their problems?!