Ignite Microsoft has hinted that cross-platform development framework React Native is a key solution to the problem of writing applications that span both Windows and mobile.
Cross-platform development is critical for Microsoft since both first-party and third-party apps accessing Office 365 or Azure services need to run on iOS and Android as well as on Windows. Underlining the point, the company has announced Surface Duo, a dual-screen Android device expected towards the end of next year.
In 2016 the company acquired Xamarin, enabling development for iOS, Android and macOS using C# and .NET. Microsoft has also invested in .NET Core, which runs on Windows, macOS and Linux.
Initially aimed at server development, .NET Core is evolving to support desktop Windows applications. Microsoft has also said that .NET 5 will be available in late 2020, and will "target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more".
Tangled in .NET: Will 5.0 really unify Microsoft's development stack?READ MORE
React Native for Windows generates .NET code, but this will be replaced with a C++ implementation in an upcoming release, currently called vNext. Presenting the plans at Ignite, Microsoft program managers Kalita Saintonge and Steven Moyes said that the vNext version, which should be production-ready by the end of 2019, reduces memory requirements and improves performance. They also noted that React Native is much leaner than the Electron framework, another cross-platform solution, because it does not require an embedded browser engine.
There are several clues concerning the importance Microsoft attaches to React Native. One is that it is already being used by the Office team. If you right-click in the latest Word, for example, and add a comment, the pop-up box that appears is written in React Native. So too is the forthcoming Office Calendar application, now in preview. These applications use the vNext implementation, rather than .NET.
"You might be thinking, could I use React Native to target the new [Surface] devices? The answer to that question is, we hope so," said Moyes, showing a slide depicting Surface Duo. "React Native is building native applications, it stands to reason that React is a great platform for building apps that target multiple platforms."
Microsoft's official line is that Xamarin and React Native are equally good choices for targeting Windows and mobile, and that Xamarin is the sensible choice for those with existing C# code or skills, but it looks like React Native with C++ code generation is favoured by the Windows and Office teams for best performance.
What about Windows 7? This is an issue for business applications in companies that still use Windows 7, or for any Windows developer who wants the widest reach. You can do this in React Native using the WPF version, but Moyes was not keen. "I believe we have a WPF component as well but most of our active investment is happening in the UWP layer. WPF… is more of a community module," he told Ignite attendees. ®