OSバージョンの対応範囲

2015年3月28日
Pocket

【iPhoneアプリはiOS 3つ分のメジャーバージョンが現実的】
ストアにアプリを公開する場合は、iPhoneもAndroidもまず最新のOSをサポートし、無理の無い範囲で古いOSもサポートすることが基本となります。
iPhoneアプリの場合、開発ツールXcodeに配布ターゲットの設定があり、ここにアプリがサポートする最も古いOSのバージョンを指定します。このコラムを書いている時点の最新のXCode 6.2では配布ターゲットにiOS6.0~8.2が選択できます。
iOS6は2012年9月リリースなのでiOS6以降だとサポート範囲が狭いように感じますが、少なくともApp Storeにアクセスするデバイスの99%以上はiOS6以上になっているようですのでiOS6以上がサポートできれば十分と考えることになります。
iOS 6はiPhoneもiPadも一番古い機種を除き全ての機種にインストールできます。(具体的にはiPhone 3GS以降、iPad2以降)

もちろん古い開発ツールを利用すれば古いOSに対応するアプリが作成できますが、最新OSへの対応は出来ないため、アプリを2つにする必要があり、App Storeにアプリを申請するには、最新OS(時期によっては1つ前のOSも可)に対応している必要があるので、この方法は現実的ではありません。

img30

【Androidは古いOSに対応可能。機能とサポート範囲のバランスを考えて選択】
Androidアプリの場合も開発ツールにminSdkVersionという設定があり、アプリがサポートする最も古いOSのバージョンを指定できます。Androidは新しいOSのアップデートが提供されない機種が多く、古いOSを使うユーザーが残りやすいのですが、古いOSで新しい機能が利用できるサポートライブラリが提供されており、少々の制約はありますが、アプリが古いOSに対応しやすい状況です。

以下はアプリがサポートするOSバージョンの代表的な例です。
・v8(Android 2.2)以上(約100%)
・v9(Android 2.3)以上(約99.5%)
・v14(Android 4.0)以上(約90.4%)

※カッコ内のパーセント表示は、Google Playストアにアクセスするデバイスのサポート割合(本コラム執筆時点。開発ツールAndroid Studioの表示より転記)です。V8(Version 2.2)以上をサポートすると、Google Playストアにアクセスするほぼ100%のデバイスをサポートできることになり、V9(Version 2.3)以上をサポートすると99.5%、V14(Version 4.0)以上では90.4%のデバイスをサポートできます。

対応バージョンは、アプリの目的に応じて機能とサポート割合のバランスを考えて決定します。最近のOSにすればするほど開発時に新機能が扱いやすく、その代わりにアプリを利用できないデバイスが増えていくのです。

私たちの提供しているスマホがポイントカードになるアプリ(Cardfeel)は、機能の拡充よりも多くの機種で動くことが求められると判断し、V8(Android 2.2)以上を選択しています。
最近リリースされるアプリではV14(Android 4.0)以上を選択することが増えてきているようです。

【企業内でアプリを配布する場合】
企業内(In house)のアプリを開発する場合は、App Storeの制約はないので、iPhoneアプリであっても対応OSを自由に決めることができます。
ただしサポート範囲を広げれば広げるほど、使える機能(API)は限定されるうえに、開発コスト(特にテストの作業規模)が増えるので、できる限り狭い範囲にするのが通例です。OSをアップグレードできない古いデバイスを利用する場合を除き、できるだけOSのバージョンを統一することでコストを節約できます。

Pocket