> React Native can wrap any native component and bridge it into your app. If you had bad experience with a 3rd party component, that's not RN's fault, build your own extensions you need, but for the most part you just need the core. It's still easier than rebuilding your app X times.
Yes a great strength of React Native is that it still leverages the native UI kits and makes it possible to do so when building custom components. My comment wasn't about my experience, in fact I've built numerous bridged components in RN, but and observation about the react native community. In fact one of the most crucial lessons I've gathered when working with RN is that you must have both iOS and Android experts in your team to build good apps with RN successfully.
Here's just a few examples of popular 3rd party components(from awesome-react-native[0]) that are problematic in my eyes:
- react-native-swiper[1]. Completely custom JS implementation with a "iOS"y look. 8k stars
- react-native-gifted-chat[2]. Large completely custom JS implementation of chat UI. 8k stars
- react-native-slider[3]: A pure JS implementation of a slider. 1k stars
> - React Native you most certainly do get accessibility.
My point wasn't that it can't be done, but that it requires significantly more work that, let's face it, most developers will not do. With native UI you get a lot more for free which results in a better user experience for everyone.
See https://news.ycombinator.com/item?id=20709259
> - Running a JS VM isn't that bad, but it is a tradeoff. Imo it's completely worth it to prevent having to learn X different languages for each platform.
I agree it's a tradeoff and to be fair I don't have more than a hunch that running a JS VM is bad for energy and resource usage. The tradeoff is distinctively on the user's expense in favour of the developers. As developers shouldn't we be making tradeoffs that benefit our users instead?
> - The app size evens out, but yes the minimal is higher. However many apps are much larger than 20MB, it's better than other cross platform solutions
Yes many native apps do grow quite large too, my point is the default. The most basic RN, but especially Flutter, app is much larger than the native counterpart. Again a distinct tradeoff on the user's experience in favour of the developer.
0: https://github.com/jondot/awesome-react-native#components
1: https://github.com/leecade/react-native-swiper
2: https://github.com/FaridSafi/react-native-gifted-chat
3: https://github.com/jeanregisser/react-native-slider