Шаблон текущей задачи

В этом руководстве описываются компоненты, составляющие текущую задачу в виде секундомера. Текущая задача отображает живую карточку на временной шкале, пока пользователь занят задачей, и позволяет им переходить в живую карточку и выходить из нее, когда им нужна информация.

Попутно вы также узнаете советы по дизайну, разработке и распространению, которые важны для создания собственной посуды Glassware.

Прежде чем вы начнете

Полный исходный код секундомера доступен на Github. Прежде чем начать, импортируйте его в Android Studio, потому что в этом руководстве он часто упоминается.

  1. На экране «Быстрый запуск» нажмите «Извлечь из системы управления версиями» > «Git» .
  2. Скопируйте URL-адрес клона из секундомера .
  3. Вставьте URL-адрес клона в URL-адрес репозитория Vcs и нажмите «Клонировать» .
  4. Нажмите Да на следующем экране.
  5. Нажмите OK на следующем экране.
  6. Создайте проект и запустите его на подключенном устройстве Glass, нажав кнопку «Воспроизвести» . Обязательно ознакомьтесь с README примера для получения подробной информации о вызове.

Что вы узнаете

Вы узнаете, как использовать компоненты из Android SDK для создания основной части текущей задачи секундомера, а затем GDK для подключения к Glass. Вот список тем, о которых вы узнаете:

  • Создание пользовательского представления для рисования на живой карте
  • Создание сервиса для управления живой картой
  • Предоставление меню, которое позволяет пользователям удалять живую карту с временной шкалы.
  • Объявление голосового триггера для запуска секундомера из главного голосового меню

Дизайн

Прежде чем приступить к разработке, найдите время и спроектируйте свою стеклянную посуду. Это дает вам хорошее представление о том, какие потоки пользовательского интерфейса лучше всего работают на Glass, какую голосовую команду вы будете использовать и как будут выглядеть ваши карты.

Конечно, проектирование Glassware — это итеративный процесс, и некоторые вещи, которые вы проектируете сейчас, изменятся, но хорошая часть этой работы, выполненная в начале, имеет решающее значение для создания отличного опыта.

поток пользовательского интерфейса

Проектирование потока пользовательского интерфейса — это простое упражнение, которое позволяет визуализировать Glassware перед написанием строки кода. Мы делаем это все время для стеклянной посуды, которую мы производим!

Давайте рассмотрим основные элементы пользовательского интерфейса секундомера, чтобы вы получили представление о том, как работает пользовательский интерфейс и насколько полезным может быть этот процесс при создании собственного Glassware.

Основной интерфейс

Секундомер содержит только один основной поток, потому что это довольно простой опыт.

Когда пользователи запускают Glassware, им предоставляется 3-секундный промежуточный отсчет до начала фактического секундомера. Затем секундомер считает до тех пор, пока пользователь не удалит его с временной шкалы с помощью пункта меню «Стоп» .

Голосовая команда

Вы должны определить голосовую команду довольно рано в процессе проектирования. Голосовые команды позволяют пользователям запускать Glassware из голосового меню Glass Home (карта часов), если это необходимо, и являются важной частью того, как вы проектируете Glassware.

Например, команда «Опубликовать обновление» хорошо работает в модели «выстрелил и забыл», когда пользователи произносят текст, а Glassware обрабатывает его без какого-либо дальнейшего вмешательства пользователя. Это позволяет пользователям быстро вернуться к тому, что они делают.

С другой стороны, для чего-то вроде Play a game вы обычно хотите, чтобы пользователи появлялись на экране-заставке, чтобы они могли сначала сориентироваться. Поскольку эта голосовая команда, скорее всего, запускает эффект погружения, вы можете ожидать, что пользователи не будут против видеть дополнительные экраны и меню для запуска игры. Сразу бросать пользователей в игровой процесс сразу после голосовой команды, как правило, плохой опыт для игр.

