ウタリとライフツービッツはOnSayの提供前に、Twitterを使った位置情報ゲーム「ecolien」をリリースしており、Twitter連携アプリの開発ノウハウを持っていた。プロジェクトゼロにはVoIPに詳しい開発者が在籍しており、3社のノウハウを結集することでOnSayは完成した。
通話を実現する仕組みはこうだ。まず、ユーザーがTwitterアカウントをOnSayに登録すると、そのアカウントがOnSayのデータベースに利用者として登録される。同時に音声通話のための固有IDが発行され、OnSayのアプリがこれを自身のIDとして記憶する。さらに、利用者の相互フォロワーの情報をAPIを介して取得し、OnSayのデータベースに照会。相互フォロワーの中にOnSay利用者がいれば、通話可能な相手としてアプリのリストに加わるという。
実際に通話する際には、固有IDを使って相手を呼び出し、P2Pによる通話が実現する。純粋なP2Pならば、通話の際にサービス提供側のサーバに負担がかかることはないが、OnSayでは通話品質向上のため、P2Pとサーバ間の双方をトラフィックに応じて切り替えられるようになっている。
「基本的な仕組みはシンプル」とライフツービッツの沢田さんは語るが、一方でTwitterならではの工夫も取り入れた。Twitterでは、フォロー数が数万、数十万と膨大なユーザーもいる。フォロー情報を根こそぎ照会するのは、APIの制限などを考えると現実的ではない。そのため、OnSayではユーザーのタイムラインに上がってきたアカウント情報をチェックし、徐々に照会していく仕組みとした。タイムライン上に相互フォローかつOnSay利用者のアカウントが現れれば、アプリの「友だち」リストに順次登録されていくというわけだ。また、目的のユーザーがリストに表示されない場合のために、アカウント名を直接入力して検索できるようにもしている。
さらに通話アプリとして“現実的”に使えるよう、プッシュ通知の仕組みも取り入れた。アプリ側の開発を担当したウタリの樋口克弘さんによれば、呼び出し相手がOnSayアプリを起動していない場合、まず端末に着信を知らせるプッシュ通知が届き、相手の呼び出し中にアプリを起動すれば、そのまま通話できる仕組みになっているという(現在、iOS 5対応が完全でなく、機能が正常に動作しない場合もある。鋭意アプリを修正中とのこと)。常にバックグラウンドで起動していなくても、こうした仕組みがあればアプリを活用しやすい。
また、「常駐で立ち上げても問題がないように作っている」(樋口さん)とのことで、バックグラウンドでアプリが待機していても、バッテリーはほとんど消費しないそうだ。
Copyright © ITmedia, Inc. All Rights Reserved.