Microsoft and Facebook have announced that the next target platform for React Native is the Universal Windows Platform (UWP).
The news is good for developers that already leverage React Native to target multiple device platforms, allowing them to reuse components on Windows. For UWP developers, this provides yet another way to develop apps as they can already use JavaScript to build an app.
Despite its JavaScript nature, React Native code will translate into C# code. In the announcement post, Eric Rozell said:
the framework translates the React DOM from JavaScript into method calls to view managers on the native platform, allowing developers to proxy direct calls to native modules through JavaScript function invocations. In the case of React Native on UWP, the view managers and native modules are implemented in C#, and the view managers instantiate and operate on XAML elements.
The JavaScript code that actually runs in the app is handled by Chakra.
To support development of React Native apps, Microsoft has released the React Native extension for Visual Studio Code. This extension provides a debugging environment and enables developers to use IntelliSense to look through the React Native APIs.
Before, one common way to develop React Native apps was to use Facebook's own Nuclide which is not available on Windows. Visual Studio Code is cross platform and gives React Native developers on Windows users an excellent tool.
Developing React and Angular apps using WinJS has been possible for a while, but not in a "native control" sense. Recently, a community project that allows developers to use Angular 2 to build UWP apps was launched on GitHub.
By contrast, the React Native apps -- while built using JavaScript and React.js -- compile the UI elements down to native controls on the target platform rather than rendering JavaScript based controls.
React Native developer and author Bonnie Eisenman thinks the news is just the start of a bigger trend:
I think React Native for UWP is really going to establish RN as the lingua franca for multi-platform development in general, beyond just mobile apps. It also highlights that React Native isn't about running an identical app on multiple platforms; it's about facilitating the best user experience for each platform, using the same developer skillset.
UWP joins Android and iOS as a major platform target for React Native. Currently, the UWP project is a separate entity from the rest, but the goal is to contribute some of the work back to the mainline project.