React Native 0.60の発表
何百人もの貢献者による数ヶ月の努力の末、React Nativeコアチームはバージョン0.60のリリースを発表できることを誇りに思っています。このリリースでは、AndroidとiOSプラットフォームの両方で重要な移行が行われ、多くの問題も解決されています。このブログ記事では、リリースのハイライトについて説明します。ただし、詳細については、常に変更履歴を参照してください。最後に、このマイルストーンを達成するのに協力してくれた貢献者に感謝します。
アクセシビリティに焦点を当てる
announceForAccessibilityなどのアクセシビリティAPIには多くの改善が加えられ、ロール、アクションサポート、フラグなどにも改善が加えられました。アクセシビリティは複雑な科学ですが、これらの改善によりA11Yが少し簡単になることを願っています。これらの変更の詳細については、React Nativeオープンソースの更新 2019年6月をご確認ください。
新たなスタート
React Nativeのスタート画面が更新されました!新しいUIの作成にご協力いただいた多くの貢献者に感謝します。この新しい「Hello World」は、より友好的で魅力的な方法でユーザーをエコシステムに歓迎します。
AndroidXのサポート
AndroidXはAndroidエコシステムにおける大きな進歩であり、古いサポートライブラリのアーティファクトは非推奨になっています。0.60では、React NativeはAndroidXに移行しました。これは破壊的な変更であり、ネイティブコードと依存関係も移行する必要があります。
この変更により、React NativeアプリはAndroidX自体を使用し始める必要があります。それらは1つのアプリで並行して使用することはできないため、すべてのアプリコードと依存関係コードが一方または他方を使用する必要があります。
自分のネイティブコードは自分で移行する必要がありますが、@mikehardy、@cawfree、および@m4tt72は、node_modules
にパッチを適用するための「jetifier」という賢いツールを構築しました。ライブラリメンテナーはアップグレードする必要がありますが、このツールは、AndroidXバージョンをリリースする時間を与えながら、一時的なソリューションを提供します。したがって、AndroidXの移行に関連するエラーが見つかった場合は、これを試してみてください。
デフォルトでのCocoaPods
CocoaPodsがReact NativeのiOSプロジェクトの一部になりました。まだそうでない場合は、これからはxcworkspace
ファイルを使用してiOSプラットフォームコードを開くようにしてください(ヒント:ルートプロジェクトディレクトリからxed ios
を試してください)。また、内部パッケージのpodspec
がXcodeプロジェクトと互換性を持つように変更されました。これにより、トラブルシューティングとデバッグが容易になります。このエキサイティングなサポートを実現するために、0.60へのアップグレードの一部として、Podfile
にいくつかの簡単な変更を加えることが予想されます。use_frameworks!
との互換性の問題があることは認識しており、回避策と将来のパッチに関する問題を追跡しています。
リーンコアの削除
WebViewとNetInfoは以前に個別のリポジトリに抽出されており、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ユーザーは、ブラウンフィールドアプリや複雑なカスタマイズを使用して、バージョン間で変更された内容を確認できます。更新されたアップグレードドキュメントを確認して、今日アップグレードパスを試してください!
ライブラリメンテナーへの注意
AndroidXの変更には、ほぼ確実にライブラリの更新が必要になるため、早急にサポートを含めてください。まだアップグレードできない場合は、jetifierに対してライブラリを確認し、ユーザーがビルド時にライブラリにパッチを適用できることを確認してください。
設定とreadmeを更新するには、自動リンキングのドキュメントを確認してください。以前にライブラリを統合した方法によっては、追加の変更が必要になる場合もあります。依存関係のインターフェースを定義する方法については、CLIの依存関係ガイドを確認してください。
謝辞
これらは私たちが注目したハイライトですが、他にも多くの素晴らしい点があります。すべてのアップデートを確認するには、変更履歴をご覧ください。いつものように、今後のニュースにご期待ください。それまでの間、0.60をお楽しみください!