React Native - 2021年下半期まとめ
私たちは皆、React Native 0.67のリリースにまだ興奮していますが、この機会に、コミュニティが過去半年間に達成したことを称賛し、React Nativeの将来に向けて展望していることを共有したいと思います。
私たちは皆、React Native 0.67のリリースにまだ興奮していますが、この機会に、コミュニティが過去半年間に達成したことを称賛し、React Nativeの将来に向けて展望していることを共有したいと思います。
皆さん、新年あけましておめでとうございます!本日、React Nativeの最新リリースである0.67.0と、過去数か月間取り組んできたリリースプロセスに関するいくつかのアップデートを発表します。
2019年にHermesを発表して以来、コミュニティでの採用がますます増加しています。React Nativeアプリの人気のあるメタフレームワークを維持しているExpoのチームは、最近、Expoで最も要望の多かった機能の1つであった後、Hermesの実験的サポートを発表しました。人気のモバイルデータベースであるRealmのチームも最近、Hermesのアルファサポートを提供開始しました。この記事では、過去2年間でHermesをReact Nativeにとって最高のJavaScriptエンジンにするために達成した最もエキサイティングな進歩のいくつかを紹介したいと思います。これらの改善と今後の改善により、HermesをすべてのプラットフォームでReact NativeのデフォルトのJavaScriptエンジンにすることができると確信しています。
本日、Android 12とiOS 15のサポートに加えて、修正と一般的なアップデートを含むReact Native v0.66をリリースします。
皆さん、こんにちは!
今年後半に新しいモバイルOSバージョンがリリースされるため、リリースが一般公開されたときにリグレッションを回避するために、事前にReact Nativeアプリを準備することをお勧めします。
私たちは最近、React Nativeの多くのプラットフォームビジョンを共有し、Reactを他のプラットフォームに拡張することで、他のすべての人にとってフレームワークがどのように改善されるかについて説明しました。私たちは、WindowsおよびmacOS向けのReact NativeでMicrosoftと、VRでのReact NativeでOculusと提携することで、過去数年間にわたってこのビジョンに大きな進歩を遂げてきました。
今年初めに開始した計画の一環として、私たちはこれらのプラットフォームへの焦点を強め、私たちのビジョンを達成するためにチームを拡大しています。新しいチームメイト、そして今後さらに増えるであろうチームメイトをサポートするために、2人のエンジニアリングマネージャーを募集しています。1人はデスクトップ向けReact Nativeのサポート、もう1人はVR向けReact Nativeのサポートを担当します。
React Nativeは、Facebookと業界の他の場所の両方で、モバイル開発の基準を引き上げることに非常に成功しています。私たちは新しい方法でコンピューターと対話し、新しいデバイスが発明されるにつれて、React Nativeがすべての人にとって役立つことを願っています。React Nativeは元々モバイルアプリを構築するために作成されましたが、多くのプラットフォームに焦点を当て、各プラットフォームの長所と制約に合わせて構築することで、相乗効果が生まれると信じています。このテクノロジーをデスクトップとバーチャルリアリティに拡張したとき、私たちは大きなメリットを目の当たりにしました。そして、これがReact Nativeの将来にとって何を意味するのかを共有できることに興奮しています。
この1年間で、私たちの周りの世界は大きく変わり、React Nativeも例外ではありません。私たちのチームには新しいメンバーが加わり(いつか直接会えるのを楽しみにしています!)、プロジェクトは成熟し、新しい機会が生まれています。この記事と今後の記事で、これらすべてを皆さんと共有できることを嬉しく思います!
Facebookでは、チームは半年サイクルで作業を進めています。各期間で戦略を見直し、計画を立て、社内で共有します。本日は、H2計画をコミュニティの皆様と共有したいと思います。
2021年下半期は、React Nativeにとってエキサイティングな期間です。注力分野は、コミュニティの育成、新しいアーキテクチャのオープンソース化の開始、そして技術の進化です。
本日、Hermesの新バージョン、アクセシビリティの向上、パッケージのアップグレードなどを含むReact Nativeバージョン0.65をリリースします。
React Native向けに最適化されたFacebookのオープンソースJavaScript VMであるHermesがバージョン0.8.1にアップグレードされました。このリリースの主な機能は以下のとおりです。
Intl
)がAndroidのHermesに組み込まれ、デフォルトで有効になりました。APIサイズオーバーヘッドはわずか57〜62Kです(JSCの6MiBと比較して)。この変更により、Hermesユーザーはロケールポリフィルを必要としなくなりました。この実装を推進してくれたMicrosoftの@mganandrajとその他のパートナーに感謝します!Function.prototype.toString
の変更により、不適切な機能検出によるパフォーマンス低下が修正され、ソースコード挿入のユースケースがサポートされるようになりました。Hermesの変更履歴はこちらをご覧ください。
これらの新機能とメリットを活用するために、まだHermesをオプトインしていない場合は、こちらの手順に従ってください!
昨年、FacebookはGAAD pledgeに参加し、React Nativeのアクセシビリティを向上させることを約束しました。0.65では、このpledgeの結果とその他のアクセシビリティの成果を共有します。主な変更点は以下のとおりです。
getRecommendedTimeoutMillis
APIを追加しました。これは、Androidのアクセシビリティオプションで設定されているユーザーの推奨デフォルトタイムアウト値を公開するもので、コントロールの確認や操作に時間がかかるユーザー向けです。disabled
やunselected
などのUI状態を正しくアナウンスするように、一般的な修正を行いました。未解決のアクセシビリティ問題はこちらでフォローまたは貢献できます!
react-native-codegen
バージョン0.0.7
がpackage.json
のdevDependency
として必要になりました。このリリースには、**61人のコントリビューター**による**1100件以上**のコミットが含まれています。このリリースに貢献し、サポートしてくれた皆様に感謝いたします!完全な変更履歴はこちらをご覧ください。
FacebookがReact NativeをアクセシブルにするためのGAAD Pledgeに参加してから1年が経ち、プロジェクトは私たちの期待を上回りました。このプロジェクトは2021年も継続されることを発表でき嬉しく思います。これまでの進捗状況について皆様にお知らせしたいと思います。昨年、React Nativeのアクセシビリティのギャップを徹底的に分析した後、これらのギャップを埋める作業が開始されました。
90件の未解決のギャップ分析の問題から始め、GitHubでプロジェクトが開始された2021年3月から現在まで
11件の問題がコミュニティによって解決されました。
19件の問題がReact Nativeチームによって評価され、クローズされました。
9件のプルリクエストがマージされました。
1件のプルリクエストがReact Nativeドキュメントにマージされました。
React Nativeコミュニティの皆様には、この1年間で、よりアクセシブルなReact Nativeの実現に向けて大きく貢献していただいたことに感謝いたします。すべてのコントリビューターの努力が、React Nativeのアクセシビリティ向上に役立っています。