Once hailed as a breakthrough in mobile development, Facebook’s React Native framework is stumbling, with users reassessing their commitment to the technology and Facebook looking to overhaul it.
React Native has been used at companies like Uber to Tesla, Instagram, and Facebook itself. Late in 2015, analyst firm IDC saw React Native as offering a new paradigm for hybrid development, freeing developers from the Webview component and delivering native performance. React Native opened the native device platform to web developers, said IDC. But IDC did add the caveat that the technology was still immature at the time.
What’s wrong with React Native
- Citing technical problems, including initialization issues and immaturity, in June Airbnb said it would sunset its use of React Nativeand opt for native apps instead. Organizational issues, including engineers having to debug outside of their expertise, cropped up as well. Many iOS and Android engineers were reluctant to apply for work at Airbnb, given the company’s inclination toward React Native.
- Udacity has moved away from React Native due to challenges in UI design and integration as well as performance and maintenance.
- Discord, which provides a text and voice chat app for gamers, found issues with React Native including poor performance of touch events and lack of 64-bit support on Android. But Discord is sticking with React Native, citing its ability to bridge the gap between the web and mobile.
How Facebook is trying to fix React Native
Facebook’s planned changes include:
- Addition of
asyncrendering to allow multiple rendering priorities and simplify asynchronous data handling.
- Simplifying the bridge to make it faster and more lightweight.
Walmart has its own fix: React Native integrator
Not everyone is waiting for Facebook to work out the kinks in React Native. Walmart Labs has built an open source platform, Electrode Native, for integrating React Native components into existing mobile applications. Running on Node.js 6 or later, Electrode Native lets developers select features to add to an application and packages them in a single library. Built-in dependency version control is included to control native dependencies for alignment to React Native components.
In moving to React Native, Walmart had sought a replacement for underperforming hybrid views in the company’s mobile application, which were essentially a browser window inside a mobile app. While the company was pleased with React Native, it found adding new features time-consuming. Also, communication between native parts of an app and React Native was not easy.