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

React Native 0.69の発表

·5分で読めます
Marek Fořt
Marek Fořt
ソフトウェアエンジニア @ Shopify
Nicola Corti
Nicola Corti
ソフトウェアエンジニア @ Meta

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に集中しています。しかし、他にも注目すべき変更がありました。

破壊的変更

いくつかの破壊的変更もありました。

  • 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のサポートが削除されました
  • すでに非推奨だったプロパティタイプが削除されました(cdfddb4dad3e229f27bc10199b1581)。
  • RN 0.65以降非推奨となっていたremoveListenerがAppearanceから削除されました
  • SegmentedComponentIOSを使用していた場合、サードパーティライブラリ、例えばsegmented-controlに置き換える必要があります(235f168574)。

アップグレード

そして、いくつかの依存関係をアップグレードしました。

変更点の全リストは変更履歴で確認できます。

謝辞

629件のコミットを持つ80人の貢献者によって、このリリースが実現しました。皆様、ありがとうございます!

また、このリリースが可能な限り安定することを保証するためにフィードバックをくださったリリース・テスター、サポーター、その他すべての皆様に感謝いたします。