|
|
|||||||||||||||||||||||||||||
|
Google glass с точки зрения разработчикаИсточник: habrahabr fo2rist
Недавно я получил доступ к долгожданным очкам Google Glass и начал писать для них свое приложение. О Glass я знал только то, что это - устройство на Android, к которому нужно подключиться через Android Debug Bridge и запускать свои программы. Это оказалось не так! Обзоров самих очков и их начинки уже хватает, я хочу немного рассказать, что представляют собой очки с точки зрения программиста, и как должна работать правильная программа для них. Все знают, что очки сопрягаются с телефоном пользователя по Bluetooth и получают от него интернет и GPS, и также, что через очки можно отвечать на звонки и отправлять SMS.
Чем не являются очки, и чего они не могут?- Очки не дополняют телефон и почти ничего о нем не знают, по факту они реализуют профиль BT гарнитуры и принимают звонок так же, как и любая другая гарнитура, очки даже не умеют показывать имя контакта (если конечно это не контакт самих очков, но об этом позже). Кстати, гарнитура из очков получилась не самая лучшая, все отмечают "эхо" в трубке и низкую громкость говорящего через очки.- Очки не принимают никаких (почти) данных с телефона, даже если поставить на них фирменную программу MyGlass (доступна только в США). - На очках нельзя запускать обычные андроид программы, кроме как через ADB. То есть нет возможности сказать "ok glass let's play doom" и получить игру.
Что же могут очки?- Они могут показывать ленту (timeline) из карточек. Лента "бесконечно" уходит в прошлое и содержит все совершенные действия (сделанный звонок, фото или заметку) и уведомления в хронологическом порядке.- Они могут иметь "контакты". Контакт в понимании очков это - либо человек (телефонный номер/email), либо приложение (glassware), которому можно расшарить обычные карточки. Как только пользователь выбирает действие Share над карточкой, ему показывают список доступных контактов которые можно скролить по одному. Судя по всему, именно поэтому очки не хранят в себе полный контакт лист, навигироваться по нему было бы невозможно.
Как с этим работать?Формально можно написать стандартное андроид приложение, залить его на очки через ADB и постить карточки, используя Timeline API напрямую, но у пользователя не будет никакого контроля над такой программой. Правильный вариант в понимании Google это - Mirror API (https://developers.google.com/glass/v1/reference/).Вы создаете веб-приложение, которое запрашивает доступ к очкам через OAuth, с этого момента вам разрешено постить карточки в таймлайн пользователя и создавать контакты. Кроме того, при наличии обратного адреса (именно поэтому нам нужно веб-приложение), можно подписаться на уведомления от очков (об этом позже).
Что могут карточки?- Карточка может быть простым текстом или предоставлять расширенный контент (html, картинки, видео, карты). Контент может быт длинным и разбитым на страницы (Paginating), или даже вложенным (Bundling), тогда вы просто группируете несколько похожих карточек в одну, и первая из них выступает обложкой. К картам можно прикладывать свои слои с маршрутом или интересными точками, API наложит слои и покажет в очках уже готовую картинку. Вот примеры карточек:
- Карточка может иметь меню действий. По умолчанию с карточкой нельзя сделать ничего, даже удалить не получится. Но создатель карточки (ваше приложение) может разрешить выполнять над ней ряд операций. Есть стандартный набор Reply, Delete, Share, Read aloud, Voice call, Navigate, Pin, Open URI, Play Video. Кроме того можно создать любой свой пункт меню. Вот меню уже будет генерировать уведомления для вашего приложения.
Какие доступны уведомления?- Уведомления о действиях над карточкой: когда пользователь что-то сделает (выберет любой пункт меню), вам придет уведомление с уникальным идентификатором карточки и описанием действия. Уведомления приходят на указанный ранее Respond URL, в виде POST запроса, на который надо ответить кодом 200.- Уведомления о перемещении очков: если подписаться на Location updates, то раз в 10 минут будет приходить уведомление о последнем известном местонахождении очков (вернее связанного телефона, т.к своего GPS очки не имеют). Кроме этого очки оснащены рядом сенсоров: тач-панелью, кнопкой камеры, датчиками поворота, ускорений и компасом ко всему этому можно получить доступ из нативных apk-приложений. Тач-панель не дает координат, а сообщает программе о жестах: свайп, тач, свайп и тач двумя пальцами. На этих жестах и на сигналах от датчиков можно строить взаимодействие в нативном приложении, например, встроенный браузер очков умеет перемещаться по странице, следуя за наклоном головы. Так что, даже если у вас еще нет очков, можно уже сейчас подумать над тем, чем имеющийся интерфейс мог бы быть полезен вашей программе. Ссылки по теме
|
|