概要
現在担当させてもらっているAndroidアプリのSDKを21まで引き上げる、つまり、
Android 4.4 KitKat以前を閉じることになりました。
ちょっとポエム寄りになりますが、その辺りの確認方法などをまとめます。
背景
WebView問題
詳しくはこちらなどにまとめられていますが、
Androidは5系と4系以前ではWebViewのベースが異なります。
- 4.3以前
- WebKitベースのWebView(WebKit WebView)
- Googleサポート打ち切り済
- css3/JavaScriptほぼ非対応
- 4.4
- ChromiumベースのWebView(Chromium WebView)
- アップデートがOS依存 = バージョン固定
- css3/JavaScript一部非対応
- 5系以降
- ChromiumベースのWebView(Chromium WebView)
- アップデートが端末から切り離されている
- 最新Chromeとほぼ同様の機能が使える
現在担当しているアプリでもWebViewを使う箇所が多くあり、
jQueryの一部機能がうまく動かず、サーバー側でワークアラウンドで入れるといったことがありました。
このような状態では新機能の開発の度に4系のチェックも必要になり、開発陣への負担が大きくなってしまいます。
Android 4系使用ユーザ率
アプリ使用ユーザのOS毎の割合を確認しましょう。
Google Analytics -> レポート -> ユーザ -> デバイスとネットワーク -> デバイス
もしくは
Google Play Console -> 統計情報
から確認できます。
よく言われる目安は、4系以下の合計割合が5%未満、というところです。
弊社アプリも5%以下になっていました。
この割合に対してテストなどのリソースを割く必要があるか、という点も考えるポイントの一つです。
世間的な流れ
Twitterアカウント 「minSdkVersion」のツイート
Androidアプリ の minSdkVersion を21にした話 (クックパッド開発者ブログ)
【重要】Android OSのバージョン 5.0未満をご利用のお客さまへ (メルカリ)
Android 4系のサポートを終了した話 (Sansan Builders Box)
この他、ヤフオク、Chatwork、ラクマなど、多くのアプリが4.4以下をサポート終了しています。
やはりセキュリティ面の強化という部分が大きいみたいです。
移行まで
1. メンバーの説得
ディレクターさん中心に、開発効率、セキュリティ強化を目的に、閉じるという話をしました。
4系以下のユーザ割合もそこまで多くなかったので、すんなり移行することになりました。
2. ユーザへの告知
公式サイトに4系以下を閉じる旨を記載します。
サーバー側で通信を遮断するといったことはまだ予定していないですが、今後新機能を使うことができなくなる、ということで、困惑するユーザさんもいると思います。
そのため、弊社では昨年末ぐらいに告知し、今月のリリースタイミングで閉じることになりました。
(ちょっと告知期間が長いですが、もう少し準備周到であれば1ヶ月程度でも良さそうです)
3. リリース対応
エンジニア側はSDKバージョンを21に引き上げるだけです。
また、Build.VERSIONを見て、4系で処理を分けているところがあれば、削っておきましょう。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//5系以上の処理
} else {
//4系以下の処理
}
おわりに
Androidは年々サポート対象OSが増えて開発者に厳しい現状ですが、
今後も年末〜年度末には見直しをかけながら、少しずつ切っていきましょう。