React Native - H2 2021 年の再確認
私たちは引き続き React Native 0.67 のリリース に興奮していますが、ここで少し時間を取って過去半年間でコミュニティが成し遂げたこと、React Native の未来に何を予定しているかについて祝いたいと思います。
特に、2021 年の第 2 四半期は私たちとコミュニティの両方にとって刺激的な半年間で、オープンソースエコシステムにさらに投資する機会がありました。いくつかのプロセスを改良し、React Native のエクスペリエンスを向上させるために皆様、私たち、そしてコミュニティに役立つまったく新しいプロセスを作成しました。
リポジトリの健全性
2021 年の第 2 四半期に私たちは、リポジトリが長年にわたって蓄積してきたOSS の負債のいくつかへの取り組みを行いました。具体的には、私たちの焦点は主にプルリクエストにありました。すべての新しいプルリクエストがタイムリーに対応されるようにするための内部プロセスを作成しました。
これは完全なリストではありませんが、貢献者から受け取った影響がある PR の一部を強調したいと思います。
- アクセシビリティ
- #31630
Flatlistによるコレクションへの入場/終了のサポートを追加
@anaskhraza 著
- #31630
- クラッシュ
- #29452
修正 - NullPointerException RuntimeException を回避するための TextInput Drawable
@fabriziobertoglio1987 著
- #29452
- ディスプレイ
- #31777
修正: TouchableNativeFeedback リップルは以前のタッチ位置から開始
@intergalacticspacehighway 著 - #31789
64 KB より大きい blob を Android でサポートする修正
@tomekzaw 著 - #31007
修正: selectionColor が Android TextInput 選択ハンドルのスタイルを決定しない
@fabriziobertoglio1987 著 - #32398
Android の Border 位置の回帰を修正
@oblador - #29099
[Android] ドット/破線の個別の設定 (左、上、右、下) を許可
@fabriziobertoglio1987 - #29117
[Android] フォントの太さの数値の修正
@fabriziobertoglio1987
- #31777
- インタラクション
- #28995
[Android] プレースホルダーが null のときの、TextInput カーソルの右へのジャンプの修正
@fabriziobertoglio1987 - #28952
[Android] FlatList で非選択可能なテキストの修正
@fabriziobertoglio1987 - #29046
[Android] 数字キーで onKeyPress イベントが発生しない
@fabriziobertoglio1987 - #31500
fix#29319 - ios ディスミスモーダル
@intergalacticspacehighway - #32179
修正: 複数行の textinput の開始時にカーソルを移動しようとすると「じゃっかん動く」。
@xiankuncheng - #29039
Android で親の境界外にあるビューのタップが機能するように修正
@hsource
- #28995
- パフォーマンス
- #31764
iOS のフォント処理の最適化
@Adlai-Holler - #32536
スプリットスクリーンでアプリのコンポーネントを再構築しない
@Somena1
- #31764
- テスト
- #31401
VirtualizedList レンダークイークスのユニットテストを追加
@NickGerleman
- #31401
これらの PR の一部は、対応する問題をクローズした際に寄せられたリアクションの数から、Meta と OSS コミュニティ全体の両方に影響を与える問題に対処していました。
他にも多数の PR を呼び出すことができ、バグの修正と React Native の改善について時間の提供をいただいた全員に感謝したいと思います。
コミュニティのエンゲージメント
半ばの数か月、私達はコミュニティとより多く「コミュニケーション」をとり、その活動を継続するためのプロセスを設定することを目標にスタートしました。以下は 2021 年第 2 四半期でのエンゲージメントの一部です。
- React Native EUカンファレンスでは React Native EU で、Joshua Gross と共に、「FacebookアプリへのFabricレンダーの導入」というトピックについて講演する機会を得ました。 Bringing the Fabric renderer to the “Facebook” app
- Reddit上での「何でも聞いて下さい」(AUA)を実施し、100問以上の質問を頂きました。AUAとは、私たちがコミュニティの活動の状況を把握し、皆様からあらゆる種類の質問を頂く、双方にとって素晴らしい機会です。まだご覧になっていない方は、是非回答をご覧ください。非常に洞察に富んだ内容となっています
- 私たちの 多数のプラットフォームのビジョン、Android 12とiOS 15に対応するための注意点、React NativeのデフォルトのJSエンジンとなるHermesのビジョンと進捗状況をご紹介しました。
- RNコアチームのKevin Gozali がReact Native Radioポッドキャストのエピソードに出演し、新しいアーキテクチャについて語りました。
- ReactConfでは、Rick Hanlon が、ReactとReact Nativeの統一された多数のプラットフォームのビジョンを共有しました。さらに、Eric Rozell と Steven Moyes は、MetaとMicrosoftの両方のアプリをサポートし、実際の使い方の中で多数のプラットフォームのビジョンを紹介する、React Nativeデスクトップの驚くべき進歩を共有しました。
2021年の下半期にさらに多くのアップデートを共有するだけでなく、これまで以上にコミュニティに依存しました。私たちは、New Architectureの初期ドラフトをドッグフーディングしていたコントリビューターからの重要なフィードバックに依存しました。また、重要なリリースの問題のデバッグや改善において、コミュニティの専門知識により大きく支えられました。
コミュニティがReact Nativeにもたらす豊富な知識を継続して育成する必要があります。
新しいアーキテクチャの展開とリリース
2022年はオープンソースで **新しいアーキテクチャの年になるでしょう**。
アプリとライブラリに新しいアーキテクチャを展開するために必要なインフラストラクチャの提供に取り組んできました。パートナーや、コアコントリビューターおよびライブラリのメンテナーを巻き込み、新しいアーキテクチャのサポートを改良し、早期段階のフィードバックを得ました。
現在、ウェブサイトで新しいガイド「新しいアーキテクチャの始め方」をリリースする準備をしています。これは、2022年にリリース予定のマテリアルの入り口となり、新しいアーキテクチャを使用してプロジェクトを移行したり開始したりするための助けになります。
また、新しいアーキテクチャに関する資料でフィードバックを送信することの重要性を強調したいと思います。まだ最後の詳細を確定する段階ですが、皆様からのご意見が、新しいアーキテクチャをよりスムーズに採用するのに役立ちます。
リリースは、新しいアーキテクチャのロールアウトにおいて重要な役割を果たします。後半の目標は、リリースをブロックする問題が停滞しないようにすることでした。その問題へのアプローチ方法は、プロセスと責任を明確にし改善することにより、より良い説明責任を明確化することでした。リリース調整は、専用の議論リポジトリで、より明確なリリース問題レポートによって行われます。
2022年前半は、新しいアーキテクチャのロールアウトをサポートするためにリリース責任を反復的に行うことを継続します。リリース候補のテストを手伝ったり、改善に取り組んだりしたい場合は、議論に参加しましょう!
モバイルへ、そしてその先へ
ReactConfのトークラインナップからわかるように、React NativeはAndroidとiOSだけではありません。
2021年初めに、多くのプラットフォームのビジョンを共有し、デスクトップとVRの両方でReact Nativeをロールアウトすることに成功しました。
プラットフォーム固有の収束パターンをReact Nativeのエクスペリエンスに取り入れることを楽しみにしています。
最後に、2021年後半にコミュニティからいただいた多大なサポートに改めて感謝したいと思います。GitHubで貢献者同士が協力し、お互いをサポートしてバグを修正し、自分の知識を共有し、何百万人ものユーザーにReact Nativeを提供するのをサポートする方法を見るのは、いつも素晴らしいことです。
乞うご期待で、さらに素晴らしい2022年を楽しみにしていきましょう🎉!