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はデフォルトで有効になっています。ただし、新しいアーキテクチャに移行していない場合は、同時レンダリングと同時実行機能を使用しない機能のみを利用できます。新しいアーキテクチャは同時レンダリングを念頭に置いて構築されていますが、古いアーキテクチャへのそのサポートを追加することはできません。
React NativeでのReact 18サポートの詳細については、こちらをご覧ください。
バンドルされたHermes
このリリース以前は、HermesとReact Nativeは別々にリリースされていました。そのため、どのバージョンのHermesがどのバージョンのReact Nativeと互換性があるのかという混乱が生じていました。この問題を解決するために、React Native 0.69から、互換性のあるバージョンのHermesをReact Nativeと一緒に提供します。この変更により、React NativeでのHermesの使用がはるかに安定します。
適切なバージョンのHermesの使用はReact Nativeによって処理されますが、アップグレードヘルパーの手順に従って、統合が意図したとおりに機能することを確認してください。まだHermesを有効にしていない場合は、こちらの手順に従って有効にすることができます。他のJavaScriptエンジンを引き続きサポートしますが、最高のエクスペリエンスを得て、より良いサポートを提供できるようにするために、すべての人がHermesに移行することをお勧めします。
Androidの新しいアーキテクチャを使用しているユーザーは、**Hermesをソースからビルドする**必要があります。ソースからHermesをビルドするには、Windowsユーザーはさらにこれらの手順に従う必要があります。
React NativeがHermesをバンドルする方法の詳細については、こちらの詳しいドキュメントをご覧ください。
新しいアーキテクチャ
AndroidとiOSの両方で新しいアーキテクチャのロールアウトを継続しています。まだアプリまたはライブラリに移行していない場合は、こちらの手順に従ってください。新しいアーキテクチャに関するツールとリソースの最新のアップデートも読むことができます。
0.69のハイライト
前述のように、このリリースにおける最も重要な改善点は、React 18のサポートとバンドルされたHermesを中心に展開されています。ただし、他にも注目すべき変更があります。
- 非推奨化されたサポート iOS/tvOS SDK 11.0、バージョン12.4以上が必要です。
- 改善されたサポート Android向けに開発しているM1ユーザー向け。
- 追加 ノード実行可能ファイルのより確定的ソーシングのための新しい
.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
からアセットとフックが削除されました。設定からこれらのプロパティを削除する必要があります。podspecPath
がiOS依存関係設定から削除されました。run-ios
から--project-path
オプションが削除されました。- Xcodeプロジェクトを探すことからPodfileを探すことにiOSソースディレクトリの検出方法が変更されました。
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にアップグレードされました。
- 直接的なメトロ依存関係は、バージョン0.70.1にアップグレードされました。
変更点の完全なリストは、変更ログでご確認いただけます。
謝辞
80名の貢献者による629件のコミットが、このリリースを可能にしました - 皆様に感謝いたします!
また、リリースのテスト、サポート、そしてこのリリースが可能な限り安定したものとなるようフィードバックを提供してくださった皆様にも感謝申し上げます。