日本での発売が待ち遠しい! Google Glassアプリ開発のA to Z

larry-page-google

ご存知の通り、Google Glassは、Google社が開発している眼鏡型のウェアラブルデバイス。現在ベータテスト中で発売時期は未定。プライバシー関連の問題も指摘されているが、現時点で最も注目度が高い製品であり、iPhoneのような革新性を期待されていることは間違いない。

OSは同社のAndroidを使用している。もちろん独自のアプリも開発可能だ。今回はGoogle Glass用アプリ=’Glassware’の開発に興味を持ったエンジニアのために、必要な予備知識をまとめてみた。

Google Glassとは

まずはGoogle Glass(以下、Glass)のハードウェアとUIについて知っておこう。

外観はドラゴンボールのスカウターに似ていると言えば分かりやすいだろうか。機能は全て右側に集中している。右目ガラス上部にディスプレイ、ツルの部分にカメラ・マイク・タッチパネル・カメラボタン、耳の後ろに骨伝導スピーカーが配置されている。

3Gチップは組み込まれていないので、単体では通話やSMSを利用できない。WebへもWi-Fi経由、またはスマホとのBluetoothペアリングによる接続となる。GPSチップも組み込まれていない。Wi-FiやBluetooth接続したスマホ経由で位置情報を利用する。つまり基本的に野外ではスマホ、あるいはポケットWi-Fiが必要となる。

独特なユーザーインターフェース

Glassのユーザーインターフェース(以下、UI)は実に独特だ。アプリを開発するにはそのUIの理解が基礎となる。

ディスプレイは時系列順にCardと呼ばれるコンテンツが表示される。これをTimelineと呼ぶ。Timelineは”ok glass”と表示されるHome画面を中心に、右が過去、左が現在または未来のCardで構成。Home画面はタッチパネルのタップやヘッドジェスチャー、「ok glass」の音声などで起動し、スワイプすることで画面を切り替えられる。

Cardはテキスト、HTML、画像、動画のいずれかをディスプレイに表示する。タップでメニューを表示、スワイプでメニュー選択が基本の操作方法。タッチパネル以外にも「ok glass, take a picture」など各種の音声コマンドでも操作可能だ。

またGlassならではの操作方法として、ウインクとヘッドジェスチャーがある。例えばHome画面でウインクすることで写真を撮ることができる、などの操作が可能になる。現在アプリで利用する方法は公開されていないが、恐らく今後公式APIで利用できるようになるだろう。

文字入力については基本的に音声入力となる。ただしサードパーティによって、タッチパネルや視線などを利用した文字入力アプリも開発されつつあるようだ。そちらも今後に期待しよう。

続いては気になるGoogle Glass用アプリ(以下、Glassware)について。Glassware開発方法には、Mirror APIとGlass Development Kit(以下、GDK)の2種類がある。まず初心者向けのMirror APIから紹介しよう。

Mirror APIは手軽なWebアプリケーション向け

Mirror APIはGoogleからREST通信で提供されているAPIだ。利用するにはOAuth2.0でユーザーのGoogleアカウント認証を行う必要がある。必然的にWebアプリケーションでの利用が前提となる。

使用言語はPHP、Ruby、Pythonなど、REST通信に対応できればなんでもOK。OAuth認証で発行されたトークンを含むリクエストを投げると、CardがJSON形式でGlassに送信され、Timelineに挿入される。各種言語のサンプルも公開されている。また、こちらの記事にはテキストを表示するまでの具体的な手順が分かりやすく紹介されている。

Cardは前述の通りテキスト・HTML・画像・動画、いずれかの形式だ。HTMLについてはGlass向けに設計されたテンプレートが
幾つか公開されている。Glassは独特なUIなのでデザインの難易度は高い。ユーザビリティを考えると、これらのテンプレートを利用するのが望ましい。

