AndroidX の開発がさらに快適に
2018年9月19日水曜日
この記事は AndroidX チーム ソフトウェア エンジニア、Aurimas Liutikas による Android Developers Blog の記事 "AndroidX Development is Now Even Better" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
AndroidX(以前は Android Support Library と呼ばれていました)は、新しい Android プラットフォーム API に下位互換性を提供する一連の小さなライブラリとして始まりました。そのため、AndroidX の開発は密接にプラットフォームと結びついたものになっていました。結果として、すべての作業は内部の Google ブランチで行われ、プラットフォームと合わせて一般公開されている Android オープンソース プロジェクト(AOSP)にプッシュされていました。このフローでは、外部からの貢献は短い時間に限られてしまいます。内部ブランチと AOSP のブランチの内容がすぐにかけ離れてしまうからです。そのうえ、外部のデベロッパーが AndroidX 全体をビルドしてテストするには、40GB 以上ある Android プラットフォームのコード全体をチェックアウトしなければならず、貢献するのは困難でした。
本日、AndroidX のスコープが大幅に拡張され、UI 開発を簡単にする AppCompat、データベース管理に使える Room、バックグラウンド作業に使える WorkManager などのライブラリが含まれるようになりました。こういったライブラリの多くは、高レベルな抽象化を実装しており、Android プラットフォームの新バージョンとの結合度は低くなっています。また、すべてのライブラリが、最初から下位互換性を念頭に置いて設計されています。RecyclerView や Fragment などのいくつかのライブラリは、純粋に AndroidX 側の実装となっており、プラットフォームとの結びつきはほとんどありません。
2 年以上前から、 解体 作業、すなわち AndroidX を Android プラットフォーム ビルドから分離し、個別のビルドにする作業を行ってきました。ビルドを make から Gradle に移行したり、API トラッキング ツールやドキュメント生成をすべてプラットフォーム ビルドの外に移行するなど、かなりたくさんの作業が必要でした。このプロセスが終わると、デベロッパーが最小限の AndroidX プロジェクトをチェックアウトしたり、Android Studio で開いたり、パブリック SDK とパブリック Android Gradle プラグインでビルドしたりできるようになりました。
Android デベロッパー コミュニティではかなり以前から、AndroidX に簡単に貢献できるようになることが望まれていましたが、前述のような理由により、これは容易ではありませんでした。それがついに実現しました。AndroidX の開発は一般公開されている AOSP に移行します。つまり、主な機能の開発(最高機密であるプラットフォーム 😀 との統合は除く)やバグの修正は、オープンな環境で r.android.com Gerrit レビューツールを使って行われ、変更点は aosp/androidx-master-dev ブランチで確認できます。
今回の変更は、デベロッパーに対する透明性を高めるために行っています。デベロッパーにとっては、機能やバグの修正が実装されていく様子をリアルタイムで見ることができるチャンスになります。また、コミュニティからバグの修正の貢献を受けることができる点も、とても楽しみにしています。パッチの貢献方法について、簡単なガイドをまとめています。
AOSP は、通常の開発に加え、試験運用版やプロトタイプの開発を行う場所にもなります。皆さんは、このレポジトリに新しいライブラリが現れるのを目にすることになるでしょう。公開される前に削除されるもの、アルファ版以前の開発で大幅に変更されるもの、既存のライブラリにマージされるものもあるかもしれません。一般的なルールでは、公式に準備が整って外部デベロッパーが利用できるのは、maven.google.com にあるライブラリのみです。
最後になりますが、まだこれは始まったばかりです。AndroidX に貢献していただく際に、ご不便をおかけするかもしれません。その点はお詫びいたします。問題が起きた場合は、パブリック AndroidX トラッカーからフィードバックをお願いいたします。
Reviewed by Yuichi Araki - Developer Relations Team
AndroidX(以前は Android Support Library と呼ばれていました)は、新しい Android プラットフォーム API に下位互換性を提供する一連の小さなライブラリとして始まりました。そのため、AndroidX の開発は密接にプラットフォームと結びついたものになっていました。結果として、すべての作業は内部の Google ブランチで行われ、プラットフォームと合わせて一般公開されている Android オープンソース プロジェクト(AOSP)にプッシュされていました。このフローでは、外部からの貢献は短い時間に限られてしまいます。内部ブランチと AOSP のブランチの内容がすぐにかけ離れてしまうからです。そのうえ、外部のデベロッパーが AndroidX 全体をビルドしてテストするには、40GB 以上ある Android プラットフォームのコード全体をチェックアウトしなければならず、貢献するのは困難でした。
本日、AndroidX のスコープが大幅に拡張され、UI 開発を簡単にする AppCompat、データベース管理に使える Room、バックグラウンド作業に使える WorkManager などのライブラリが含まれるようになりました。こういったライブラリの多くは、高レベルな抽象化を実装しており、Android プラットフォームの新バージョンとの結合度は低くなっています。また、すべてのライブラリが、最初から下位互換性を念頭に置いて設計されています。RecyclerView や Fragment などのいくつかのライブラリは、純粋に AndroidX 側の実装となっており、プラットフォームとの結びつきはほとんどありません。
2 年以上前から、 解体 作業、すなわち AndroidX を Android プラットフォーム ビルドから分離し、個別のビルドにする作業を行ってきました。ビルドを make から Gradle に移行したり、API トラッキング ツールやドキュメント生成をすべてプラットフォーム ビルドの外に移行するなど、かなりたくさんの作業が必要でした。このプロセスが終わると、デベロッパーが最小限の AndroidX プロジェクトをチェックアウトしたり、Android Studio で開いたり、パブリック SDK とパブリック Android Gradle プラグインでビルドしたりできるようになりました。
Android デベロッパー コミュニティではかなり以前から、AndroidX に簡単に貢献できるようになることが望まれていましたが、前述のような理由により、これは容易ではありませんでした。それがついに実現しました。AndroidX の開発は一般公開されている AOSP に移行します。つまり、主な機能の開発(最高機密であるプラットフォーム 😀 との統合は除く)やバグの修正は、オープンな環境で r.android.com Gerrit レビューツールを使って行われ、変更点は aosp/androidx-master-dev ブランチで確認できます。
今回の変更は、デベロッパーに対する透明性を高めるために行っています。デベロッパーにとっては、機能やバグの修正が実装されていく様子をリアルタイムで見ることができるチャンスになります。また、コミュニティからバグの修正の貢献を受けることができる点も、とても楽しみにしています。パッチの貢献方法について、簡単なガイドをまとめています。
AOSP は、通常の開発に加え、試験運用版やプロトタイプの開発を行う場所にもなります。皆さんは、このレポジトリに新しいライブラリが現れるのを目にすることになるでしょう。公開される前に削除されるもの、アルファ版以前の開発で大幅に変更されるもの、既存のライブラリにマージされるものもあるかもしれません。一般的なルールでは、公式に準備が整って外部デベロッパーが利用できるのは、maven.google.com にあるライブラリのみです。
最後になりますが、まだこれは始まったばかりです。AndroidX に貢献していただく際に、ご不便をおかけするかもしれません。その点はお詫びいたします。問題が起きた場合は、パブリック AndroidX トラッカーからフィードバックをお願いいたします。
Reviewed by Yuichi Araki - Developer Relations Team