PR

バックグラウンドでのGPS利用、試行錯誤を繰り返す

 当初企画のMap Trapにせよ、「スポットメッセージ」にせよ、「位置に結びついたメッセージ」という概念を実現する必要がある。このため近藤氏は試行錯誤を繰り返した。

 スポットメッセージの機能を実現するには、バックグラウンドでGPS機能を利用し、位置情報を調べ続ける必要がある。実は、Androidのフレームワークには、まさにこの目的のためのAPIが備わっている。「LocationManagerクラス」に含まれる「Proximity Alert」という機能で、これを使えばスポットメッセージの基本機能を簡単に実現できるはずだった。

 ところが、実際に試してみると、この標準APIでは位置情報取得の頻度を設定できなかったり、電池の消耗が激しかったりした。さらに、位置情報が取得できたりできなかったりと動作が安定しない。採用は見送らざるを得なかった。

 また、アプリケーションをAndroid上で常駐する「サービス」として実現することを試みたが、ここでもつまづいた。アプリケーションをサービスとして実装すれば、ウインドウを表示していない時にもバックグラウンドで処理を継続できる。そこで定期的にGPSにより位置情報を取得すればよいはずである。

 だが、このやり方もうまくいかなかった。現実のAndroid端末では、メモリ不足が発生すると利用していないサービスを強制的に終了してしまうのだ。いつのまにかサービスが終了して位置情報を取得できないという事態が多発するため、このアイデアは見送ることにした。

 近藤氏が採用した解決策は「AlarmManager」を使う方法だった。定期的にプログラムを起動して位置情報を検出する。所定の位置に到達するとアラームを出し、メッセージを読めるようにした。

 このような試行錯誤のもと、スポットメッセージの機能は実現されている。登場から間がないAndroid搭載端末のGPS機能やバックグラウンド機能などを使いこなすには、ドキュメントに書かれていない事柄にぶつかったりする試行錯誤がいくつか必要だったのだ。

Androidのインテント使い、一つのURIで「メッセージ」を表現

 この開発プロジェクトでは、近藤氏は実装に参加しただけでなく、積極的にアイデアを出した。例えば、メッセージの受け渡しに、URI(スポットメッセージのメール文面中では“URL”と表記されているが、ここではプログラミングの世界での表記に従いURIとする)を使うというアイデアは、近藤氏によるものだ。

 Androidの基本的な機能として「インテント」がある。アプリケーション間連携でごく一般的に使われる、Androidを特徴づけている基本的な概念の一つだ。インテントの機能を利用する時には、データと、スキーム(データを処理すべきアプリケーションの種類)をまとめてURIとして表現し、このURIをアプリケーションの間で受け渡しする。

 URIには、メッセージ本文をエンコーディングして埋め込むことができる。そのままでは非常に長いURIになるが、インターネット・サービスとして公開されている「短縮URLサービス」を使うことで、実際に受け渡すURIを短いものにすることができる。

 さらに、受け取ったURIからAndroidアプリケーションを起動するためのWebページを動的生成している。この部分にはクラウド・サービスであるGoogle App Engine for Javaを使っている。

 これらの概念とサービスを組み合わせ、比較的短いURIを受け渡し、メールに表示されたリンクをクリックするだけでスポットメッセージを起動し、メッセージ本文を受け渡す仕組みを作り上げた。サーバー側アプリケーションでメッセージを格納、受け渡す仕組みを構築する場合に比べ、サーバー側の負荷を非常に少なくすることができた。

 プログラミングの側面だけでなく、デザインの側面でも試行錯誤を繰り返した。Androidが標準で用意するUI(ユーザー・インタフェース)用部品は見栄えが良くない場合が多く、スポットメッセージでは独自のデザインを施したUI部品を使っている。最後の追い込みの段階で、部品デザインを変更した場合もあった。

 iPhoneアプリの多くが標準のUI部品を多用するのに対して、Androidアプリでは独自のUI部品を使う例が多いようだ。別の見方をすれば、Androidではデザインで差を付ける余地が大きいといえる。

最もシンプルな形に落とし込んだ

 スポットメッセージを見ていると、さまざまな想像が湧いてくる。現在の機能は最小限のものに絞り込まれているが、ソーシャル・ネットワーク・サービスとの連携や、位置情報をトラッキングするアプリケーションなど、いろいろな方向に発展できそうな可能性が感じられる。

 バンプールの日野氏は「今のスポットメッセージは最もシンプルな形。次の可能性については、正直いって模索中」と明かす。中村氏は「もし、スポットメッセージに関連して手を組めるパートナーがいれば、積極的に考えていきたい」と話している。

 一方、開発に参加したブリリアントサービスの近藤氏は、現在AR(拡張現実)アプリケーション「ウキウキView」の開発という新たな分野の開拓に乗り出している。

 スポットメッセージは、開発に関わったそれぞれの開発者にとって未知の分野への挑戦だった。そこでの試行錯誤の成果は、必ず彼らの今後の作品で生かされることだろう。

星 暁雄(ほし あきお)
コモンズ・メディア株式会社 代表取締役
星 暁雄(ほし あきお)ITジャーナリスト。メディア・アーキテクト&アドバイザー。ジャーナリストとしてイノベーティブなソフトウエア全般に関心を持つ。これから求められる新たなメディアのアーキテクチャの構築を志している。新たなメディア・コンテナに求められる機能の一つを実現したインターネット・サービス コモンズ・マーカーを開発、公開している。