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

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がデフォルトで有効になっています。ただし、新しいアーキテクチャに移行していない場合、利用できるのは並行レンダリングや並行処理機能を使用しない機能のみです。新しいアーキテクチャは並行レンダリングを念頭に置いて構築されていますが、古いアーキテクチャにそのサポートを追加することはできません。

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のバンドルです。しかし、その他にも注目すべき変更点があります。これには以下が含まれます。

破壊的変更

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

  • React Native CLIは8.0の新しいメジャーバージョンに更新されました
    • linkunlinkコマンドは、autolinkingを優先して削除されました
    • 非推奨のinitCompatは削除されました。代わりにinitコマンドを使用してください
    • 非推奨のrun-androidプロパティが削除されました
    • installuninstallコマンドが削除されました
    • react-native.config.jsからassetsとhooksが削除されました – これらのプロパティをあなたの設定から削除する必要があります
    • iOS依存性設定からpodspecPathが削除されました
    • run-iosから--project-pathオプションが削除されました
    • iOSのソースディレクトリ検出が、Xcodeプロジェクトを探す方法からPodfileを探す方法に変更されました
  • console.disableYellowBoxサポートが終了しました
  • すでに非推奨だったprop typesが削除されました (cdfddb4dad, 3e229f27bc, 10199b1581)
  • RN 0.65から非推奨だったremoveListenerがAppearanceから削除されました
  • SegmentedComponentIOSを使用していた場合、今後はサードパーティのライブラリ(例えばsegmented-control)に置き換える必要があります (235f168574)

アップグレード

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

変更点の全リストはチェンジログで確認できます。

謝辞

80人のコントリビューターによる629のコミットが、このリリースを可能にしました - 皆さん、ありがとうございました!

また、このリリースができるだけ安定したものになるようフィードバックを提供してくださったリリーステスター、サポーター、その他すべての方々に感謝します。