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

React Native 0.66の発表

·5分で読めます
Luna Wei
Luna Wei
ソフトウェアエンジニア @ Meta

本日、Android 12およびiOS 15のサポート、各種修正、一般的なアップデートを含むReact Native v0.66をリリースします。

ハイライト

Androidで親境界外の子ビューのタップを処理

overflow: visibleを介して、親ビューの境界外にレンダリングされた子に対するインタラクションサポートを追加してくれた@hsourceに感謝します。これは一般的なユースケースであり、React Native for AndroidをWeb標準にさらに近づけます。

プルリクエストで詳細をご確認ください。

Androidの新しいBluetooth権限

Android 12に備えて、新しいBluetooth権限のサポートを追加しました。次回のリリースではtargetSDKVersionを31に更新する予定です。

Apple Silicon、Xcode 13、iOS 15のサポートを強化

このリリースでは、Apple Silicon (M1) Macマシン上でiOS向けXcodeビルドをより信頼性の高いものにするための多くのソリューションを提供します。

特に、新しいアプリテンプレートにはCocoaPodsの回避策が含まれています(@mikehardyに感謝します!)。適用するには、アプリのPodfileのpost_installステップに__apply_Xcode_12_5_M1_post_install_workaround(installer)が追加されていることを確認してください。

さらに、RCT-Folly.podspecarm64リンカーの失敗を防ぐように更新されました。

iOS 15とAndroid 12向けにアプリを準備する方法について共有した投稿をご覧ください。

Hermes 0.9.0

Hermes 0.9.0は、主にHermesのリリース時点と今回のReact Nativeリリースの間のギャップを埋めることを目的としています。

約400のコミットの中で、一般的なバグ修正に加え、メモリとサイズの改善が行われました。

詳細については、Hermes 0.9.0リリース課題を参照してください。

ナイトリーおよび「コミットリー」リリース

最近のブログ記事で、2021年下半期の目標の1つは、リリースプロセスをより高速かつ安定させることだと共有しました。この取り組みの一環として、React Nativeをメインでより安定させ、リリース候補プロセス中に特定されるバグを減らすことに取り組んでいます。

React Nativeのナイトリーリリースは1年以上前から公開されていますが、ほとんどのプロジェクトでは効果的に使用されていませんでした。これらはよりアクセスしやすくなり、今後はリリース候補として使用されることを期待しています。ナイトリーリリースは、npmに「nightly」タグで公開されます。

個々のコミットのテストプロセスを改善するため、React NativeのCIは、メインブランチとリリースブランチの各コミット、および各PRに対して、tarballアーティファクトを作成するようになりました。これらをコミットリーと呼んでいます。これらのコミットリーはnpmには公開されませんが、CircleCIから直接ダウンロードできます。以下の手順を参照してください。

PRのマージを手伝いたいですか?関連するコミットリーを試して変更を検証することで、その変更を適用するための貴重な情報を提供できます!

ナイトリーリリース(Nightlies)の使用

プロジェクトをReact Nativeのナイトリーリリースに移行するプロセスは、通常のバージョンにアップグレードする場合と非常によく似ています。ただし、Upgrade Helperのようなツールは現在ナイトリーリリースでは機能しません。これを考慮し、まだプロジェクトを最新の安定版にアップグレードしていない場合は、まずアップグレードすることをお勧めします。次に、yarn upgrade react-native@nightlyを実行して、最新のナイトリーリリースをインストールします。ナイトリーリリースでプロジェクトを正しく動作させるために、追加の変更が必要になる場合があることに注意してください。

コミットリーリリース(Commitlies)の使用

Screenshot of CircleCI artifact panel to find tarball

コミットに関連する「build_npm_package-1」ジョブを見つけて、「Artifacts」パネルに移動して、コミットリーのtarballをダウンロードします。

ナイトリーリリースと同様に、まずプロジェクトが最新の安定版にアップグレードされていることを確認してください。次に、Circle CIのreact-nativeダッシュボードにアクセスし、問題のコミットによってトリガーされたワークフローを探します。そこに、build_npm_packageという名前のジョブが表示されるはずです。そのジョブには「Artifacts」パネルがあり、tarballファイルをダウンロードするためのリンクが提供されます。その後、以下を実行できます。

# Update your react-native dependency to the tarball
# using your preferred package manager
$ yarn add <path to tarball>
$ npm add <path to tarball>

謝辞

このリリースには、92人のコントリビューターによる621のコミットが含まれています!新旧すべてのコントリビューターに感謝いたします!完全な変更履歴はこちらで確認できます。

また、このリリースの準備、テスト、およびブロック解除にご協力いただいた以下のコントリビューターにも感謝いたします!