ホテルの部屋に入ったとき、室温がほどよく調整され、BGM にはお気に入りの音楽が流れ、TV では楽しみな番組が録画済みで再生されるのを待っていたらどうでしょうか。また夫婦で一緒に過ごしているとき、スマートフォンのアドレス帳をパートナーのアドレス帳と統合できて、本来は短縮ダイヤルやお気に入り、緊急連絡先に登録しておくべき義母の電話番号をパートナーにまた尋ねるという失態を演じずに済むとしたら、どうでしょうか。さらに、ニューヨークやサンフランシスコなどの都会で、空いている道路や個人駐車場を使うことができ、さらに、所有者が戻ってくるまで、
そのスペース を借りることを交渉できるとしたらどうでしょうか。
こういった状況における共通のテーマは、近くで通信できる人や場所、ものを検知することです。
今年の I/O では、
新しい Nearby Connections API についてお話ししました。これは、近くにある完全オフラインの端末間で、P2P 方式によって高帯域幅、低遅延の暗号化データ転送を行うものです。本日(*原文公開当時)は、
Google Play サービス 11.0 以上を実行しているすべての Android 端末で
この API が利用できるようになったことをお知らせします。
Nearby Connections は、内部的に WiFi、Bluetooth LE、従来型 Bluetooth を利用して近くの端末を検知し、接続を確立します。こういった無線通信は本質的に複雑ですが、それぞれのメリットを利用しつつデメリットを回避することで抽象化を行い、その複雑さを排除しています。この抽象化によって、異なる OS のバージョンや端末間の無線通信に対応する煩雑さを回避できるという明らかなメリットが得られます。さらに、適宜無線通信を切り替えて接続の帯域幅をシームレスに増加させることも、新しい無線通信テクノロジーが利用できるようになった場合、それを利用するように透過的な OTA アップデートを行うことも可能です。いずれの場合も、アプリのコードは一切変更する必要はありません。
この API の中核にあるのは、バイト列、ファイル、データ ストリームを転送できる(Unix のソケットに似た)接続です。この API では、2 つの接続トポロジーがサポートされています。
- スター型: センターとなる端末が存在し、他の端末がそこにアクセスする 1 対 N 型のトポロジーの構築に便利です。たとえば、オフライン ゲームのホストや、教育用の試験アプリで教師が使う端末などです。
- クラスタ型: 疎に結合したメッシュ型ネットワークを実現する M 対 N のトポロジーに便利です。たとえば、リアルタイムでコラボレーションを行うプロジェクト グループを臨機応変に作成できる教育用アプリや、オフラインで近くにいる人同士がチャットできるアプリなどです。
この API を作成する過程で、固有のオフライン データ転送のニーズと環境を持つ何社かのパートナーと共同作業を行いました。パートナーがこの API の初期版を使って構築したものを見るのはすばらしいことでした。また、本日のリリースに向けて、各パートナーのフィードバックは非常に価値あるものになりました。以下で、パートナーが構築したおもしろいアプリをいくつか紹介しましょう。
- The Weather Channel は、データが不足している地域でオンデマンドのメッシュ ネットワークを構築し、緊急の注意報を配信しています。
- Hotstar は、インターネット接続が不安定または利用できない場所(公共交通機関、飛行機など)でのオフライン メディア共有を実現しています。
- GameInsight は、Nearby Connections を使って近くにいるプレーヤーを探したり、完全オフラインの状態でゲームを実行したりしています。
- Android TV では、初期設定を簡素化し、さらに 2 番目の画面を活用するためのリモコンアプリ(Nearby Connections を利用)が作成されています。
現在、この API は一般公開されています。
皆さん が
皆さんの アプリで Nearby Connections をどう使うのか、早く見たくてしょうがありません。まずは、
デベロッパー サイトにアクセスし、
サンプルコードを確認してみましょう。質問があれば、遠慮なく Stackoverflow に投稿してください(
google-nearby タグを付けてください)。
メーリング リストに登録すると、最新の Android Nearby(およびその他の関連 API)についての情報を得ることができます。
Reviewed by