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

React Native 0.60の発表

·6分で読めます
Ryan Turner
コアメンテナー & React Native開発者

何百人もの貢献者による数ヶ月にわたる努力を経て、React Native コアチームはバージョン 0.60 のリリースを発表できることを誇りに思います。このリリースでは、Android と iOS の両プラットフォームで重要な移行が処理され、多くの問題も解決されています。このブログ投稿では、このリリースのハイライトを扱います。いつものように、詳細については変更履歴を参照してください。最後に、このマイルストーンを達成するためにご協力いただいた貢献者の皆様に感謝いたします!

アクセシビリティへの注力

announceForAccessibilityのようなアクセシビリティAPIに多くの改善があり、さらに役割アクションサポートフラグなどに改善が加えられました。アクセシビリティは複雑な科学ですが、これらの改善がA11Yになることを少しでも容易にすることを願っています。これらの変更の詳細については、React Native オープンソースアップデート 2019年6月を必ず確認してください。

新たな始まり

React Nativeのスタート画面が更新されました!新しいUIの作成に協力してくれた多くの貢献者に感謝します。この新しい「Hello World」は、より親しみやすく、魅力的な方法でユーザーをエコシステムに歓迎します。

The new init screen helps developers get started from the get-go with resources and a good example

AndroidX のサポート

AndroidXはAndroidエコシステムにおける大きな進歩であり、古いサポートライブラリアーティファクトは非推奨になっています。0.60では、React NativeはAndroidXに移行されました。これは破壊的変更であり、あなたのネイティブコードと依存関係も移行する必要があります

この変更に伴い、React NativeアプリはAndroidXを自身で使用し始める必要があります。1つのアプリで両方を並行して使用することはできないため、すべてのアプリコードと依存関係のコードはどちらか一方を使用する必要があります。

matt-oakes ( discussions-and-proposals にて)

あなた自身のネイティブコードはあなたが移行する必要がありますが、@mikehardy@cawfree、そして@m4tt72が、あなたのnode_modulesをパッチする「jetifier」という賢いツールを構築しました。ライブラリのメンテナーはアップグレードする必要がありますが、このツールは彼らがAndroidXバージョンをリリースするまでの間、一時的な解決策を提供します。したがって、AndroidX移行に関連するエラーが見つかった場合は、これを試してみてください。

CocoaPods がデフォルトに

CocoaPods は React Native の iOS プロジェクトの一部となりました。まだの方も、今後は xcworkspace ファイルを使用して iOS プラットフォームのコードを開くようにしてください(ヒント:プロジェクトのルートディレクトリから xed ios を試してみてください)。また、内部パッケージの podspec は Xcode プロジェクトと互換性があるように変更され、トラブルシューティングやデバッグに役立ちます。この素晴らしいサポートを実現するため、0.60 へのアップグレードの一環として、Podfileいくつかの簡単な変更を行うことを期待してください。use_frameworks! との互換性の問題は認識しており、回避策と将来のパッチに関する問題を追跡していることに注意してください。

リーンコアからの削除

以前は、WebViewNetInfo は別のリポジトリに抽出されていましたが、0.60 ではそれらを React Native リポジトリから完全に移行しました。さらに、新しい App Store ポリシーに関するコミュニティからのフィードバックに応えて、Geolocation も抽出されました。まだ行っていない場合は、react-native-webview@react-native-community/netinfo、および@react-native-community/geolocation に依存関係を追加して移行を完了してください。自動化されたソリューションが必要な場合は、rn-upgrade-deprecated-modules の使用を検討してください。メンテナは抽出以来これらのリポジトリに100件以上のコミットを行っており、コミュニティのサポートに興奮しています!

ネイティブモジュールが自動リンクされるようになりました

React Native CLI を開発しているチームは、自動リンクと呼ばれるネイティブモジュールリンクに大幅な改善を導入しました!ほとんどのシナリオでは、もはや react-native link を使用する必要はありません。同時に、チームは一般的なリンクプロセスを全面的に見直しました。上記のドキュメントにあるように、既存の依存関係をすべて react-native unlink してください。

アップグレードヘルパー

@lucasbento@pvinis@kelset@watadarkstar が、アップグレードプロセスを簡素化するための素晴らしいツール、Upgrade Helper を構築しました。これは、ブラウンフィールドアプリや複雑なカスタマイズを持つ React Native ユーザーが、バージョン間で何が変わったかを確認するのに役立ちます。更新されたアップグレードドキュメントを見て、今日のアップグレードパスで試してみてください!

Upgrade Helper cleanly and easily shows the changes needed to migrate to a different version of React Native

ライブラリメンテナーへの注意

AndroidX の変更はほぼ間違いなくライブラリの更新を必要としますので、早急にサポートを含めるようにしてください。まだアップグレードできない場合は、ユーザーがビルド時にライブラリをパッチできることを確認するために、jetifier に対してライブラリをチェックすることを検討してください。

自動リンクドキュメントを確認して、設定と README を更新してください。ライブラリが以前にどのように統合されていたかによって、追加の変更が必要になる場合もあります。依存関係インターフェースの定義方法については、CLI の依存関係ガイドを確認してください。

謝辞

これらが私たちが注目したハイライトですが、他にも多くのエキサイティングなことがあります。すべての更新を見るには、変更履歴をご覧ください。いつものように、今後のニュースにご期待ください。それまでの間、0.60 をお楽しみください!