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

React Native 0.66の発表

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

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

ハイライト

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

@hsource のおかげで、overflow: visible を介して親ビューの境界外にレンダリングされた子ビューのインタラクションサポートが追加されました。これは一般的なユースケースであり、Android上のReact Nativeが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のリリースissueをご覧ください。

Nightlyおよび「Commitly」リリース

最近のブログ記事で、2021年後半の目標の1つが、リリースプロセスをより速く、より安定したものに改善することであると共有しました。この取り組みの一環として、mainブランチでのReact Nativeの安定性を高め、リリース候補(RC)プロセス中に特定されるバグを減らすことに取り組んでいます。

私たちは1年以上にわたってReact Nativeのnightlyリリースを公開してきましたが、これらのリリースはほとんどのプロジェクトで効果的に使用されていませんでした。これらは現在よりアクセスしやすくなっており、今後はリリース候補として活用していきたいと考えています。nightlyリリースはnpmに「nightly」タグで公開されます。

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

PRのマージを支援したいですか?関連するcommitlyを試して変更を検証することで、その変更をマージするための貴重なシグナルを提供することになります!

Nightlyリリースの使用(Nightlies)

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

Commitlyリリースの使用(Commitlies)

Screenshot of CircleCI artifact panel to find tarball

コミットに関連する「build_npm_package-1」ジョブを見つけ、「Artifacts」パネルに進んでcommitlyのtarballをダウンロードしてください。

nightlyリリースと同様に、まずプロジェクトが最新の安定バージョンにアップグレードされていることを確認してください。次に、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件のコミットが含まれています!新旧すべてのコントリビューターの皆様に感謝します!完全な変更履歴はこちらでご覧いただけます。

また、このリリースの準備、テスト、および問題解決にご協力いただいた以下のコントリビューターの皆様にも感謝いたします!