アンドロイドの論点 : 「アンドロイド端末の多様性に開発者はどのように向き合うか」

[PR記事]

 

長い間ご無沙汰してしまいましたがアンドロイドの論点もこれで4回目となります、gamellaです。今回はGoogle Developer Day 2010というイベントに参加し、特にアンドロイドの開発者関連のセッションを重点的に聞いて、感じたことをベースに記事をまとめてみました。

今回のテーマは 「アンドロイド端末の多様性に開発者はどのように向き合うか」になります。といいますのも、アンドロイドアプリケーション開発を行う上で大きな問題の一つにアンドロイド端末の多様性という問題があります。アンドロイドアプリケーションの開発においても一番の問題に挙げられるこのテーマに関して今回は考えてみたいと思います。

アンドロイド端末の多様性について

アンドロイドはLinuxやオープンソースのライブラリ群から構成されるOSであり、そのライブラリ、ソフトウェアのライセンス条項を守りさえすれば、どのような企業、個人でも基本的には利用することが可能です。よって、アンドロイド端末はいろいろな企業がそれぞれ独自のハードウェアでリリースすることができるため多様な端末が世の中に存在することになり、例えばCPU、GPU、メモリ、物理的なユーザーインターフェース、ディスプレイのサイズなどたくさんの違いが端末ごとに存在します。

しかし、このようなスペックの違いにより、動かせるアプリケーションの範囲を狭めてしまうと、結局自分たちの首が締まることは携帯電話各社ともに認識しており、Android OS 2.1以降をサポートするHTC Desire、Google Nexes One、モトローラ DROIDなどの端末はそれぞれ似たスペックになってきています。

日本でもっともシェアの高いアンドロイド端末であるXperiaの9月に予定していたAndroid OS 2.1へのアップデートが遅れたため、まだAndroid1.6のサポートをビジネス的には切ることは出来ずやきもきしている方も多いのではないかと思います。ただ、いくら遅れたと言っても、さすがに年内にはアップデートも行われるでしょうし、日本の端末のほとんどがAndroid 2.1になる日も近く、根本的なAndroid OSのバージョンの違いはアンドロイド自体の開発が落ち着くに従い、緩和していくと思われます。ただ、それでも今後タブレット端末が登場したり、Google TVがリリースされたりするとOSのバージョン的には違いは少なくても、解像度などのスペック的な多様性が存在し続けるのは事実であり、この問題にどのように折り合いを付けるべきかを考えてみたいと思います。

開発者が多様性の問題に直面する場合の3つのケース

どのようなケースでアンドロイドアプリケーションの開発者がアンドロイド端末の多様性の問題に直面するか、をまず整理しておく必要があるかと思います。個人的に直面するだろうと思われる具体的な局面は以下の3つです。

  • 個人開発者、小規模アプリが少ない労力でアプリ開発を行ないたいケース
  • 企業が他のプラットフォームで提供できている機能をアンドロイド端末でもおなじように提供したいケース
  • リッチなリアルタイムゲームを作成するケース

他にもいくつか考えられますが、これらの代表的な局面についてまずは考えてみたいと思います。

個人開発者、小規模アプリが少ない労力でアプリ開発を行ないたいケース

「個人開発者、小規模アプリが少ない労力でアプリ開発を行ないたいケース」においては、開発者ができるだけ多くのアンドロイド端末で無理なくアプリを動かしたい、と考えたときにアンドロイド端末の多様性の問題に直面することになると思います。例えば、Xperiaを意識して、本当はAndroid2.1で開発をおこないたいのに、Android 1.6環境で開発している人も多いと聞きます。この問題はGoogle Developer Day 2010で多くの個人開発者が述べていたことですが「他のアプリケーションとうまく連携できるアプリケーションがクール」というアンドロイドアプリ開発におけるセオリーにより、だいぶ緩和できていることを感じました。

すでにご存知のかたも多いと思いますが、アンドロイドにはインテント、コンテントプロバイダーという機能があり、複数のアプリ間の連携を極めて簡単に行うことが可能になっています。たとえば、以下のブログエントリーなどは非常に分かりやすくこのアプリ間連携を説明しています。

インテントというシステム機能を利用することで、例えば画像投稿アプリは自前で画像編集機能を持たなくても、他の画像編集専門アプリで編集した画像を画像投稿専門アプリで投稿するようなことを簡単に行うことができます。この機能をうまく利用することで、開発者が何か特定の機能を実装したい場合、その機能にフォーカスしてアプリの実装を行うことが可能です。そして、アプリに実装する機能が少なくなれば自動的に端末の多様性に対応するコストも減っていきます。

アンドロイドには絵文字を含んだ文章を作成するためのEmoji Pickerなど、何か専門のことに専念し、他のアプリと連携することを前提としたアプリケーションが多く存在します。Linuxのコマンドラインツールをシンプルに作って、パイプで標準入出力をつなぐ、という考え方に非常に似ていますが、そのような専門のアプリを複数有効活用するようなユースケースを想定すれば、かなり開発のコストは個人的なプロジェクトならば減らすことができる、と思います。この考え方はすでに個人でアンドロイドアプリを開発している開発者にはだいぶ浸透してきており、ますます一般化していくのはではないかと思います。

