日経ソフトウエアの武部健一記者は2009年10月28日,ITpro EXPO 2009において「iPhoneとAndroid 拡張現実を実現する端末のプログラミング環境」と題する講演をした。講演で武部記者は,米Appleの携帯電話iPhoneと,米Googleが提供する携帯電話向けOSのAndroidを搭載した携帯電話は「実空間とインタラクションする拡張現実アプリケーションを実現できる端末」と定義したうえで,これら端末の開発者にとっての状況と,産業的な視点における現況を述べた。

ARのための各種デバイスと高度なクラス・ライブラリ

 拡張現実(Augmented Reality,以下AR)は,現実の位置情報や景色などに,電子的な情報を重ねることで,現実の世界を拡張する技術の総称。iPhoneやAndroidを搭載した端末が備えるGPSやカメラ,照度センサー,近接センサー,電子コンパス,加速度センサーなどの各種デバイスは,「実空間とインタラクションできるARアプリケーションを実現するためにある」と武部記者は主張する。

 さらに,これらのデバイスは,開発環境のiPhone SDKや,Android SDKが提供する「高度なクラス・ライブラリがあるので,ハードウエアを強く意識することなく,(プログラマなら)だれも簡単に扱える」と武部記者は語る。

「NeXTの資産,長い蓄積」

 続いて,iPhoneとAndroidそれぞれの開発環境を紹介。「iPhoneの開発環境は非常に充実している。その理由の一つは,歴史が長いプログラミング言語のObjective-Cを利用していることにあるのではないか」と武部記者は指摘する。Objective-Cは,C言語をベースにオブジェクト指向機能を追加,拡張したもの。米NeXTや,米AppleのOS向けプログラミング言語として,20年以上使われてきた。

 このObjective-Cでは,C/C++の機能をそのまま使えることもあり,C/C++を知るプログラマには習得は「主観的な問題ではあるが,文法的には簡単」(武部記者)。Objective-C特有の記法も含むソースコードをいくつか紹介したうえで「(特有の部分は)少し覚えるのに時間がかかる」としながらも,PC向け開発並みの簡単さで,携帯向け開発ができる例を示した。さらに,Objective-C習得を目指す開発者に向けて通称「荻原本」と呼ばれる,『詳解 Objective-C 2.0』(ソフトバンク クリエイティブ発行,2008年5月)を読むことを薦めた。

Andy Rubin氏の集大成は「インテント」が特徴

 一方,Andoroidの開発環境については,「モバイルのシステムがどうあるべきかをここ十何年ずっと考えてきたエンジニア」であるAndy Rubin氏の集大成だと紹介した。Andy Rubin氏は,米Appleを経て,元祖PDAを開発した伝説の企業の米General Magicに所属していた。現在は米GoogleでAndroidを担当している。

 Androidの開発環境には,4つの構成ブロックがある。(1)ユーザーが操作する画面を示す「アクティビティ」,(2)ユーザー・インタフェース(以下UI)なしで動くコードの「サービス」,(3)ファイルやデータベースを示す「コンテント・プロバイダ」,(4)“概念”を示す「インテント」---。このうち,「特徴的で,iPhoneと違うのはインテントだ」と武部記者は言う。

 例えば,電話をかける,音声ファイルを再生するといった“概念”を,開発環境上で扱っている。ある電話番号に電話をかけるという処理をAndroid上で実装したい場合,インテントを利用したコードを数行書くだけで,そのAndroid上にある「ベストな電話をかけるアプリケーションを(自動的に)探し出して,電話をかけてくれる」。このようなソースコードを示しながら,この概念を扱うインテントを「一段抽象化された概念で扱えるので画期的」と武部記者は語った。

似ている部分もある

 このようにiPhoneとAndroidの開発環境を紹介した武部記者は,「一方で,最近のモバイル環境ということから似ている部分もある」として,両者に共通する技術として,WebブラウザがWebKit,3次元CGがOpenGL ES,データベース管理システムがSQLiteであることを挙げた。「もし(iPhoneとAndroidで)同じアプリケーションを作らないといけない場合,これらのミドルウエアやデータ形式が共通であることから(一方の開発環境を利用するために得た知識は)ある程度は生かせる」と武部記者は述べた。

 そのうえで,iPhoneとAndroidでのGPSや加速度センサーを利用するための短いコードを示しながら「(これらのデバイスを)利用するのはとても簡単。GPSなら多くても10行以内のコードで位置情報を取得できる」として,その簡易さを説明した。

「夢がある,パソコン産業がたどったのと同様の道のり」

 最後に武部記者は,開発者から見た「趣味的な視点」と,社会にどう影響していくかという「産業的な視点」の二つの視点で,iPhoneとAndroidの現況をまとめた。

 趣味的な視点では,(1)モバイルのプログラミングは楽しく,自ら作成したアプリケーションを他人に見せびらかせることで,開発者はモチベーションを維持しやすい,(2)特にiPhoneは,洗練されたUIを簡単に使える点で,開発を楽しめる,(3)ライバルは世界に何万人もいる開発者で,ちょっとしたものだとお金もうけは難しいが,作ったアプリケーションの販売が簡単にできる点で夢がある---とした。

 産業的な視点では,(1)どちらも洗練されたOSと開発環境がある,(2)携帯電話産業はシリコンバレー企業の得意領域にフェーズが移行しているとしたうえで,「パソコン産業がたどったのと同様の道のりを歩み始めている」と武部記者はまとめた。