そして肝心の動作検証だが、残念ながらMirror APIの公式エミュレータはまだない。ただし個人によって非公式のエミュレータなら公開されている。実機がない場合、当面はそれを利用するしかないだろう。

前述の通り、Mirror APIは手軽なWebアプリケーション向けの開発手法だ。ネイティブアプリはMirror APIだけでは作れない。次に紹介するGDKが必要となる。

本格的なGlasswareを作るならGDK!

GDKはGlass上のネイティブアプリを開発するためのSDKだ。Android SDKの拡張として提供され、Glass独自のUIや機能に対応している。使用言語はJava。

ところでCardには静的なStatic Cardと動的なLive Cardの2種がある。画面の更新頻度で使い分け、同一画面で内容を随時更新したい場合はLive Cardを使うこととされている。このLive CardはGDKでしか作成できない。

またアプリ操作に対応する音声コマンドの定義、タッチされている指の本数やスワイプした長さなどの情報利用にもGDKが必要だ。Glass独自の機能を活用した本格的なGlasswareを作る場合には、どうしてもGDKを使うことになる。

Mirror APIと同じく、GDKのサンプルも既に幾つか公開されている。こちらの方はそれを参考にHello Worldを表示するアプリを作ってみたようだ。Cardの概念やGlass独特のUIへの配慮以外は、Androidアプリの開発手法をそのまま流用できそうだ。

動作検証についてだが、現時点でGDKのエミュレータは公開されていない。GDKのGlass独自APIを利用して開発する場合は、どうしてもGlassの実機が必要になる。

Glasswareの配布とインストールは?

Glasswareを開発したら、次は配布とインストールだ。配布方法は公式と非公式の2通りがある。

公式Glasswareとして配布するには、専用フォームからGoogleへ申請してレビューを受ける必要がある。ただし現時点で公開されているGlasswareはたった50余り。ハードルは高そうだ。

気軽に配布したい開発者は非公式、いわゆる野良アプリとして公開している。Androidと同様にapkファイルをWebサイトなどにアップしてURLを公表するだけ。アメリカにはそれらをまとめたサイトもある。

インストールについてだが、公式GlasswareはスマホやPCのMyGlassアプリ、あるいはGoogleの配布サイトからインストールできる。非公式Glasswareのインストールは、これもAndroidの野良アプリと同じ。USB接続されたPCからadbコマンドでインストールする。

Glassware開発の留意点

Glassは独自性の強いデバイスのため、Glasswareの設計はGlassに特化することが求められる。既存のスマホアプリ・Webアプリの流用は基本設計からの再検討が必要だろう。

また、前述した通りエミュレータが現時点では公開されていないため、実用レベルのアプリ開発には実機が必須となる。たとえエミュレータがあったとしても、実機を使用したユーザビリティーの検証は欠かせない。開発を日本で行う場合、現時点で一番の難関はその実機の入手だろう。

アメリカでは今年の5月から「Explorer Edition」の在庫分のみ1500ドルで入手可能になった。Amazonを探せばそれらの並行輸入品も販売されている。高価だし在庫も限られているが、エミュレータもなく一般発売もされていない今だからこそ、購入する価値があるかもしれない。

Glasswareを開発するなら今すぐに!

もう一度述べるが、公式Glasswareは現時点で50余りしかない。今から開発して、それがもし公式に採用されれば必然的にTop100だ。一般発売される頃にはアプリ数はもちろんさらに増えているだろうが、その時点で既に公式であれば大きなアドバンテージになる。

既存のAndroidアプリでの開発経験も生かせるのでリスクも少なく、Glasswareのノウハウを今から積み上げることで得るものも大きい。実機を手にすればアイデアも幾つか思いつくだろう。一発大当たりの娯楽系アプリ。確実な収益につながる業務アプリ。もしかしたらそれがGlassのキラーアプリになるかもしれない。

Google Glassは、あなたの視界をきっと大きく変えるだろう。