Android StudioとAGPの新しいバージョン番号ルール

2020/12/23

Android Studio 4.2 の次は 4.3 じゃなくて Arctic Fox になる、というニュースは見ていたのですが、なんでコードネームにしちゃうんだろう?的なハテナが頭に浮かびつつも、ちゃんと理解しないままスルーしてました。

最近になって改めて以下の2記事を読んでみたところ、単にバージョン番号の命名規則を変えただけじゃない、というのが分かったので、自分の理解をメモとして残しておきます。

今回のルール整備は以下の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.04.14.212 … という感じですかね。

で、メジャーバージョンごとに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系でかなりガッツリ変更が入るようなので、対応する準備はしておいたほうがよさそう。


ちゃんと整理してみると自分のお仕事にも影響ある変更でした。 取りこぼすところだった…… 危ない危ない。




関連(するかもしれない)記事


おススメ