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

0.56のリリース

·6分で読めます
Lorenzo Sciandra
Drivetribeのコアメンテナー兼React Native開発者

待望のReact Nativeバージョン0.56がリリースされました🎉。このブログ記事では、この新しいリリースで導入された変更点のいくつかを紹介します。また、3月以来私たちを忙しくさせてきたことについても説明する機会を設けたいと思います。

破壊的変更のジレンマ、あるいは「いつリリースするか?」

コントリビューターガイドでは、React Nativeへのすべての変更が経る統合プロセスについて説明しています。このプロジェクトは多くの異なるツールで構成されており、すべてが適切に機能し続けるためには調整と継続的なサポートが必要です。これに、プロジェクトに貢献する活気あるオープンソースコミュニティが加わり、その途方もない規模がわかるでしょう。

React Nativeの驚くべき普及に伴い、破壊的な変更は細心の注意を払って行われる必要があり、そのプロセスは私たちが望むほどスムーズではありません。コアチームが新しい一連の破壊的変更を統合しテストできるように、4月と5月のリリースをスキップするという決定がなされました。専用のコミュニティコミュニケーションチャネルが使用され、2018年6月(0.56.0)のリリースが、安定版を辛抱強く待っていた人々にとって可能な限り手間がかからないものになるようにしました。

0.56.0は完璧ですか?いいえ、世の中のすべてのソフトウェアと同様に、完璧ではありません。しかし、「より安定性を待つ」と「テストが成功したため先に進める」というトレードオフの点で、リリースする準備ができたと感じる段階に達しました。さらに、最終的な0.56.0リリースで解決されていないいくつか問題あることを認識しています。ほとんどの開発者は0.56.0へのアップグレードで問題はないはずです。上記の課題に阻まれている方々については、議論にご参加いただき、これらの課題の解決に向けて協力できることを楽しみにしています。

0.56.0は、より安定したフレームワークへの基本的な構成要素と考えることができます。すべてのエッジケースが修正されるまでには、おそらく1〜2週間広く採用される必要がありますが、これにより2018年7月(0.57.0)のリリースはさらに優れたものになるでしょう。

このセクションの最後に、合計818コミットに携わった67名のコントリビューターに感謝の意を表したいと思います (!) 彼らのおかげで、皆さんのアプリはさらに良くなるでしょう 👏。

それでは、早速ですが...

大きな変更点

Babel 7

ご存じのとおり、私たち全員が最新かつ最高のJavaScript機能を使用できるようにするトランスパイラツールであるBabelは、まもなくv7に移行します。この新しいバージョンにはいくつかの重要な変更が伴うため、このタイミングでアップグレードすることが適切だと感じました。これにより、Metroその改善点を活用できるようになります。

アップグレードで問題が発生した場合は、関連するドキュメントセクションを参照してください。

Androidサポートの近代化

Androidでは、周辺のツールが大幅に変わりました。Gradle 3.5Android SDK 26Frescoを1.9.0、OkHttpを3.10.0に、そしてNDK APIターゲットをAPI 16に更新しました。これらの変更は問題なく適用され、ビルドの高速化につながるはずです。さらに重要なことは、来月施行される新しいPlayストアの要件に開発者が準拠できるようになることです。

これに関連して、特にDulmandakh氏が、これを可能にするために提出された多くのPRに感謝したいと思います👏。

この方向でさらにいくつかの手順を踏む必要があり、Androidサポートの更新に関する将来の計画と議論は、専用の課題(およびJSCのサイド課題)で追跡できます。

新しいNode、Xcode、React、そしてFlow – なんてことだ!

Node 8がReact Nativeの標準になりました。実はすでにテストが行われていましたが、Node 6がメンテナンスモードに入ったため、私たちは両足を前に踏み出しました。Reactも16.4にアップデートされ、多くの修正がもたらされました。

iOS 8 のサポートを終了し、iOS 9 をターゲットとする最も古い iOS バージョンとしました。iOS 8 を実行できるすべてのデバイスは iOS 9 にアップグレードできるため、これは問題にはならないと予測しています。この変更により、iOS 8 を実行している古いデバイスの回避策を実装していた、めったに使用されないコードを削除できました。

継続的インテグレーションツールチェーンは、Xcode 9.4を使用するように更新され、すべてのiOSテストがAppleが提供する最新の開発ツールで実行されることを保証します。

多くの開発者から評価されている新しいエラー形式を活用するためFlow 0.75にアップグレードしました。また、さらに多くのコンポーネントの型を作成しました。プロジェクトでまだ静的型付けを強制していない場合は、ランタイムではなくコード作成時に問題を特定するためにFlowを使用することを検討してください。

その他多くのこと...

たとえば、YellowBoxは新しい実装に置き換えられ、デバッグが大幅に改善されました。

完全なリリースノートについては、こちらの完全な変更履歴を参照してください。また、この新しいバージョンへの移行で問題が発生しないよう、アップグレードガイドにも注意してください。


最後に:今週から、React Nativeコアチームは毎月の会議を再開します。会議で何が議論されたかについて全員が最新の情報を把握できるようにし、今後の会議のために皆様からのフィードバックを手元に置いておくようにします。

皆さん、楽しいコーディングを!

ロレンツォライアン、そしてReact Nativeコアチーム一同

追伸:いつものことながら、React Nativeは多くの変更が進行中であるため、まだ0.xバージョンであることを皆さんに思い出させたいと思います。そのため、アップグレードの際には、おそらく何かがクラッシュしたり破損したりする可能性があることを覚えておいてください。課題やプルリクエストを提出する際には互いに助け合い、施行されている行動規範に従うことを忘れないでください。画面の向こうには常に人間がいます。