こんにちは!Android エンジニアの岩井です。
2022/02/15、Android 版 ONE では minSdkVersion を 24
に変更すると共に、サポートバージョンの変更ポリシーを定めました。
今回は、そこに至るまでを紹介したいと思います。
これまでの Android 版 ONE
Android 版 ONE は 2019/10 の初回リリース以降、minSdkVersion 21
で大きな問題もなく安定したアプリを提供してきました。
そのためサポートバージョンの変更はなかったのですが、Chrome 96 から Android 5 (Lollipop) がサポート対象外になったことで、minSdkVersion 21 のままでは安定したアプリの提供が難しくなっていきそうだと判断しました。
さらにユーザー数が増えていくことが想定される中で安定したアプリを提供していくためにも、今後アプリのサポートバージョンを変更する場合のポリシーを策定する必要があります。
どのようなポリシーとするか
サポートバージョンを変更すると、どうしても使えなくなるユーザーが発生します。
そのため、できる限り影響を受けるユーザーを少なく抑える必要があります。
また、大前提として機能面において必要がなければサポートバージョンを変更する必要はありません。
過去の Android 開発とは異なり、近年はサポートバージョンを変更するほどの機能更新は少なくなってきていますので、それも考慮の対象とします。
サポートバージョンの変更ポリシー
これらを踏まえつつ、他のアプリのサポートバージョンなども参考に策定します。
その結果、Android 版 ONE では以下の場合サポートバージョンの変更を実施するというポリシーにしました。
脆弱性などが理由でバージョンの維持にリスクがある
今回のようにまずは利用する外部ライブラリのサポート終了など、リスクとなる更新が見つかった場合をサポートバージョンの変更を検討するきっかけとしました。
リスク回避は開発面においてもメリットにも直結することが多いため、今後もチームで情報収集を行っていきます。
シェア率が 1% 以下
できる限り影響を受けるユーザーを抑えるために、シェア率も 1 つの指標としました。
昨今の Android において、リスクを回避するためのサポートバージョン変更となればシェア率もかなり低いことが予想されるためです。
変更ポリシーに則り実施
今回策定したポリシーに当てはめ、対象は Android 5 と Android 6 にしました。
SDK バージョン | シェア率 | OS |
21, 22 | 0.15% | Android 5 |
23 | 0.32% | Android 6 |
24 | 1.75% | Android 7 |
※ 調査を行った 2021/12 の数値
その結果、設定する minSdkVersion は 24
となりました!
開発面でのメリット
minSdkVersion を 24 にすることで、例えば今回の WebView であれば Chrome APK を使用することで消費メモリの改善が期待できるなど、メリットとなることも多いです。
https://developer.android.com/about/versions/nougat/android-7.0?hl=ja#webview
以下のような分岐も消せるようになります。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
SDK のバージョンごとに処理の差分を気にする必要がなくなるため、検証工数が削減できます。
また、else
で使用していた非推奨 API を使わずに済むのは、個人的にもキレイなコードになって精神衛生が保たれます。
サポートバージョン変更の流れ
以下の流れで実施しました。
- 社内での検証・相談
- エンジニアリングチーム
- ユーザーケアチーム
- ヘルプページに推奨環境が変わることの記載
- 対象ユーザーに対してプッシュ通知でお知らせ(2022/01/18)
- minSdkVersion を 24 にしたアプリのリリース(2022/02/15)
実際にプッシュ通知を打ってからリリースまでのタイミングやメッセージなど、ユーザーケアチームと何度も擦り合わせました。
やらなかったこと
逆にやらなかったこととして、ONE のアプリでは旧バージョンを利用されている方にアップデートを依頼する機能がありますが、このアップデート自体では旧バージョンを利用していただいても問題はないと判断したため、利用は見送りました。
ただし、Play Console にて古い apk は無効にしているため、Android 7 未満の方は新規でインストールできなくなっています。
実施後のユーザーの反応
今後も継続してチェックしていきますが、幸いなことに目立ったお問合せはありませんでした。
事前にプッシュ通知を送り、そこから実際のアップデートまで 1 ヶ月空けたのも大きな混乱を招かずに済んだ要因かと思います。
最後に
Android 版 ONE のサポートバージョンを変更する方針を策定したお話でした。
ポリシーを策定しておくことは今後の意思決定や、新しいアプリを作る際にも有効です。
今後も引き続きポリシーの見直しを含め、ユーザーサポートとのバランスを取りながら安定したアプリを提供できる取り組みをしていきます。