Опубликовано 10 апреля 2013
На фестивале SXSW, прошедшем в марте 2013 года в США, инженер Google Тимоти Джордан рассказал, как работают Google Glass и как разрабатывать приложения для них. И хотя прототипы очков пока что доступны лишь малому числу разработчиков и пользователей, знать, как они устроены, может оказаться очень полезным. Похоже, в Google сделали всё возможное, чтобы создать экзотический интерфейс очков удобным, а разработку приложений — лёгкой.
http://www.youtube.com/watch?v=JpWmGX55a40
Стоит учитывать, что до того, как очки начнут продаваться, кое-что ещё может измениться, но по речи Джордана уже можно составить достаточно полное впечатление. К тому же изменения, если и последуют, будут основаны как раз на пожеланиях разработчиков-первопроходцев.
Итак, как работают очки Google? Первое, что важно знать: они не блокируют зрение — человек по-прежнему видит всё, что происходит перед ним. Как и любой смартфон, очки по умолчанию вообще не отображают информации на экране. Если прикоснуться к тачскрину на дужке, на экране появятся часы и подсказка «ok glass».
Эту фразу нужно произнести, чтобы активировать очки. Проведя пальцем сверху вниз по тачпаду, можно заблокировать экран обратно. Произнеся приветствие, мы видим список доступных команд: «google, сделать фото, записать видео, проложить маршрут, послать сообщение».
Например, можно сказать: «Google, как сказать «спасибо» на японском?» — и система отправит голосовой запрос к поисковику. Когда ответ будет доставлен, пользователь увидит написание японского слова «спасибо» в оригинале и на английском, а также услышит это слово, произнесённое вслух.
Если провести пальцем вперёд по дужке очков, то можно последовательно листать между результатами всех предыдущих команд. Фотографии, видео, ответы поисковика и любые другие результаты действий или оповещения отображаются в виде отсортированных по времени карточек, к которым всегда можно вернуться.
Ткнув в дужку в тот момент, когда очки показывают карточку, мы вызываем контекстное меню. Его пункты тоже листаются при помощи тачпада. Например, для картинки меню будет состоять из команд «поделиться» и «удалить». Нажав «поделиться», можно следом выбрать, куда отправить картинку.
Существует также специальный тип карточек — с загнутым уголком наверху. Это на самом деле не карточки, а «связки» карточек (bundle), и каждую из них можно развернуть, чтобы увидеть дополнительное содержимое. Движение пальцем вниз по тачпаду всегда будет возвращать на предыдущий уровень меню.
Приложений, работающих непосредственно на компьютере, встроенном в Glass, в Google делать не разрешат. Вместо этого разработчикам предлагается создавать веб-сервисы, которые будут общаться с сервером компании, а тот, в свою очередь, будет обмениваться информацией с пользовательскими очками. Сервис отправляет карточки серверу Google, который отслеживает состояние очков и берёт на себя всю работу по синхронизации данных.
Для взаимодействия используется три технологии: запросы REST, протокол авторизации OAuth2 и формат данных JSON. Если вкратце, то REST позволяет работать с наборами данных: по HTTP у сервера либо запрашивается список элементов, либо посылается команда на удаление или добавление элемента. OAuth2 — это технология, которая позволяет разрешать сторонним сервисам делать что-то от имени пользователя. Подключение сервиса к Glass более или менее аналогично установке программы: пример такого взаимодействия можно видеть в Twitter, Facebook и во многих других сервисах, предоставляющих интерфейсы для сторонних приложений.
Каждая карточка может содержать текст, картинки, HTML или видео. Также разработчик может сделать карточку «связкой», содержащей другие карточки. К примеру, связка карточек со сводкой новостей будет отображаться в таймлайне как одна новость, но если выбрать её, можно узнать подробности или прочесть остальные актуальные заголовки.
По желанию разработчик может задать и пункты меню, прилагающегося к карточке. Например, если какой-то сервис прислал сообщение, то оно может быть сопровождено системными опциями «ответить» и «зачитать вслух», но автор сервиса может добавить и собственный пункт, задав для него текст и значок.