【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も可)に対応している必要があるので、この方法は現実的ではありません。
【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%)
対応バージョンは、アプリの目的に応じて機能とサポート割合のバランスを考えて決定します。最近のOSにすればするほど開発時に新機能が扱いやすく、その代わりにアプリを利用できないデバイスが増えていくのです。
私たちの提供しているスマホがポイントカードになるアプリ(Cardfeel)は、機能の拡充よりも多くの機種で動くことが求められると判断し、v21(Android 5.0)以上を選択しています。
最近リリースされるアプリではv24(Android 7.0)以上を選択することが増えてきているようです。
【企業内でアプリを配布する場合】
企業内(In house)のアプリを開発する場合は、App Storeの制約はないので、iPhoneアプリであっても対応OSを自由に決めることができます。
ただしサポート範囲を広げれば広げるほど、使える機能(API)は限定されるうえに、開発コスト(特にテストの作業規模)が増えるので、できる限り狭い範囲にするのが通例です。OSをアップグレードできない古いデバイスを利用する場合を除き、できるだけOSのバージョンを統一することでコストを節約できます。