That always surprised me a bit, because part of the initial intent of react native was to be hybrid. Facebook had a lot of php developers that they wanted to enable to be able to write mobile screens. Not the core experiences, which you wanted dedicated mobile folks to write native for performance/transitions, but secondary things like the reporting flow.
But it probably takes a dedicated developer focused team to manage hybrid. And in terms of pure react native…I don’t know if react native is now able to feel as good as a native app, but even for a few years after Airbnb’s post react native would not have been up to the task of rendering all the little animations and transitions that Airbnb had in their mobile app.
(Though these days I would 100% write a new, less fancy mobile app in react native/expo - it’s constantly improved throughout the years)
I think it depends on how you structure your code and your team. RN is mixed into the Facebook apps and they do quite well.
Generally a small team is going to do pure RN, with limited extensions and views. A larger team you really have to know how to split everyone up while still being able to bridge views simply.
JS triggered animations and other native features are performant now via JSI, nowadays most people use react-native-reanimated to achieve this.
I think most of the issues Airbnb had were growing pains of RN and have long been resolved.
Assimilating something native into a serviceable React Native component isn't particularly difficult, but reimplementing that component from scratch on one or two other unfamiliar platforms (otherwise, why are you using React Native?) might be expensive.
But it probably takes a dedicated developer focused team to manage hybrid. And in terms of pure react native…I don’t know if react native is now able to feel as good as a native app, but even for a few years after Airbnb’s post react native would not have been up to the task of rendering all the little animations and transitions that Airbnb had in their mobile app.
(Though these days I would 100% write a new, less fancy mobile app in react native/expo - it’s constantly improved throughout the years)