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