Android StudioとAGPの新しいバージョン番号ルール
Android Studio 4.2 の次は 4.3 じゃなくて Arctic Fox になる、というニュースは見ていたのですが、なんでコードネームにしちゃうんだろう?的なハテナが頭に浮かびつつも、ちゃんと理解しないままスルーしてました。
最近になって改めて以下の2記事を読んでみたところ、単にバージョン番号の命名規則を変えただけじゃない、というのが分かったので、自分の理解をメモとして残しておきます。
- Android Developers Japan Blog: Android Studio Arctic Fox(2020.3.1)と Android Gradle プラグイン 7.0
- Android Developers Japan Blog: AGP 7.0: Android Gradle プラグインリリース
今回のルール整備は以下の3点がポイントだと受け取りました。
- Android Studio と IntelliJ IDEA の関連を分かりやすくする
- Android Studio と Android Gradle Plugin (AGP) を明確に切り離す
- AGP のバージョンを Gradle のバージョンに一致させる
それぞれ少し深掘りしてみます。
Android Studio と IntelliJ IDEA の関連を分かりやすくする
IntelliJ IDEA は YYYY.R
という命名規則を採用しています。 YYYY
が「年」、 R
が「その年の何番目のメジャーリリースか」を表しています。「2020.3」は「2020年の3番目のメジャーリリース」と読めばいいんですね。 R
の下にマイナーバージョンを表記することもあるようですが、基本的には YYYY.R
で表現できます。
Android Studio は IntelliJ IDEA がベースなので、「IntelliJ IDEA のどのバージョンをベースにしたか」を分かりやすくするため IntelliJ IDEA に寄せた命名規則を採用する、というのが今回の変更です。
Android Studio は YYYY.R.X
という命名規則になります。 YYYY.R
は IntelliJ IDEA のものをそのまま引き継ぎ、 X
で Android Studio としてのメジャーバージョンを表現します。過去分と合わせて並べると 4.0
→ 4.1
→ 4.2
→ 1
→ 2
… という感じですかね。
で、メジャーバージョンごとにAからZの順にコードネームが割り当てられます。Androidはお菓子がもとになっていましたが、Android Studioは動物名をもとにするとのこと。最初は Arctic Fox
(ホッキョクギツネ)です。
Android Studio と Android Gradle Plugin (AGP) を明確に切り離す
Android Studio のバージョンを上げても AGP がそのままならビルドシステムに影響がない、ということが明確になりました。これは個人的に嬉しい変更点。
小規模SIをやっていると
- メンバー寄せ集めで技術レベルがまちまちなので、安全サイドに倒すため Android Studio のバージョンアップタイミングが保守的になる
- 開発終盤以降は AGP のバージョンを固定したいので、引きずられて Android Studio のバージョンアップを見送らざるを得なくなる
- 案件かけ持っているときに案件で取り決めている Android Studio のバージョンが異なっていて困る
- 技術力のあるメンバーは古い Android Studio を使い続けることにストレスを感じる
みたいなことが起きるんですよね。地味に面倒で厄介です。
今後は AGP のバージョンだけケアすればよくて、 Android Studio のバージョンはお好きにどうぞ、と言えるのはとても嬉しい。
AGP のバージョンを Gradle のバージョンに一致させる
AGPはGradleのバージョンと合わせるために5と6をスキップしてAGP 7.0.0 になります。
そして、AGP 7.0.0 からはセマンティック バージョニングが採用されます。
セマンティックバージョニングはざっくりまとめると「X.Y.Z」の形式で
- X: メジャーバージョン。APIに後方互換性がない変更が行われた場合にバージョンを上げる
- Y: マイナーバージョン。後方互換性を保ったまま機能追加がされた場合にバージョンを上げる
- Z: パッチバージョン。後方互換性を保ったままバグ修正がされた場合にバージョンを上げる
というルールでバージョンをつけていくやり方です。メジャーバージョンが上がらない限りは後方互換性が保たれるので安心してバージョンを上げられる、ということですね。
AGP は4系から7系でかなりガッツリ変更が入るようなので、対応する準備はしておいたほうがよさそう。
ちゃんと整理してみると自分のお仕事にも影響ある変更でした。 取りこぼすところだった…… 危ない危ない。
関連(するかもしれない)記事
おススメ