2021年下半期のReact Native
過去1年間で私たちの世界は大きく変化し、React Nativeも例外ではありません。私たちはチームに新しいメンバーを迎え(最終的に直接会えることを楽しみにしています!)、プロジェクトは成熟し、新しい機会が生まれました。この投稿や今後の投稿で、これらすべてを皆さんと共有できることを楽しみにしています!
Facebookでは、私たちのチームは半期サイクルで動いています。半期ごとに戦略を見直し、計画を立て、社内で共有しています。今日は、私たちの下半期の計画をコミュニティの皆さんと共有したいと思います。
2021年下半期は、React Nativeにとってエキサイティングな半期です。私たちの重点分野には、コミュニティの育成、オープンソースへの新しいアーキテクチャの展開開始、テクノロジーの推進が含まれます。
コミュニティを成功に導く
React Nativeのオープンソースエコシステムは、その最大の強みの一つです。私たちは、コミュニティとのパートナーシップを深めるための最良の方法として、以下の分野を特定しました。
コミュニティエンゲージメント
全員が同じ方向に向かうためには、コミュニティに私たちのビジョンと現状を継続的に伝えることが重要です。増分的な進捗状況を公に共有することは、私たちにとって(まだ)自然なことではありません。今期は、その能力を養い、摩擦を減らすためのプロセスを確立する、より一貫したコンテンツスケジュールにコミットします。更新情報を共有するだけでなく、この機会を利用してコミュニティの成果を紹介したいと考えています。
新しいアーキテクチャの展開とリリース
H1では、FacebookアプリのすべてのReact Nativeモバイル製品に新しいReact Nativeアーキテクチャの展開を完了しました。Facebookは、Marketplaceタブやデートプロフィールなどの画面で構成されており、1000以上の画面を移行しました。
H2では、この新しいアーキテクチャをコミュニティに導入し始めます。ライブラリとアプリケーションを移行する方法を示すプレイブックを作成しました。人気のReact Nativeライブラリを保守する初期パートナーとドラフトをすでに共有しています。彼らからのフィードバックを得て、ライブラリのアップグレードを支援し、プレイブックと実装を改善する方法を学ぶことを期待しています。作業が安定次第、プレイブックをより広く共有する予定です。
また、React Nativeのリリースプロセスの改善にも注力しています。新しいReact Nativeアーキテクチャを段階的にリリースするには、頻繁で信頼性の高いリリースが必要になります。私たちの目標は、リリースを妨げる要因を早期に特定し、ターンアラウンドタイムを短縮することです。これにより、貢献者や開発者の負担を軽減し、より予測可能なリリーススケジュールが可能になります。
リポジトリの健全性
開発者がテクノロジーを評価する際、そのリポジトリの健全性は重要な指標となります。この印象は、プルリクエストのスループット、スター数、最後のコミットからの経過時間などの指標によって形成されます。React Nativeリポジトリには、これまで、問題やプルリクエストがタイムリーにレビューされることを保証するプロセスが欠けていました。今期の私たちの仕事は二つあります。大量のコントリビューションのバックログを解決することと、届くコントリビューションを処理するための持続可能なプラクティスを構築することです。この作業が、コミュニティが新しいアーキテクチャを使い始めるにつれて、問題やPRを介したコミュニティからのより多くのエンゲージメントの成功にもつながることを願っています。このプロジェクトボードを使用してバックログの進捗状況を追跡できます。
テクノロジーの推進
新しいアーキテクチャ機能
前述の通り、私たちの新しいアーキテクチャは最近、Facebookのモバイルアプリへの展開を完了しました!私たちはすでに、React Nativeのパフォーマンスカーブを変える新しい機能を構築しています。これには、React NativeでのConcurrent Renderingのサポートが含まれます。Concurrent Renderingにより、Reactは作業を一時停止・再開し、タッチジェスチャーのような高優先度イベントに素早く応答できるようになります。私たちが特に楽しみにしていることの1つは、Concurrent Renderingを使用して、画面上のユーザー操作を遅くすることなく、オフスクリーンプロダクト機能のレンダリングにアイドルCPUサイクルを利用することです。
モバイルとその先へ
FacebookではReactを使用してモバイル体験を強化することに圧倒的な成功を収めており、パートナーからは素晴らしいモバイル製品が生まれています。今度は、その成功をより多くのプラットフォームにもたらしたいと考えています!多くのプラットフォームをターゲットにすることで、新しい教訓を学び、モバイルプラットフォームでの提供をさらに改善できると信じています。(これについては後日改めて詳しくお伝えします。)エキサイティングなニュースは、これを現実にするための措置をすでに開始していることです!
メッセンジャーデスクトップ
昨年の夏、私たちはMicrosoftと提携して、WindowsとmacOSでのReact Native開発を加速することで、モバイル以外の分野にも焦点を拡大しました。FacebookのMessengerチームと提携し、デスクトップでしか実現できないユーザー体験を可能にし、以前のElectron実装よりも大幅なパフォーマンス向上を実現しました。私たちのビジョンは、高品質で楽しいネイティブデスクトップユーザー体験と、React Nativeの優れた開発者体験を組み合わせることです。
メッセンジャーチームは、メッセンジャーのデスクトップアプリに関して意欲的な計画を立てています。これには、デスクトッププラットフォームや大画面のユニークな機能をさらに活用する新しい方法を見つけることも含まれます。私たちは、デスクトップ版のReact Nativeにさらに投資することで、これらの体験を引き続き可能にできることを楽しみにしています。
バーチャルリアリティにおけるReact Native
Oculusは以前からReact Nativeを使って、人々がVRでアプリケーションやゲームを購入するStoreのようなコア体験を動かしてきました。H2では、React NativeとOculusが提携して、VRに新しいエキサイティングな体験をもたらします。また、VRからの最適化や改善をモバイルへ、モバイルからの最適化や改善をVRへと導入しています。これには、コントローラーのような新しい入力タイプから、新しいメモリ使用量最適化まで、VRの固有の要件をサポートするためにReact Nativeを拡張することが含まれます。これは、React Nativeを使ってVRで没入型体験を構築する方法を探求し、影響を与えるエキサイティングな旅の始まりです。
まとめ
私たちのH2計画が私たちと同じくらい皆さんも興奮させることを願っています。今後数ヶ月間でさらに多くのことを皆さんと共有できることを楽しみにしています!また、2021年9月1日に開催されるReact Native EUにも参加します。そこでチームメイトのJoshua Gross(@joshuaisgross)が、世界最大のReact Nativeアプリのアーキテクチャをどのように置き換えたかについて共有します。まだ登録していない方は、React Native EUに登録してください!それまでの間、イベント、ロードマップ、その他多くの最新情報については、Twitter(@reactnative)で私たちとつながってください。