Microsoftが提供するWindows 10ネイティブアプリケーション用フレームワークであるReact Native Windowsの最新リリースでは、React Nativeが最新バージョンにアップグレードされるとともに、WinUI 3(プレビュー版)が試験的にサポートされている。MacOSネイティブアプリケーション用のreact-native-macosも新しくなった。
Microsoftのreact-native-windowsフレームワークの最新リリースを使えば、ReactとWin UI 3を使ったWindowsネイティブアプリの開発が可能になる。React Native Windowsアプリは、Universal Windows Platform(UWP)アプリである。従って、すべてのサポート対象デバイス上で、Windows Runtime(WinRT)を使って共通機能にアクセスすることができる。あらゆるWindow 10デバイス — デスクトップ、タブレット、2-in-1、Xbox、複合現実(mixed reality)デバイス — をターゲットにすることが可能だ。
Win UI 3は、Windows 10アプリのWindows APIアクセスを統合する開発者用のコンポーネントとツールの新たなセットであるProject Reunionの中で、重要な位置を占めるコンポーネントのひとつである。Windowsアプリを開発する場合、アプリケーションプラットフォームとフレームワークとして、Microsoft Foundation Class (MFC)、.NET/Windows Forms、Windows Presentation Foundation (WPF)、Universal Windows Platform (UWP)など、いくつかの選択肢がある。先日のプレビューリリースで、Microsoftは、Project Reunionの目的を次のように説明している。
どのアプリモデルを選択しても、Project Reunionの提供する同じWindows APIセットにアクセスすることが可能になります。
将来的にアプリモデル間の違いをさらに少なくするため、Project Reunionには今後も投資を続けていきます。Project ReunionにはWinRT APIとC言語のネイティブAPIが含まれる予定です。
React Native for Windowsは、最近ではXbox Storeのアプリケーション開発で使用されている。Stephen Crain氏は昨年末のコミュニティスタンドアップで、WindowsデバイスをReact Nativeの新たなターゲットにすることは、生産性やパフォーマンスによい影響があると説明した。
最も多い質問は、"なぜReact Nativeなのか?"、というものです。これには、2つの重要なファクタがあります — 開発者の生産性、そして、アプリのパフォーマンスです。ReactとJavaScriptコミュニティの力によって達成可能な生産性には、驚くべきものがあります。さまざまなアプリケーションコンセプトに対して立証された、多数のオープンソースライブラリを使用することができるのです。[...] ドキュメントやチュートリアルも用意されているので、初めての開発者でもすぐに使用することができます。[…]
[アプリケーションのパフォーマンスについて、] 新しいXboxストアの開発に際しては、ローンチ時間の速さとスムーズなイテレーションを最重要機能としていました。React Nativeを使って、高速でスムーズなアプリの開発を試みている開発者がたくさんいることが分かりました。エコシステムとフレームワークの普及度が大きく影響する可能性のある、新たな領域がここにあります。JavaScriptに対する大きな関心は、今後何年にもわたって、JavaScriptエンジンのイノベーションを推し進めていくことでしょう。
React NativeアプリケーションでWindowsをサポートするには、エクステンションのインストールが必要だ。その上でreact-native-windows CLIを使ってUWPアプリを作成する(C++とC#から選択が可能)。
React Native Windowsアプリは署名とパッケージ化が可能なので、プライベートなアプリケーションストアやMicrosoft Storeを通じて配布、インストール、アップデートすることができる。ストア経由でアプリケーションにアクセス可能にするには、事前にストアに提出して認定テストをパスする必要がある。
WinUIは、MicrosoftのFluent UIデザインシステムに基づいたユーザインタフェースを構築するためのコントロールを含む、Windowsフレームワークである。Fluent UIはオープンソースのデザインシステムで、出力先の選択肢としてWebやWindows、iOS、macOS、Androidなど、幅広いデバイスをサポートする。Fluent UI React Nativeコントロールはクロスプラットフォームである。現時点では限定的(Button、Link、Persona、Text、Separator)だが、さらに多くの機能の開発がハイプライオリティで進められている。
フレームワークの使用法を示すサンプルにアクセスするために、専用のGitHubリポジトリも用意されている。