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

React Native 0.60の発表

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

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

アクセシビリティへの焦点

announceForAccessibility のようなアクセシビリティAPIに多くの改善が加えられ、さらに 役割アクションのサポートフラグ なども改善されました。アクセシビリティは複雑な科学ですが、これらの改善により、A11Y (アクセシビリティ対応) が少し簡単になることを願っています。これらの変更の詳細については、React Native Open Source Update 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-oakesdiscussions-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 を担当するチームは、autolinking と呼ばれるネイティブモジュールリンクの主要な改善を導入しました!ほとんどのシナリオでは、もはや 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でライブラリをチェックして、ユーザーがビルド時にライブラリをパッチできることを確認することを検討してください。

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

謝辞

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