企業が他のプラットフォームで提供できている機能をアンドロイド端末でもおなじように提供したいケース

個人開発者のケースでは他のアプリとの連携を密にすることで開発コストもだいぶ抑えられますが、企業が他のプラットフォームで提供している機能をアンドロイド端末でも提供しなければいけないようなケースでは、アンドロイド端末の多様性はとても大きな問題として立ちふさがってくると思われます。

特にEvernoteなどはアンドロイド対応が大変だった形跡が見られ、iPhone版と比較して機能が貧弱であることがたびたびユーザーレビューなどで指摘されていました。全てのプラットフォームで同程度の機能を提供しなければならないという制限は企業には存在しないものの、iPhoneとAndroidでは同じ機能を提供してほしいというのがユーザの正直なところ。しかし、単一の端末をサポートすればいいiPhoneと違って、多くの端末でフルセットの機能を提供しなければいけないアンドロイド版の開発は、そのサポート時期の遅れからも非常に大変だったと思われます。

このケースが恐らくアンドロイドアプリ開発における一番企業が直面しやすい多様性に関わる問題で、それこそ端末の多様性を吸収するフレームワークを利用、作成するなどの根本的かつ地道な対策を行ない続けるしか対策は存在しないと思われます。ただ、この部分のノウハウは今後もAndroidアプリ開発におけるノウハウとして存在しつづけると思われますので、ここは腹をくくって取り組むことが結局は最終的な成功に結びつくポイントなのかもしれません。

リッチなリアルタイムゲームを作成するケース

リッチなリアルタイムゲームを作成するケースは、前述したGoogle Developer Day 2010の「Android でリアルタイムゲームを開発する方法:リベンジ」という講演が極めて情報も充実しており、参考になったので是非その講演レポートなどをご参照ください。

この講演の中で注目すべきは、リアルタイムゲーム(OpenGLで描画し、30fpsで動作するゲームのことです)であれば、アンドロイド端末を第1世代と第2世代で以下のように分けることができ、

  • CPU 400MHz相当の第1世代:HT-03A、HTC T-Mobile G1
  • CPU 1GHz相当の第2世代:HTC Desire、Google Nexes One、モトローラ DROID、Xperia

ここで第2世代に焦点を絞った場合、30FPS以内で3万頂点を描画できる程度の処理能力を全端末が保持しているため、ゲーム開発もかなり行ないやすくなっている、という点かと思います。確かに、Xperiaに9月末に予定されていたAndroid 2.1のアップデートがすでに行われていれば、心置きなく日本でも第2世代に焦点を絞ってOpen GL ES2.0で開発ができるはずでした。一点、講演の中で述べられているXperiaは画面描画に同期が入っているため30FPSでFPSが固定されてしまうことが気になりますが、概ねアンドロイド端末におけるゲーム開発のノウハウも共有されつつあり、Unityなどのフレームワークを利用することで、さらにアンドロイド端末の多様性への対応コストは下がっていくと思います。

ただ、個人的にはリアルタイムゲームにおいてアンドロイドプラットフォームの最大の問題は、タッチパネルしか物理インターフェースを想定できないという点かと思います。いや、Google TVのことを考えると、タッチパネルさえも怪しくなってきます。多くの人が考えているよりもゲームというものにとっては物理的インターフェースは重要であり、PSPやNintendo DSのような携帯ゲーム機が携帯ゲーム機である所以も、ゲーム用の十字キー、ボタンなどのゲーム専用のインターフェースを備えているからこそです。というのも、今、世の中に存在しているゲームの多くはこれらのインターフェースを想定して発展してきており、タッチパネルで本当に面白いゲームを作るノウハウというものが一般的にそれほどまだ確立できていません。現状のiPhoneを見ても携帯ゲーム機相当の高額なゲームがほとんど発売されていないのは、根本的なマーケットの違いなどもあるものの、現在の携帯ゲーム機が達成した面白さに、まだiPhoneのタッチパネルベースのゲームは到達していないという側面も強くあると考えています。

このアンドロイド端末の物理的インターフェースの多様性の問題はiPhone以上であり、私はこの問題がかなり大きいと考えています。

最後に

アンドロイドのアプリ開発の問題点として語られるアンドロイド端末の多様性を論点に、いろいろなケースに関して考察を行ないました。明らかにこの多様性の問題も改善傾向に向かっているものの、根深い問題も多数存在しており、これらの問題が今後どのように推移していくかチェックし続けたいと思います。






  • ※お手持ちの端末や環境によりアプリが利用できない場合があります。
  • ※ご紹介したアプリの内容はレビュー時のバージョンのものです。
  • ※記事および画像の無断転用を禁じます。

執筆者