このガイドでは、進行中のタスクを構成するコンポーネントをストップウォッチの形で説明します。進行中のタスクについては、ユーザーがタスクに取り組んでいる間はタイムラインにライブカードが表示され、ユーザーは情報を必要とするときにライブカードに出入りできます。
また、独自の Glassware を構築するための重要な設計、開発、配布のヒントも学びます。
始める前に
ストップウォッチの全ソースは GitHub で確認できます。このガイドは、Android Studio に大きく関わっているため、始める前に Android Studio にインポートしてください。
- クイック スタート画面で、[Check out from version Control] > [Git] をクリックします。
- Stopwatch からクローン URL をコピーします。
- クローン URL を Vcs リポジトリの URL に貼り付け、[クローン] をクリックします。
- 次の画面で [Yes] をクリックします。
- 次の画面で [OK] をクリックします。
- [Play] ボタンをクリックしてプロジェクトをビルドし、接続された Glass で実行します。呼び出しの詳細について、サンプルの
README
を確認してください。
ラボの内容
Android SDK のコンポーネントを使用してストップウォッチの進行中のタスクの大部分をビルドする方法、および GDK を使用して Glass を操作する方法を学びます。以下のトピックについて学びます。
- ライブカードに描画するためのカスタムビューの作成
- ライブカードを管理するサービスの作成
- ユーザーがタイムラインからライブカードを削除できるメニューを提供する
- メイン音声メニューからストップウォッチを開始する音声トリガーの宣言
デザイン
開発を開始する前に、時間をかけて Glassware を設計してください。これにより、Glass で最適な UI フロー、使用する音声コマンド、カードの外観がわかりやすくなります。
もちろん、Glassware の設計は反復的なプロセスであり、ここで設計する対象も変わります。しかし、最初からこの作業の大部分を行うことは、優れたエクスペリエンスを構築するうえで非常に重要です。
UI フロー
UI フローの設計は簡単な演習であり、コードを 1 行記述する前に Glassware を可視化できます。常に Glassware の開発作業を行っています。
ストップウォッチの UI の主要な要素を確認して、独自の Glassware を作成するとき、UI の仕組みと、このプロセスがいかに便利であるかを理解しましょう。
メイン UI
ストップウォッチは、非常にシンプルなエクスペリエンスのため、メインフローが 1 つしか含まれていません。
ユーザーが Glassware を呼び出すと、実際のストップウォッチが開始する前に 3 秒間のカウントダウン インタースティシャルが表示されます。ユーザーがストップウォッチをタイムラインから削除するまで、[Stop] メニュー項目から計上されます。
音声コマンド
設計プロセスのかなり早い段階で、音声コマンドを特定する必要があります。音声コマンドにより、ユーザーは必要に応じて Glass Home で(時計の)音声メニューから Glassware を起動できます。これは、Glassware の設計方法の大部分を占めます。
たとえば、更新を投稿するコマンドがファイア アンド フォーゲット方式の場合は、ユーザーがテキストを発話しても Glassware がユーザーの介入なしで処理を行います。これにより、ユーザーは現在の作業にすぐに戻ることができます。
一方、「ゲームで遊ぶ」などの場合、通常は最初にスプラッシュ画面を表示し、最初にユーザーが誘導されるようにします。多くの場合、この音声コマンドは没入型を起動するため、ユーザーはゲームを開始するために追加の画面やメニューを表示しても問題ありません。音声コマンドの直後にユーザーをゲーム体験にすぐ誘導するのは、通常はゲームにとって不適切なエクスペリエンスです。
ストップウォッチでは、ストップウォッチを開始の音声コマンドを使用します。ユーザーが音声コマンドを呼び出すと、ストップウォッチは短いインタースティシャルの画面の直後に開始されます。これは、メニュー メニューを開始するよりも適しています。進行中のタスクでは、通常、妥当な場合にユーザーをできるだけ迅速に体験させることに重点を置く必要があります。
カード レイアウト
没入型カードとライブカードのどちらでも、可能であれば CardBuilder
または XML レイアウトを使用してください。
多くの場合、いずれにしても独自のレイアウトの作成が必要になるため、最適な UI を得るには Glass の UI ガイドラインを遵守する必要があります。
ストップウォッチは一般的なレイアウト ガイドラインに従いますが、ビューやレイアウトなどの標準の Android コンポーネントを使用するカスタム UI レイアウトがあります。
開発
ライブカードを開発するには、Android 開発用のツールと同じツールを使用して Glassware をビルドし、GDK アドオンの API を使用してライブカードや音声コマンドなどの Glass 固有の機能にアクセスします。
一般的な Android コンポーネントを使用して Glassware を作成することがよくありますが、概念によっては異なる場合もあります。たとえば、Android サービスでライブカードを表示、管理する場合、これは従来の Android アプリでサービスを使用する一般的な方法ではありません。別の例として、ライブカードに独自の UI コンテキストがない場合、ライブカードのメニューを表示するシェル アクティビティを使用する必要があります。これらのコンポーネントの構築方法については、このガイドの後半で説明します。
残りの「開発」セクションでは、ストップウォッチの構造と、以前にインポートしたプロジェクトの主要なコンポーネントについて説明します。Android Studio を稼働させておくと便利です。ソースコード自体にコメントしているため、このセクションでは各ファイルの大まかな目的と、自分の Glassware に適用できる便利なヒントについて説明します。
音声コマンド
XML リソース ファイルを使用して音声コマンドを作成するには、使用するコマンドを指定し、AndroidManifest.xml
ファイルで XML リソースを指定します。
次のファイルはストップウォッチの音声コマンドに関連付けられています。
res/xml/voice_trigger_start.xml
- 使用する音声コマンドを宣言します。AndroidManifest.xml
- 音声コマンドが発せられたときに開始されるライブカード サービスを宣言します。
カウントダウン ビュー
ストップウォッチでは、実際の時間が記録されるまでのカウントダウンを表示して、残り時間が経過していることをユーザーに知らせます。
カウントダウン ビューに関連付けられているファイルは次のとおりです。
res/layout/card_countdown.xml
- カウントダウン ビューアのレイアウトを定義します。src/com/google/android/glass/sample/stopwatch/CountDownView.java
- カウントダウンのビューを定義します。
クロノメーター表示
ストップウォッチのメインビューです。カウントダウン インタースティシャルが完了してからの経過時間が表示されます。次のファイルは、クロノメーター ビューに関連付けられています。
res/layout/card_chronometer.xml
- ストップウォッチ ビューのレイアウトを定義します。src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java
- ビューのレンダリング方法を定義します。ライブカード サービスは、このクラスを呼び出してライブカード サービスに描画します。src/com/google/android/glass/sample/stopwatch/ChronometerView.java
- 以前のレイアウトを UI として使用するストップウォッチ ビュー。
ストップウォッチサービス
ライブカードのライフサイクルとレンダリングを管理するサービスです。次のファイルがこのサービスに関連付けられています。
src/com/google/android/glass/sample/stopwatch/StopwatchService.java
- ストップウォッチ ライブカードを管理し、サービスのライフサイクルを処理します。
メニュー アクティビティ
ライブカードには、UI をタイムラインのコンテキストでレンダリングするため、独自の UI コンテキストはありません。
この制限を回避するには、タイムラインの上部に表示される半透明アクティビティを作成し、ライブカードがタップされた直後にそのアクティビティのメニューを表示します。
src/com/google/android/glass/sample/stopwatch/MenuActivity.java
- アクティビティが表示されているときにメニューを表示する半透明のメニュー アクティビティを宣言します。res/values/styles.xml
- メニューに適用する半透明スタイルを定義します。res/menu/stopwatch.xml
- 必須の [停止] メニュー項目を含むメニュー リソース。
Android マニフェスト
AndroidManifest.xml
ファイルは Glassware の主要なコンポーネントを記述しているので、その実行方法はシステムによって認識されます。Charades のマニフェストでは、次のものを宣言します。
- Glassware のアイコンと名前。複数の Glassware が同じ音声コマンドに応答すると、この情報がメインのタッチメニューに表示されます。
- ストップウォッチに関連付けられているすべてのサービスとアクティビティ。これは、システムが Glassware のコンポーネントを起動する方法を認識するために必要です。
- 音声コマンドと、音声コマンドが発話されたときにライブカード サービスを開始するインテント フィルタ。
- Glassware のバージョン コード。この APK の新しいバージョンが MyGlass にアップロードされるたびに、このコード(および通常はバージョン名)を更新する必要があります。