Airbnb, Udacity Abandon React Native
Dev teams at both Udacity and Airbnb began to use React Native in 2016, and both recently detailed why they are no longer using it, returning to a pure native approach for their Android and iOS apps.
"In 2016, we took a big bet on React Native," a June 19 post from the Airbnb Engineering & Data Science team stated. "Two years later, we're ready to share our experience with the world and show what's next."
That experience for the online property rental service boils down to this conclusion (published later in a five-part series): "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."
Meanwhile, the mobile-engineering team at Udacity, a for-profit education organization, detailed its React Native experience in a July 2 post. The team said it stopped using React Native when the only remaining features using it were being sunset so React Native support was no longer needed. What's more, it stopped investing in React Native for new features.
Reasons for not using React Native for new features include:
- A decrease in the number of features being built on both platforms at the same time
- An increase in Android-specific product requests
- Frustration over long-term maintenance costs
- The Android team's reluctance to continue using React Native
Regarding that last point, Udacity's iOS team might possibly use React Native in the future, as it was "generally pretty happy working with React Native," but the Android team -- facing issues with Android fragmentation and more -- won't be using it in the future. "We found the process of integrating with React Native components cumbersome, and felt the resulting experiences didn't work as well across all Android devices," the post said.
Airbnb, meanwhile, explained the technical (as opposed to organizational) issues that caused it to abandon React Native. In detailing things that didn't work so well, the team touched upon:
- React Native immaturity
- Maintaining a fork of React Native
- React Native open source libraries
- Parallel infrastructure and feature work
- Crash monitoring
- Native bridge
- Initialization time
- Initial render time
- App size
- Long lists
- Upgrading React Native
- Troublesome crashes
- SavedInstanceState Across Processes on Android
Those issues are explained in detail in this post.
Both dev teams, however, had good things to say about React Native, and reasons for abandoning it were complicated, including organizational and other issues. Both teams emphasized their experiences were only specific to their organizations and shouldn't be used as advice or an example for other organizations.
"Different teams had a wide range of experiences with React Native," Airbnb said. "React Native proved to be an incredible tool at times while posing technical and organizational challenges in others."
Udacity's dev team outlined the things that went well with React Native, including:
- It's quite easy to get up and running with React Native and start building for both platforms
- We were able to prototype Feature 1 on both platforms at the same time
- A single developer, on a cross-functional team, was able to build the large majority of Feature 2 for both platforms at the same time
- The team's collective understanding of React Native increased
"I don't think anyone on our team believes that React Native is without its merits," said Udacity engineer Nate Ebel in the post. "I certainly believe there are use cases for which React Native is very well suited."
David Ramel is the editor of Visual Studio Magazine.