Microsoft、React NativeのUWP対応をサポート、VS Codeにツールを追加

React Nativeの次のターゲットプラットフォームはUWP(Universal Windows Platform)になると、MicrosoftとFacebookが発表した。

すでに複数のプラットフォームをターゲットにReact Nativeを利用している開発者にとって、これは朗報だ。コンポーネントをWindowsで再利用できるようになる。UWP開発者にとっては、すでにJavaScriptを使ってアプリ開発ができるので、これはまた別の方法を提供するものだ。

React NativeコードはJavaScriptであるにもかかわらず、C#コードに変換される。Eric Rozell氏は発表記事でこう言っている。

フレームワークは、JavaScriptのReact DOMを、ネイティブプラットフォーム上のビューマネージャーに対するメソッド呼び出しに変換します。おかげで開発者は、ネイティブモジュールを直接呼び出す代わりに、JavaScriptの関数を実行すればよいのです。UWPの場合、ビューマネージャーとネイティブモジュールはC#で実装されており、ビューマネージャーはXAML要素のインスタンスを生成して操作します。

アプリで実際に実行するJavaScriptコードは、Chakraによって処理される。

React Nativeアプリの開発をサポートするため、MicrosoftはVisual Studio CodeのReact Nativeエクステンションをリリースした。これはデバッギング環境を提供し、開発者はIntelliSenseを使ってReact Native APIを調べることが可能になる。

React Nativeアプリを開発するのに、FacebookのNuclideがよく使われているが、Windowsでは使えない。Visual Studio Codeはクロスプラットフォームであり、WindowsユーザーのReact Native開発者にとって、素晴らしいツールになるだろう。

これまでもWinJSを使ってReactおよびAngularアプリを開発することは可能であったが、それは「ネイティブコントロール」という意味ではない。最近では、Angular 2を使ってUWPアプリを構築するコミュニティプロジェクトが、GitHubで立ち上がっている。

これに対して、React Nativeアプリは、JavaScriptとReact.jsで作られているが、JavaScriptベースのコントロールをレンダリングするわけではない。UI要素はターゲットプラットフォーム上のネイティブコントロールにコンパイルされる。

React Nativeの開発者であり作者のBonnie Eisenman氏は、このニュースは大きなトレンドの始まりにすぎないと考えている。

UWPのためのReact Nativeは、単にモバイルアプリだけでなく、一般的なマルチプラットフォーム開発の共通語として、React Nativeを確立することになるでしょう。また強調しておきたいのですが、React Nativeの目的は、同じアプリを複数のプラットフォームで動かすことではありません。同じスキルセットを使って、それぞれのプラットフォームに最高のユーザー体験を提供しやすくすることです。

AndroidとiOSに加えて、UWPがReact Nativeの主要なターゲットプラットフォームになる。現在、UWPプロジェクトは他とは別になっているが、成果を本線にコントリビュートすることを目指している。