React Native 0.69の発表
React Nativeの新バージョン、0.69.0のリリースをお知らせできることを嬉しく思います。このバージョンには、React Nativeの新しいアーキテクチャに関するいくつかの改善と、React 18のサポートおよびHermesのバンドルといった新機能が含まれています。詳細は以下をお読みください!
セクション
React 18
React Native 0.69がReact 18をサポートする最初のリリースであることを皆様にお知らせできることを嬉しく思います。React 18には、useIdのような新しいフックなど、多くの改善がもたらされました。さらに、React 18には、useTransitionや完全なSuspenseサポートのような新しい並行処理機能が含まれています。
React Native 0.69では、React 18はデフォルトで有効になっています。ただし、New Architectureに移行していない場合は、並行レンダリングや並行機能を使用しない機能のみを利用できます。New Architectureは並行レンダリングを念頭に置いて構築されていますが、古いアーキテクチャではそのサポートを追加することはできません。
React NativeでのReact 18のサポートについては、こちらで詳しく学ぶことができます。
バンドルされたHermes
このリリース以前は、HermesとReact Nativeは別々にリリースされていました。そのため、どのバージョンのHermesがどのバージョンのReact Nativeと互換性があるのかという混乱が生じていました。この問題を解決するため、React Native 0.69から、React Nativeと互換性のあるバージョンのHermesを同梱します。この変更により、React NativeでのHermesの使用がはるかに安定します。
適切なバージョンのHermesの使用はReact Nativeによって処理されますが、統合が意図通りに機能することを確認するために、アップグレードヘルパーの手順に従ってください。Hermesをまだ有効にしていない場合は、こちらの手順に従って有効にすることができます。他のJavaScriptエンジンも引き続きサポートしますが、最高の体験を得て、より良いサポートを提供するために、すべての人にHermesへの移行をお勧めします。
AndroidのNew Architectureを使用しているユーザーは、ソースからHermesをビルドする必要があることに注意してください。ソースからHermesをビルドする場合、Windowsユーザーは追加でこれらの手順に従う必要があります。
React NativeがHermesをどのようにバンドルして機能させるかについて詳しく知りたい場合は、こちらの詳細なドキュメントをご覧ください。
New Architecture
AndroidとiOSの両方でNew Architectureの展開を続けています。まだアプリやライブラリを移行していない場合は、こちらの手順に従ってください。New Architectureのツールとリソースに関する最新のアップデートを読んで、詳細を学ぶこともできます。
0.69のハイライト
前述のように、このリリースの最も重要な改善点は、React 18のサポートとバンドルされたHermesに集中しています。しかし、他にも注目すべき変更がありました。
- iOS/tvOS SDK 11.0のサポートを非推奨にしました。バージョン12.4以上が必要になりました。
- Android向け開発を行うM1ユーザーのためのより良いサポート
- node実行可能ファイルをより確定的に参照するための新しい
.xcode.env設定ファイルの追加 - React NativeはAndroid 11の最新のステータスバーAPIを使用するようになりました。
- C++17のサポート
- iOSデバッグメニューに新しい
hotkeysEnabledオプションを追加
破壊的変更
いくつかの破壊的変更もありました。
- React Native CLIが新しいメジャーバージョン8.0にバンプされました。
linkおよびunlinkコマンドが自動リンクの導入により削除されました。- 非推奨の
initCompatが削除されました。代わりにinitコマンドを使用してください。 - 非推奨の
run-androidプロパティが削除されました。 installおよびuninstallコマンドが削除されました。react-native.config.jsからアセットとフックが削除されました。これらのプロパティをconfigから削除する必要があります。podspecPathがiOSの依存関係configから削除されました。run-iosから--project-pathオプションが削除されました。- iOSのソースディレクトリ検出が、Xcodeプロジェクトを探すことからPodfileを探すことに変更されました。
console.disableYellowBoxのサポートが削除されました。- すでに非推奨だったプロパティタイプが削除されました(cdfddb4dad、3e229f27bc、10199b1581)。
- RN 0.65以降非推奨となっていた
removeListenerがAppearanceから削除されました。 SegmentedComponentIOSを使用していた場合、サードパーティライブラリ、例えばsegmented-controlに置き換える必要があります(235f168574)。
アップグレード
そして、いくつかの依存関係をアップグレードしました。
- AGPを7.1.1にバンプしました。アプリではこのバージョンを使用することをお勧めします。
- Android用の
boostがiOSとの整合性を取るために1.76に更新されました。 - Rubyが2.7.5にバンプされました。
- Metroの直接の依存関係が0.70.1にアップグレードされました。
変更点の全リストは変更履歴で確認できます。
謝辞
629件のコミットを持つ80人の貢献者によって、このリリースが実現しました。皆様、ありがとうございます!
また、このリリースが可能な限り安定することを保証するためにフィードバックをくださったリリース・テスター、サポーター、その他すべての皆様に感謝いたします。

