Androidアプリの複数端末対応を考える
2台目のAndroid端末登場 - 新たな戦いの始まり
はじめまして。私は有山圭二(ありやまけいじ)と申します。運営委員を拝命している「日本Androidの会」経由で、本稿を執筆する機会を頂きました。
執筆が決まったちょうどそのころ、NTTドコモから、ソニー・エリクソンの新型Android端末「Xperia」(エクスペリア)が発売されました。このXperia、発売前から予約が殺到し、特に黒色は人気で品薄状態が続いているとか。
Xperia好調のニュースを受けて、それまでAndroid開発への参入を躊躇(ちゅうちょ)していたソフトウエア・ベンダーが続々とAndroidアプリ開発へ参入しています。また、ソフトバンクモバイルやKDDIもAndroid端末を製品ラインアップに入れることを発表しています。
しかし、Xperiaは、日本国内でのAndroidを大いに盛り上げる一方で、われわれ開発者にとって非常に大きな不安の種を作り出してしまいました。いや、「作り出した」という表現は正しくありません。Xperiaの登場で「不安が顕在化」したというのが正しいのでしょう。
私たち開発者が今後Androidアプリの開発をする上で常に意識しなければならないこと。それは「端末間の互換性の問題」です。
これまで、日本国内でAndroid端末と言えば、2009年7月にNTTドコモが発売した「HT-03A」のことを指しました。しかし、Xperiaの発売により、現在では、複数のAndroid端末が同時期に利用されるという状態になっています。
HT-03AとXperiaのスペックや搭載デバイスをまとめてみると(図1)、2機種の差は一目瞭然(りょうぜん)です。
画面のサイズで見ると、HT-03AがHVGA(320×240)であるのに対して、XperiaはフルWGA(854×480)です。また、端末に搭載しているセンサー類に着目すると、Xperiaは近接センサーと照度センサーを搭載していますが、HT-03Aにはありません。
また、HT-03Aには入力手段としてトラックボール(機械式)がありますが、Xperiaにはありません。
これほど異なる両端末ですが、Androidプラットフォームを搭載している点は共通しています。従って、どちらにも同じアプリケーションをインストールできます。
そして、それぞれの端末のユーザーは、アプリケーションが「自分の端末で正常に動作すること」を期待するのです。
1つのアプリが、すべてのAndroid端末で動作する。これは、Androidの良いところでもあります。ただ、前提となるハードウエアが異なると、正常に動作することは必ずしも保証されない。これが、開発者にとっては不安の種です。
複数端末対応は必要か?
さて、複数の端末への対応は、本当に必要なのでしょうか。
筆者が所属するシーリスには時折、「Xperiaでだけ動けばいいので、開発費を抑えられないか」という相談が来ますが、個人的には、通常のAndroidアプリケーションの開発では、特定機種のみに限定して開発することで極端に工数が小さくなったり、逆に大きくなったりすることはまれだと思います。
なぜなら、Androidには、端末が表示する言語や使用される地域、画面の大きさや端末に搭載されたハードウエア間の差を埋める仕組みがあらかじめ用意されており、その仕組みにあった設計にしておけば、最低限の工数で、端末に依存しないアプリを開発できるからです。
逆に、この仕組みを知らずにやみくもにアプリケーションを開発してしまうと、後々、複数端末対応のために設計や変更を余儀なくされ、苦労することになります。
今は、Xperia専用でも構わないかも知れません。しかし、もっと新しい端末が出た時に、どうせ対応する必要が生じるのです。不安を先延ばしにするより、今のうちにきっちり基本を押さえて、将来に備えておきましょう。というのが、本連載の趣旨となります。
次のページでは早速、端末に依存しない複数端末向けのアプリを作る上で、最低限押さえておくべき点について見ていきます。