メインコンテンツへスキップ

2021年下半期のReact Native

·6分で読めます
Luna Wei
Luna Wei
ソフトウェアエンジニア @ Meta

この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 のリポジトリには、これまで、イシューやプルリクエストがタイムリーにレビューされることを保証するプロセスがありませんでした。今期の私たちの仕事は二重です。まず、大量の貢献のバックログを解決する必要があり、次に、入ってくる貢献を処理するための持続可能な慣行を構築する必要があります。この作業は、コミュニティが新しいアーキテクチャを使い始めるにつれて、イシューやプルリクエストを通じてコミュニティからのより多くのエンゲージメントを得るための成功も築くことを願っています。このプロジェクトボードを使用して、バックログの進捗状況を追跡できます。

テクノロジーを前進させる

新しいアーキテクチャ機能

前述のとおり、新しいアーキテクチャは先日、Facebook モバイルアプリへの展開を完了しました!私たちはすでに、React Native のパフォーマンス曲線を変化させる新しい機能を構築しています。これには、React Native での Concurrent Rendering のサポートが含まれます。Concurrent Rendering は、React が作業を一時停止および再開し、タッチジェスチャーのような高優先度イベントに迅速に対応できるようにします。また、Concurrent Rendering を使用して、オフスクリーン製品機能のレンダリングにアイドル CPU サイクルを利用し、オンスクリーンユーザーインタラクションを遅くしないことにも非常に興奮しています。

モバイルとその先へ

Facebook で React を使用してモバイルエクスペリエンスを強化することに圧倒的な成功を収めており、パートナーからは素晴らしいモバイル製品が生まれています。今度はその成功をより多くのプラットフォームにもたらしたいと考えています!多くのプラットフォームをターゲットにすることで、新しい教訓を学び、モバイルプラットフォームでの提供をさらに改善できると信じています。(これについては後の投稿で詳しく説明します。)エキサイティングなニュースは、これを現実にするためのステップをすでに踏み出していることです!

メッセンジャーデスクトップ

昨年の夏、私たちは Microsoft と提携して Windows と macOS での React Native 開発を加速することで、モバイル以外の分野にも焦点を拡大しました。Facebook の Messenger チームと提携し、デスクトップでのみ可能なユーザーエクスペリエンスを実現し、以前の Electron 実装よりも大幅なパフォーマンス向上を実現しました。私たちのビジョンは、高品質で楽しい、*ネイティブ*のデスクトップユーザーエクスペリエンスと、React Native の優れた開発者エクスペリエンスを組み合わせることです。

Messenger チームは、デスクトッププラットフォームや大画面のユニークな機能をさらに活用する新しい方法を見つけることを含む、Messenger デスクトップアプリの野心的な計画を立てています。デスクトップでの React Native へのさらなる投資により、これらのエクスペリエンスを引き続き実現できることを楽しみにしています。

バーチャルリアリティの React Native

Oculus は長年にわたり、VR で人々がアプリケーションやゲームを購入する Store などのコアエクスペリエンスを強化するために React Native を使用してきました。H2 では、React Native と Oculus は協力して VR に新しいエキサイティングなエクスペリエンスをもたらします。また、VR からモバイルへ、モバイルから VR へと最適化と改善をもたらしています。これには、コントローラーのような新しい入力タイプから新しいメモリ使用量最適化まで、VR の独自の要件をサポートするために React Native を拡張することが含まれます。これは、React Native を使用して VR 用の没入型エクスペリエンスをどのように構築できるかを探求し、影響を与えるためのエキサイティングな旅の始まりです。

まとめ

私たちのH2の計画が私たちと同じくらい皆さんも興奮させることを願っており、今後数ヶ月でさらに多くの情報を共有できることを楽しみにしています!また、2021年9月1日に開催されるReact Native EUに参加します。そこで、チームメイトのジョシュア・グロス(@joshuaisgross)が、世界最大のReact Nativeアプリのアーキテクチャをどのように置き換えたかを共有します。まだ登録していない場合は、React Native EUに登録してください!それまでの間、イベント、ロードマップ、その他多くの更新情報については、Twitter(@reactnative)で私たちとつながってください。