Секундомер использует голосовую команду «Запустить секундомер» . После того, как пользователи вызовут голосовую команду, секундомер сразу же запустится после короткого промежуточного экрана обратного отсчета, что лучше, чем предоставление пункта меню для запуска. Для текущих задач вы, как правило, хотите сосредоточиться на том, чтобы пользователи как можно быстрее освоились там, где это имеет смысл.

Раскладки карт

Независимо от того, создаете ли вы иммерсивные или живые карты, по возможности следует использовать макеты CardBuilder или XML.

Часто вам все равно нужно будет создать свой собственный макет, поэтому следуйте нашим рекомендациям по пользовательскому интерфейсу , чтобы иметь самое красивое стекло.

Секундомер следует общим рекомендациям по макету, но имеет настраиваемые макеты пользовательского интерфейса с использованием стандартных компонентов Android, таких как представления и макеты.

Развивать

Для разработки живых карт вы используете те же инструменты, которые вы использовали бы для разработки Android для создания основной части Glassware, а затем используете API-интерфейсы в надстройке GDK для доступа к функциям, специфичным для Glass, таким как живые карты и голосовые команды.

Вы будете часто использовать общие компоненты Android для создания Glassware, но имейте в виду, что некоторые концепции иногда отличаются. Например, вы визуализируете живые карты и управляете ими с помощью службы Android, что не является типичным способом использования служб в традиционных приложениях Android. Другой пример: живые карты не имеют собственного контекста пользовательского интерфейса, поэтому вам нужно использовать действие оболочки, которое отображает меню для живой карты. Далее в этом руководстве вы узнаете, как создаются эти компоненты.

В остальных разделах «Разработка» рассматривается структура секундомера и основные компоненты проекта, которые вы импортировали ранее. Полезно иметь Android Studio сейчас, чтобы вы могли следовать за ней. Сам исходный код прокомментирован, поэтому в этом разделе рассматривается общее назначение каждого файла и полезные советы, которые вы можете применить к своему собственному Glassware.

Голосовая команда

Вы создаете голосовые команды с файлом ресурсов XML, в котором указывается используемая команда, а затем указываете ресурс XML в файле AndroidManifest.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 — представление секундомера, в котором в качестве пользовательского интерфейса используется предыдущий макет.

Секундомер

Это служба, которая управляет жизненным циклом и рендерингом живой карты. Следующие файлы связаны с этой службой:

  • src/com/google/android/glass/sample/stopwatch/StopwatchService.java — управляет картой секундомера в реальном времени и управляет жизненным циклом службы.

Живые карты не имеют собственного контекста пользовательского интерфейса для отображения меню, поскольку они отображают свои пользовательские интерфейсы в контексте временной шкалы.

Чтобы обойти это ограничение, вы создаете полупрозрачное действие, которое появляется поверх временной шкалы, а затем отображаете меню этого действия сразу после того, как пользователи нажимают на живую карточку.

  • src/com/google/android/glass/sample/stopwatch/MenuActivity.java — объявляет активность полупрозрачного меню, которая немедленно показывает меню, когда активность видна.
  • res/values/styles.xml — определяет полупрозрачный стиль, применяемый к меню.
  • res/menu/stopwatch.xml — ресурс меню, содержащий обязательный пункт меню «Стоп» .

Манифест Android

Файл AndroidManifest.xml описывает основные компоненты вашего Glassware, чтобы система знала, как его запускать. Манифест для Charades объявляет следующие вещи:

  • Значок и название стеклянной посуды. Glass отображает эту информацию в главном сенсорном меню, если несколько устройств Glassware отвечают на одну и ту же голосовую команду.
  • Все услуги и действия, связанные с секундомером. Это необходимо для того, чтобы система знала, как запускать компоненты Glassware.
  • Голосовая команда и фильтр намерений, который запускает службу живой карты при произнесении голосовой команды.
  • Код версии для Glassware. Этот код необходимо обновлять (как правило, и название версии) каждый раз, когда новая версия этого APK загружается в MyGlass.