Quantcast
Channel: Статьи Intel Developer Zone
Viewing all articles
Browse latest Browse all 357

Создание приложений для Google Glass

$
0
0

Носимое устройство GoogleGlass (Рис. 1) – это оптический дисплей, предназначенный для ношения на голове. Производимый Foxconnи разработанный Google, Glassработает на базе Android 4.4xс двухъядерной SoC.

Рис 1. By Danlev (Собственнаяработа) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], Wikimedia Commons

В этой статье будут рассмотрены аспекты дизайна в разработке приложений для Glassи то, каким образом можно создавать гибридные приложения для устройства, используя MirrorAPIи GDK.

Дизайн

Факт: Glassимеет графический интерфейс в стиле timeline. Пролистывание в обратном направлении показывает актуальные события, к примеру, погоду. Пролистывание вперед демонстрирует входящие звонки, фотографии и пр. 

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

Рекомендации к приложениям таковы:

  1. Упор на контекст. Контекстуальные приложения предоставляют информацию, релевантную окружению пользователя, и требуют всего несколько секунд его внимания. К примеру, пользователь может быстро проверить, когда прилетает конкретный рейс прежде, чем отправиться в аэропорт.
    Дизайн: динамические карточки
    Они появляются в секции действующих событий и отображают максимально актуальную информацию.
  2. Мгновенные сводки. Приложения вроде новостных лент должны содержать только заголовки и появляться в форме мгновенных сводок вместо полноценных историй. Также разработчикам рекомендуется обеспечивать опцию голосового воспроизведения, чтобы пользователи могли прослушать контент целиком.
    Дизайн:статические карточки
    Они появляются в секции прошедших событий и могут быть просмотрены пользователем в любое время на его усмотрение.
  3. Не создавайте приложений, требующих от пользователя значительного объема вводимых данных. Большая часть информации должна быть доступна на расстоянии одного пролистывания. Включите в приложение несколько активных кнопок, оставив их максимально простыми, и дополните их функцией голосового контроля.

Создание гибридных приложений для Glass

Приложения для Glassобычно делят на 2 типа:

Mirror API поможет вам создать сервисы на базе веб, которые могут взаимодействовать с Glass. Значительная часть кода будет выполняться из облака, а не на самом устройстве. Googleпредоставила стартовые проекты MirrorAPI, чтобы помочь разработчикам увидеть разнообразные APIи конечные продукты до того, как приступить к написанию кода.

Glass Development Kit (GDK) – это дополнение к Android SDK, которое помогает создавать приложения, выполняемые непосредственно на Glass. GDK открывает доступ к сенсорам вроде акселерометра и GPS, доступным на устройстве, а также к камере.

Гибридными приложениями для Glassявляются те, что используют и MirrorAPIи GDK. Наше приложение для демонстрации кода является как раз гибридным. 

Пример кода

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

Googleпредоставляет проекты для быстрого старта в Java, Pythonи PHP. В этом примере мы будем использовать проект Java, который создает все файлы, необходимые для использования MirrorAPI. Добавьте свою логическую часть в файл Mainservlet.java.

Гибридное приложение

Это приложение сочетает использование камеры и MirrorAPI. Студенты используют камеру для снятия финального вида продукта. Поскольку MirrorAPIне имеет доступа к возможностям устройства, мы используем GDKдля создания Java-программы, которая и поможет нам сделать снимок. Давайте назовем этот пакет Chembuddyи поместим его в тот же пакет, что и проект MirrorAPI.

Chembuddy/MainActivity.java


	Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
	startActivityForResult(intent, 0);


Это схоже с Android-приложением, использующим CameraIntent.

Включите отрезок кода, представленный ниже, в ваш файл MainServlet.javaдля запуска кода GDK.


	//Communicating with GDK to invoke the native camera

	MenuItem item = new MenuItem();
	item.setId("takePicture");
	item.setAction("OPEN_URI");
	item.setPayload("glassware://com.example.chembuddy");

Функция setPayloadсодержит путь к файлу MainActivity.java, который отвечает за пуск камеры.

Установка опции голосового воспроизведения

Создайте элемент меню в карточке и установите действие READ_ALOUD.


	MenuItem item = new MenuItem();
	item.setId("readaloud");
	item.setAction("READ_ALOUD");

Укажите текст, который требуется воспроизвести, используя строковую переменную speakabletext.


	speakabletext = el.getElementsByTag("p").first().text();

Установите это значение в  timelineItem.


	timelineItem.setSpeakableText(speakabletext);


Следуйте по ссылке GitHubв секции ниже, чтобы увидеть полный исходный код.

Выводы

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

Ссылки

https://github.com/GayathriMurali/ChemBuddyGlassware

https://github.com/GayathriMurali/ChemBuddy

https://developers.google.com/glass/develop/overview


Viewing all articles
Browse latest Browse all 357

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>