A lot of rumbling and commotion on the Twitter-sphere and tech blogs today. Last night, Airbnb released a five-part series of blog posts on Medium covering their experience and findings using React Native, concluding with the announcement that they’re saying goodbye to React Native by the end of this year.
“Due to a variety of technical and organizational issues, we will be sunsetting React Native and putting all of our efforts into making native amazing.”
This news comes as quite the surprise - as Airbnb has been continuing its efforts in pushing development on open source projects and workflow-tools for React Native, i.e. the Lona announcement last month at React Europe - but before getting all caught up in doomsday-tweets and cross-platform rants…
As their original intent was to ‘move more quickly as a company’, using React Native is no longer a viable strategy for Airbnb due to multiple reasons. Does this mean we should turn our backs to React Native? We think not. We can relate to a lot of the issues mentioned in the blogpost. But the scale at which Airbnb operates (for reference, they have 100 developers working on their mobile app, at In The Pocket, a product team usually consists of 4-10 developers) and the depth of their investment together with the product & UX requirements of their application are a big reason for their decision to abandon React Native. As with any tool, you should know/anticipate for its limitations.
“Hybrid Apps Are Hard.”
“...we wound up supporting code on three platforms instead of two.”
At Airbnb they have 220 screens in React Native, but additionally they have about 880 native screens per platform, which basically means they only have 20% functionality living in React code. “Many of the difficulties we encountered were due to the hybrid model approach we took” is also one of the lessons we learned from combining native and React code in the projects we work on. However, these difficulties shouldn’t be a setback when choosing to use React Native as a platform.
“When everything came together, which it did for many features, the iteration speed, quality, and developer experience matched or surpassed all of our goals and expectations. At times, it really felt like we were on the verge of changing the game for mobile development.”
Even though Airbnb has now decided to ‘sunset’ React Native in their mobile products, this should not have a negative impact on the future of React Native. Airbnb’s major open source projects (Lottie, react-native-maps,..) that we use on a daily basis are being handed over to the React Native Community. Having read all five blog posts we can safely say that React Native was no longer a fit for the scale of Airbnb’s applications when considering maintainability and sustainability. In the end, they have proven that React Native is an extremely powerful framework that can handle and scale big production apps. But like any tool, it isn’t always the right one for the job.
Here at In The Pocket, we still believe we’re at the dawn of some great evolutions in mobile app development when talking about React Native. The community is ever so active, with Facebook announcing they’re working on a big-scale rearchitecture to make the framework more flexible and integrate better with native infrastructure, and companies like Expo making big breakthroughs creating libraries like react-native-gesture-handler. We are continuing our efforts to bridge the gap between development & design, using tools based on React components, improving our workflow and iteration speed, and by doing so create more value for our clients.
React Native is not dead.