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!
との互換性の問題は認識しており、回避策と今後のパッチに関するissueを追跡していることに注意してください。
リーンコアの削除
**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は、アップグレードプロセスを簡単にするアップグレードヘルパーという優れたツールを作成しました。React Nativeユーザーがブラウンフィールドアプリや複雑なカスタマイズを使用している場合、バージョン間で何が変更されたかを確認するのに役立ちます。更新されたアップグレードドキュメントを確認し、今日のアップグレードパスで試してみてください!
ライブラリメンテナーへの注意
AndroidXの変更には、ほぼ確実にライブラリの更新が必要になるため、早めにサポートを含めるようにしてください。まだアップグレードできない場合は、ビルド時にユーザーがライブラリにパッチを適用できることを確認するために、jetifierに対してライブラリを確認することを検討してください。
自動リンクのドキュメントを確認して、設定とreadmeを更新してください。以前にライブラリが統合されていた方法によっては、さらに変更を加える必要がある場合があります。依存関係インターフェースの定義方法については、CLIの依存関係ガイドを確認してください。
感謝
これらは私たちが注目したハイライトですが、他にもたくさんの楽しみがあります。すべてのアップデートを確認するには、変更履歴をご覧ください。いつものように、今後のニュースにご期待ください。それまでの間、0.60をお楽しみください!