OSバージョンの対応範囲

iPhoneアプリはiOS 3つ分のメジャーバージョンが現実的
ストアにアプリを公開する場合は、iPhoneもAndroidもまず最新のOSをサポートし、無理の無い範囲で古いOSもサポートすることが基本となります。
iPhoneアプリの場合、開発ツールXcodeに配布ターゲットの設定があり、ここにアプリがサポートする最も古いOSのバージョンを指定します。このコラムを書いている時点の最新のXCode 14.0では配布ターゲットにiOS11.0~16.0が選択できます。
iOS11は2017年9月リリースなのでiOS11以降だとサポート範囲が狭いように感じますが、少なくともApp Storeにアクセスするデバイスの99%以上はiOS11以上になっているようですのでiOS11以上がサポートできれば十分と考えることになります。
もちろん古い開発ツールを利用すれば古いOSに対応するアプリが作成できますが、最新OSへの対応は出来ません。App Storeにアプリを申請するには、最新OS(時期によっては1つ前のOSも可)に対応している必要があるので、この方法は現実的ではありません。
*2022年9月現在、Appleが提供する最新の開発ツールはXcode14(iOS16に対応)です。App Storeにアプリを申請するには、Xcode13(iOS15対応)以上での開発が必要となっています。
Androidは古いOSに対応可能。機能とサポート範囲のバランスを考えて選択
Androidアプリの場合も開発ツールにminSdkVersionという設定があり、アプリがサポートする最も古いOSのバージョンを指定できます。Androidは新しいOSのアップデートが提供されない機種が多く、古いOSを使うユーザーが残りやすいのですが、古いOSで新しい機能が利用できるサポートライブラリが提供されており、少々の制約はありますが、アプリが古いOSに対応しやすい状況です。
以下はアプリがサポートするOSバージョンの代表的な例です。
- v21(Android 5.0)以上(約98.8%)
- v23(Android 6.0)以上(約96.2%)
- v24(Android 7.0)以上(約92.7%)
- v26(Android 8.0)以上(約88.2%)
- v28(Android 9.0)以上(約77.3%)
- v29(Android 10.0)以上(約62.8%)
- v30(Android 11.0)以上(約40.5%)
- v31(Android 12.0)以上(約13.5%)
※カッコ内のパーセント表示は、Google Playストアにアクセスするデバイスのサポート割合(本コラム執筆時点。開発ツールAndroid Studioの表示より転記)です。v21(Android 5.0)以上をサポートすると、Google Playストアにアクセスするほぼ99%のデバイスをサポートできることになり、v24(Version 7.0)以上では92.7%のデバイスをサポートできます。
対応バージョンは、アプリの目的に応じて機能とサポート割合のバランスを考えて決定します。最近のOSにすればするほど開発時に新機能が扱いやすく、その代わりにアプリを利用できないデバイスが増えていくのです。
私たちの提供しているスマホがポイントカードになるアプリ(Cardfeel)は、機能の拡充よりも多くの機種で動くことが求められると判断し、v21(Android 5.0)以上を選択しています。
最近リリースされるアプリではv24(Android 7.0)以上を選択することが増えてきているようです。
企業内でアプリを配布する場合
企業内(In house)のアプリを開発する場合は、App Storeの制約はないので、iPhoneアプリであっても対応OSを自由に決めることができます。
ただしサポート範囲を広げれば広げるほど、使える機能(API)は限定されるうえに、開発コスト(特にテストの作業規模)が増えるので、できる限り狭い範囲にするのが通例です。OSをアップグレードできない古いデバイスを利用する場合を除き、できるだけOSのバージョンを統一することでコストを節約できます。