進行中のタスクのパターン

このガイドでは、進行中のタスクをストップウォッチの形式で構成するコンポーネントについて説明します。進行中のタスクでは、ユーザーがタスクを実行している間、タイムラインにライブカードが表示され、ユーザーは情報を必要とするときにライブカード内外に移動できるようになります。

また、独自の Glassware の構築にとって重要なデザイン、開発、配布に関するヒントも学習します。

始める前に

ストップウォッチの完全なソースは GitHub で入手できます。このガイドで頻繁に参照しているため、始める前にこのコードを Android Studio にインポートします。

  1. [Quick Start] 画面で、[Check out from version Control] > [Git] をクリックします。
  2. ストップウォッチからクローンの URL をコピーします。
  3. クローンの URL を [Vcs リポジトリ URL] に貼り付け、[Clone] をクリックします。
  4. 次の画面で [Yes] をクリックします。
  5. 次の画面で [OK] をクリックします。
  6. プロジェクトをビルドして、[Play] ボタンをクリックして、接続された Glass で実行します。呼び出しの詳細については、サンプルの README を確認してください。

学習内容

Android SDK のコンポーネントを使用してストップウォッチの進行中のタスクの大部分を作成し、GDK を使用して Glass エクスペリエンスに接続する方法を学習します。学習するトピックは次のとおりです。

  • ライブカードに描画するカスタムビューを作成する
  • ライブカードを管理するサービスの作成
  • ユーザーがタイムラインからライブカードを削除できるメニューを提供する
  • メインの音声メニューからストップウォッチを開始する音声トリガーを宣言する

デザイン

開発を始める前に Glassware を設計しましょうこれにより、 Glass で最適に機能する UI フロー、使用する音声コマンド、 カードの外観について理解を深められます。

当然のことながら、Glassware の設計は反復的なプロセスであり、これから設計する作業の一部は変わりますが、優れたエクスペリエンスを構築するには、この作業の大部分を最初に完了しておくことが不可欠です。

UI フロー

UI フローの設計は簡単な演習で、コードを記述する前に Glassware を可視化できます。 私たちが作る Glassware のために、常にそうしています!

ストップウォッチの主な UI 要素について説明します。UI の仕組みや、独自の Glassware を作成するうえでこのプロセスがいかに役立つかを理解していただくためです。

メイン UI

ストップウォッチは非常にシンプルなエクスペリエンスであるため、メインフローは 1 つだけです。

ユーザーが Glassware を呼び出すと、実際のストップウォッチが始まる前に 3 秒間のカウントダウン インタースティシャルが表示されます。ストップウォッチは、ユーザーが [停止] メニュー項目でタイムラインから削除するまでカウントアップします。

音声コマンド

音声コマンドは、設計プロセスのかなり早い段階で特定する必要があります。音声コマンドを使用すると、ユーザーは必要に応じて、Glass Home(時計カード)の音声メニューから Glassware を起動できます。音声コマンドは、Glassware の設計方法の大部分を占めます。

たとえば、[Post an update] コマンドは、ユーザーがテキストを話しかけるとユーザーの介入なしに Glassware が処理するファイア アンド フォーゲット モデルで適切に機能します。これによりユーザーは 元の作業にすぐに戻ることができます

一方、ゲームをプレイするなどのアプリでは、ユーザーを最初に操作できるようにスプラッシュ画面を表示させるのが一般的です。この音声コマンドにより没入が開始される可能性が高いため、ゲームを開始するために追加の画面やメニューが表示されても問題ありません。音声コマンドの直後にユーザーをゲームの世界に引き込むことは、一般的にゲームにとって好ましくありません。

ストップウォッチでは、「ストップウォッチを開始」という音声コマンドを使用します。ユーザーが音声コマンドを呼び出すと、ストップウォッチは短いインタースティシャル カウントダウン画面の後、すぐに起動します。開始するためのメニュー項目を表示するよりも、ストップウォッチの使用をおすすめします。継続的なタスクについては、通常、妥当な場合に、できるだけ迅速にユーザーをエクスペリエンスに誘導することに重点を置きます。

カード レイアウト

没入型カードとライブカードのいずれを作成する場合でも、可能であれば CardBuilder レイアウトまたは XML レイアウトを使用してください。

多くの場合、独自のレイアウトの構築が必要になるため、Google の UI ガイドラインに沿って、最適な Glassware を作成します。

ストップウォッチは一般的なレイアウト ガイドラインに従っていますが、ビューやレイアウトなどの標準の Android コンポーネントを使用したカスタム UI レイアウトを備えています。

開発

ライブカードを開発するには、Android 開発で使用するのと同じツールを使用して Glassware の大部分を構築し、次に GDK アドオンの API を使用して、ライブカードや音声コマンドなどの Glass 固有の機能にアクセスします。

Glassware の作成には、一般的な Android コンポーネントを頻繁に使用しますが、一部の概念は異なる場合があることに注意してください。たとえば、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 の実行方法を理解させるため、Glassware の主要コンポーネントが記述されています。Charades のマニフェストでは、次のことを宣言します。

  • Glassware のアイコンと名前。複数の Glassware が同じ音声コマンドに反応する場合、この情報がメインのタップメニューに表示されます。
  • ストップウォッチに関連するすべてのサービスとアクティビティ。これは、システムが Glassware のコンポーネントの起動方法を認識するために必要です。
  • 音声コマンドと、音声コマンドが発話されたときにライブカード サービスを開始するインテント フィルタ。
  • Glassware のバージョン コードです。このコードは、この APK の新しいバージョンが MyGlass にアップロードされるたびに更新する必要があります(通常はバージョン名も更新する必要があります)。