前回、前々回とAndroid4.0~4.2に関するエントリーを書きました。最後は、Androidの抱える癌の部分である、断片化について紹介しようと思います。
機種依存
Androidアプリ開発者にとっての最大の悩みです、OSのバージョンが同じでも解像度が異なっていたり、同じOSのバージョンでもメーカーがカスタマイズをおこなっているため挙動が異なったりということはよく聞きます。仕事でWebアプリの開発をしていますが、同じOSのバージョンの標準ブラウザであっても描画や挙動が異なったりします。このようにAndroid向けの開発を終了する事例もあります。
「Androidはもうからない」――人気ゲームメーカーが開発終了を発表
同じAndroidでもいかに多様化しているかが、この記事からもわかると思います。
Android用アプリ開発が難しい原因が機種数の多さによる断片化であることがよくわかる図
ネットでいろんなサンプルコードが公開されているので、エミュレーター上で動作するAndroidアプリを作成することはそれほど難しいことではありません。ただ「多種多様なAndroid端末で動作するアプリ」を作ることが非常に困難になっています。
Androidのアップデート
スマートフォンはガラケーと異なり最新版にアップデートすることができるといわれていた時期がありましたが、Androidに関して言えばそれは幻想です。アップデートを受けられるのは最新機種とNexusシリーズのみです。
例としてdocomoがAndroid 2.3→4.0へのアップデート可能端末を公開しているので、それを例に見てみます。
【Android(TM)4.0 へのバージョンアップ】今後の提供時期および提供中の製品について
こうやって見るとたくさんの機種がアップデート可能なように見えますが、2011年夏モデル(SO-02C, SH-12C など)は軒並みアップデート対象外になっています。iPhone 3GSがiOS6に対応しているのとは非常に対照的です。つまり、Android 4.0リリース後に発売された機種しかアップデートを受けられないということになります。裏を返せば、
「最新端末で、古いバージョンのOSを搭載した機種であればアップデートを受けられる」
「最新バージョンのOSを搭載した機種であればアップデートを受けられない」
ということになります。確かに、まだ発表されていないOSにアップデートできる端末を世に出せるとは限らないというのが現実なのでしょうが、アップデートを受けるためには古いバージョンのOSを選択するというのは皮肉です。
最新OSの機種がリリースされない
Androidは最新バージョンのOSがリリースされてからメーカーが対応端末の開発を始める印象があります。そのため、Googleが最新OSを発表してから、端末がリリースされるまでに半年近いタイムラグが生まれます。これも発表と同時に最新バージョンのOSが利用できるiOSとは非常に対照的です。OSのリリースと、docomo端末のリリースのタイムラグは以下の通りです(たぶん)。
OS | OSリリース | 端末リリース | アップデート |
Android 2.2 | 2010年5月 | 2010年10月(GALAXY S) | 2011年5月(T-01C) |
Android 2.3 | 2010年12月 | 2011年3月(Xperia arc) | 2011年6月(GALAXY S) |
Android 4.0 | 2011年11月 | 2011年6月(SH-07D) | 2012年8月(GALAXY SⅡ) |
多種多様なバージョンが混在する
アップデートが絶望的で、なかなか最新OSの機種がリリースされないということは、さまざまなバージョンのAndroidが混在するという結果になります。2012年12月時点で、メジャーバージョンで2.1, 2.2, 2.3, 4.0と4つのバージョンのAndroidが存在することになります。しかも今後減ることはなく、4.1, 4.2 の端末がリリースされれば、世界に存在するAndroid端末のバージョンの種類はどんどん増えていきます。それが、Androidアプリ開発者の負担になっていきます。
リファレンスモデルが「例外」
日本で唯一正式に発売されているAndroidのリファレンスモデルであるGALAXY NEXUSは「例外」扱いです。アプリであったりサービスの対応機種に
「対象外機種: GALAXY NEXUS(SC-04D)」
とよく記載れています。
たとえば: 「AKB48ステージファイターの対象機種を教えてください」とか。
docomoの正式サービスまで対象外機種になってしまい、こんなブログ記事が書かれることも。
Galaxy Nexus(SC-04D)でしゃべってコンシェルを使う方法
挙句の果てには、悪名高いSPモードメールから、Gmail風のクラウドメールへ改めた「ドコモメール」のサービスを開始しますが、堂々と「GALAXY NEXUS SC-04Dは利用できない」と。
Googleが公開しているAndroidは「純正Android」ですが、キャリアのカスタマイズが入っていないためキャリアのサービスが受けられないという不思議な状況になってしまっています。
これまで話してきたAndroidの癌の部分を図にしてみるとこのようになります。この「機種依存」の先には、「アプリ開発者離れ」「Androidの魅力の低下」、「Androidの衰退」と続いていきます。
ただ、GoogleもこのカオスすぎるAndroidの状況をよくないと思っているらしく、Android 4.2 SDK にAndroidの断片化を生じるような行為を禁止しているようです。
グーグル、Android OS断片化の拡大防止のため、SDKに新たな利用条件を設定
ただし、何を禁止しているのかは明確ではなく、すでに断片化したAndroidの状況が解消するには3~4年は必要でしょうから、これからもGoogleと開発者はAndroidの断片化に悩まされることになるのでしょう。