[Android]versionNameってみんなどんなつけ方してるんだろう

2018年10月28日テクノロジー

Android開発をはじめて3年ぐらい経過。
いや、後半1年半はほぼ惰性なので、それほどやってないけど。

学校の実習だったり自分でお遊びだったり会社の業務研究だったりでいろいろ作っているうちに、アプリにはバージョンがあるということに気が付いた。

いや、バージョンがあることぐらい数万年前から知ってるし、バージョンはバージョン番号で管理されていたり、その番号はAndroidの場合はアプリの情報画面で見れるのも数千年前から知っている。

こんなふうに。

ただ、自分が作ったアプリにバージョン番号をつけるっていう発想がなかった。不覚だった。

現在(2018年10月)、自作Androidアプリのバージョン番号は、Projectのappのsrcの中にあるbuild.gradleに記述する。

ここに映ってるほうのbuild.gradle。
映ってないところにもbuild.gradleがいっぱいあって、独学初心者にとっては頭で湯を沸かせられるのだが、ほとんどの指南サイトに出てくる「build.gradleに書き込むんだよ!」ってアドバイスのbuildはコイツ。

さて、そんなbuild.gradleの中には、こんな記述がある。

android{
...
defaultConfig{
...
versionCode 1
versionName "1.0.0"
}
...
}
...

この先しばらくは、Google公式のAndroidStudioガイドページの中の、下記ページを参考に(受け売り)している。

versionCodeはInteger値。
この数値はユーザーには見えず、内部的にバージョンが新しいかどうか判定するために用いるもので、バージョンアップのたびに単純にインクリメントしていくだけでいい、と。
メジャーバージョンアップだからといって1000ぐらい足す必要は特にない、と。
足してもいいけどね。(versionNameと整合性を図るために一気に増やすのはアリだと思う)
ちなみにPlayStoreで読み取れる最大値は2100000000。

versionNameはString。
ここの数値(というか文字列)がユーザーに見え、いわゆるバージョン番号として世間一般に認知される。

今回の記事のメインはここ。どういうふうにバージョン番号をつければいいのか。

先のガイドページで指南してくれてたらいいのに、

値は文字列で、これにより、アプリのバージョンを <major>.<minor>.<point> 文字列として、またはその他のタイプの絶対または相対バージョン識別子として記述できます。

要は「なんでもいい」とのこと。
この文のちょっと下にあるサンプル(productFlavorsが存在する場合のサンプル)には「versionName “1.1-demo"」なんて書いてあります。めっちゃアルファベット。

ということで、なんとなく思いつく主要アプリのバージョン番号を列挙してみます。
自分含め、バージョン番号の付け方に悩む素人さんに向けて。

※2018年10月28日 午前1時時点で、手元のスマホに配信されているバージョンです。
最新バージョンを確認する目的の記事ではないため、おそらくこの記事をご覧になる頃はバージョン番号が変わっています。

ゲーム多いな。

Google純正アプリはそうでないことが多いけど、どうやら一般的には「x.y.z」の3段階で切ってるみたいですね。

それぞれのケタが2ケタになることはザラで、5ケタや6ケタになっても浮くわけではなさそうです。
また更新日付でバージョン番号を切るアプリもありますね。

と、まあ、かなり自由なバージョン番号。
悩んでる人の一助になれたら。

ちなみに自作アプリの規則は、「{メジャーバージョン}.{マイナーバージョン}.{機能が増えたら増やす}-fix{バグ直したら増やす}-{ベータ版}」という感じ。