Microsoft recently announced at Microsoft Build 2019 a MIT-licensed, performance-oriented re-implementation of React Native for Windows. The new React Native for Windows will enable React Native developers to build native Windows apps with React. With the Windows 10 SDK support, developers may target a large variety of Windows 10 devices such as PCs, tablets, laplets, Xbox, or Mixed Reality devices.
The react-native-windows project team is re-implementing React Native Windows in C++. The objectives are two-fold. On the one hand, a C++ implementation is poised to bring better performance than is currently realized with the current C# codebase. On the other hand, a C++ codebase aligns better with the shared C++ react-native core as it evolves. The project documentation explains:
The ongoing direction of
react-native
involves a closer interaction between C++ and JS which is hard to achieve with a separate C# implementation. (…) We are working on a rewrite ofreact-native-windows
built in C++ that reuses the C++ core bridge implementation from Facebook’s React Native. This will allow React Native for Windows to innovate and provide features by sharing the same core as Facebook’s React Native.
The new repository adds support for the Windows 10 SDK, which potentially allows React Native developers to target any Windows 10 devices. The React Native Windows team intends to maintain a large degree of backward compatibility with existing C# apps, view managers, and native modules, while allowing minimal breaking changes. The first project milestone, listed as due by June 30 of this year, will seek to ensure that developers can create meaningful React Native apps for Windows 10 with adequate performance, accessibility and feature parity with React Native.
The new implementation of React Native for Windows occurs in the vnext
branch of the Github repository and currently supports React Native 0.58. The project documentation states that the vnext
branch will release in lock-step with facebook/react-native, with matching version numbers. For example:
react-native@0.57.* -> react-native-windows@0.57.0-vnext.*
react-native@0.58.* -> react-native-windows@0.58.0-vnext.*
The React Native Windows plugin, including modifications to the original Facebook source code, and all newly contributed code is provided under the MIT License. Contributions are welcome and must follow the contribution guidelines.