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

React Native 0.60の発表

·5分で読めます
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 on 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!との互換性の問題は認識しており、回避策と今後のパッチに関する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ユーザーがブラウンフィールドアプリや複雑なカスタマイズを使用している場合、バージョン間で何が変更されたかを確認するのに役立ちます。更新されたアップグレードドキュメントを確認し、今日のアップグレードパスで試してみてください!

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

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

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

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

感謝

これらは私たちが注目したハイライトですが、他にもたくさんの楽しみがあります。すべてのアップデートを確認するには、変更履歴をご覧ください。いつものように、今後のニュースにご期待ください。それまでの間、0.60をお楽しみください!