現在の携帯電話でマッシュアップを使うのは不可能に近い。携帯電話用のWebブラウザはJavaScriptをサポートしていないし,Javaアプリを使ってマッシュアップ・アプリケーションを作るのも困難だ。サードパーティが開発した「勝手アプリ」の通信先は,ダウンロードしたドメインのサーバーに限定される仕様になっているからである。

 これに対してAndroidは,こうした制限をすべて取り払える。Androidのアプリケーションはどのドメインとでも自由に通信できるほか,Web APIを簡単に使うためのプログラミング環境を用意した。

 この仕組みに対してソフトウエア開発者たちは「携帯電話ではできないとあきらめていたことを実現できるようになった」(豆蔵BS事業部アーキテクトグループの江川崇コンサルタント)ともろ手を挙げて歓迎する。こうした開発者の思いを表すかのように,インターネット上で公開されるAndroidアプリケーションはマッシュアップを前提にしたものばかりだ。

 オンライン・ゲームなどを開発するケイブの新規事業推進室の安生真氏は「Androidのマッシュアップ機能を使えば,ゲームとインターネットの壁を壊せる」と期待を寄せる。現在のオンライン・ゲームは,プレイヤ同士のメッセージ交換やランキングの表示などが,すべてゲーム会社のサーバーで提供される。iアプリのドメインの接続制限や機能制限があるからだ。

 Androidでは,ゲームのアプリケーションからも他社のページの読み出しやWeb APIを使ったサービスを利用できるので,「mixiやFlickrといった既存のSNS(ソーシャル・ネットワーク・サービス)のユーザー間で対戦したり,メッセージ交換したりできるようになる」(安生氏)という。

アプリ同士の組み合わせも思いのまま

 Androidがもたらすのは,インターネット・サービスのマッシュアップ開発環境だけではない。端末上で動作するアプリケーション同士を組み合わせてマッシュアップでの開発ができる。現在実行中のアプリケーションから別のアプリケーションを直接指定してパラメータやファイルを渡せるほか,そのファイルやパラメータを処理できるプログラムをシステムに問い合わせて,適切なアプリケーションを呼び出せる(図1)。

図1●マッシュアップによる電話帳アプリの例<br>端末上にある複数のアプリケーションを自由に組み合わせて一連のアプリケーションを作成できる。ここで示したアプリケーションはすべて架空のもの。
図1●マッシュアップによる電話帳アプリの例
端末上にある複数のアプリケーションを自由に組み合わせて一連のアプリケーションを作成できる。ここで示したアプリケーションはすべて架空のもの。
[画像のクリックで拡大表示]

 例えば,顔写真と電話番号,住所などが一緒に表示される電話帳アプリケーションを作ったとしよう。このとき,開発者は既存のフォト・アルバムや地図,経路検索といったアプリケーションを,玩具のブロックのように組み合わせられる。顔写真が選択されていないユーザーの画面から,フォト・アルバムを呼び出して,写真の一覧を表示。この一覧から目的の写真を選択すると,このファイルが元のアプリケーションに渡され,顔写真欄に貼り付けられる。さらに,相手先の住所をタップすると,住所の情報が地図アプリに渡され周辺の地図を表示したり,現在位置を取得してその住所までの経路を表示する機能も簡単に追加できる。

 残念ながら,既存の携帯電話ではこうした処理は不可能だ。「携帯Javaでは,各Javaアプリは独立して動作しており,パラメータをやり取りする機能はない」(携帯電話向けJavaに詳しいアプリックス研究開発本部副本部長の門間純一執行役員)からである。

端末内のセンサー機能をフル活用

 パソコンのアプリケーションとは異なり,Androidでは携帯電話ならではの通話やメッセージ機能に加えて,各種センサーの機能を隅々まで利用できる。これもまた,開発者たちを興奮させる。「GPSや加速度センサー,電子コンパス(地磁気センサー),カメラなどの入力手段を自由に使って,どんなアプリケーションができるか考えただけでもワクワクする」(組み込み技術者の水野光男氏)。

 例えば,加速度センサー情報を自由に使えば,新しいユーザー・インタフェースが考案できる。組み込み技術者の木南英夫氏は「右手で振れば自宅に,左手で振れば息子の家に電話をかけるといった,年配の方が使いやすいアプリケーションが実現できる」という。

 さらに,Androidを使って携帯電話のセンサー情報をきめ細かく集めることでネットワークがユーザーの行動や意図を先読みし,サービスを提供できると考える開発者もいる。例えば,「ユーザーの動きから会社を出て自宅に戻ってきていると推測し,帰宅時間に合わせてお風呂を沸かしておく」というアイデアだ。プログラマのadamrocker(ハンドル名)氏は「今後,ユーザーの動きをセンサーで収集して,それをインターネットに取り込む動きが加速すると言われているが,Androidがその先べんをつけるのではないか」と語る。

 Web API経由で得たパラメータや端末上のローカル・データ,各種センサー情報を結び付けたアプリケーションを記述するのは,Webプログラミングに慣れた開発者にはそれほど難しくない。「パソコンで一般に使われているJ2SEの実行環境で開発できるのに加え,用意されているAPIの抽象度が高いのでプログラマとしては歯ごたえがないほど簡単に作れてしまう」(adamrocker氏)。例えば,第1回で紹介したAroundHereは実質30分程度でプログラミング作業が終わったという。

 既存の携帯電話では,GPS情報を利用できるのは,携帯電話事業者と契約を結んだ開発者だけ。しかも,アプリケーション連携や接続先ドメインの制限があるために,センサーとインターネットを結び付けた自由なアプリケーションを作るのは難しい。