Основы работы с приложениями

Первая волна на Googlebook с Notability и Logitech

Колонки

  • Эмили Робертс

    Инженер по связям с разработчиками

  • Райан Ши (Ryan Shea)

    Руководитель Android

  • Джо Ечжоу Ван (Joe Yezhou Wang)

    Менеджер по разработке в Logitech

О приложении

О выступлении

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

Разработчики Notability расскажут, как они создавали приложение для Android, не уступающее по функциональности компьютерным программам, с помощью Jetpack Compose. Узнайте, как они перешли с других платформ, ориентируясь на ПК. Затем представители Logitech расскажут об аппаратном обеспечении и о том, как они создают и настраивают периферийные устройства для бесшовной интеграции с Googlebook. Присоединяйтесь к сеансу, чтобы получить практические, реальные сведения об оптимизации ввода, использовании API для больших экранов и обеспечении удобства использования на разных устройствах и платформах.

Сводка

  • Jetpack Compose и Navigation 3 позволяют легко адаптировать макеты для разных устройств в зависимости от доступного размера окна, а не от типа устройства.
  • Для работы в режиме ПК требуется поддержка нескольких способов ввода, например клавиатуры и сенсорной панели. Функции вроде "Продолжить на" в Android 17 также позволяют пользователям передавать задачи между устройствами.
  • Jetpack Ink предоставляет разработчикам конвейер рисования с низкой задержкой без необходимости управлять пользовательскими потоками рендеринга или сложной передачей слоев.
  • Peripheral Customization API из белого списка позволяет разработчикам сопоставлять триггеры периферийного оборудования с действиями ОС, используя идентификаторы поставщиков и продуктов.

Gemini Notebook

Темы

  • googlebook
  • jetpack-compose
  • jetpack-ink
  • navigation-3
  • большие экраны
  • peripheral-customization
  • kotlin-multiplatform

Расшифровка

Введение в разработку для Googlebook

  • Здравствуйте! Меня зовут Эмили Робертс. Я специалист по связям с разработчиками и уже около девяти лет работаю с приложениями Android на ноутбуках.

  • И запуск Googlebook состоялся.

  • Ура!

  • Я очень рад, что мы привносим инновации в сферу ноутбуков.

  • И я очень рад быть на сцене с двумя разработчиками, которые действительно вложили средства в то, чтобы их приложения отлично выглядели на Googlebook.

  • Здравствуйте!

  • Меня зовут Райан, я представляю Notability.

  • Я менеджер по Android, и это приложение для цифровых заметок, которое мы только что запустили на Android.

  • Она также доступна на iOS, компьютерах и теперь в Google Книгах.

  • Здравствуйте!

  • Меня зовут Джо, я представляю компанию Logitech. Мы известны своим отличным оборудованием и периферийными устройствами.

  • и как мы перенесли их на новые платформы.

Разработка приложений Android для больших экранов

  • Я собираюсь их столкнуть.

  • И вот, Google Книги здесь.

  • Ура!

  • Ура!

  • Ура!

  • Надеюсь, вы уже успели их протестировать самостоятельно или на демонстрационном стенде этажом выше или ниже.

  • И не забудьте проверить, как ваше приложение выглядит на них.

  • Я собираюсь дать свою стандартную речь, которая заключается в том, что экосистема Android растет.

  • Я говорю это уже девять лет, и это по-прежнему так.

  • Приложения должны развиваться, чтобы удовлетворять потребности пользователей на всех этих экранах и устройствах.

  • Макет приложения, который хорошо работает и ведет себя, на данный момент является стандартной практикой.

  • И лучший способ сделать это – использовать Jetpack Compose и Navigation 3.

  • И ввод – это то же самое.

  • Она должна работать.

  • И, конечно же, архитектура ваших приложений и управление состоянием – это часть макета и входных данных.

  • На Android Developer Summit мы много говорили о том, как это сделать с помощью новейших инструментов и рекомендаций.

  • Однако сегодня мы решили уделить немного времени разработчикам, которые создавали приложения для Googlebook с самого начала, и послушать их истории.

  • Notability – это мощное приложение для ведения заметок, созданное специально для Googlebook.

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

  • Прости, что перебиваю, Джо, но мы ещё поговорим об этом подробнее.

  • Этого мне достаточно.

  • В этот раз без рэпа, извините.

  • И точно никакого фристайла.

  • Мы очень рады, что Notability теперь доступно на Chromebook. Передаю слово Райану.

  • Спасибо.

Notability на Android

  • Отлично!

  • Спасибо, Эм.

  • И мы очень рады, что теперь мы есть в Google Книгах.

  • Notability – это приложение, в котором миллионы студентов учатся, а профессионалы делают заметки.

  • Как я уже говорил, теперь она доступна на Android. Я расскажу, как мы ее создавали и как разработка для Android позволяет сразу же получить оптимальный результат.

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

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

  • Для этого мы использовали Material Design и компоненты, чтобы настроить все экраны с нуля.

  • И мы убедились, что мы живем на вершине Jetpack Compose.

  • Поскольку это нативное приложение для Android, полностью созданное на Jetpack Compose, мы можем поддерживать полный спектр оборудования: не только небольшие телефоны и устройства низкого класса, но и мощные планшеты высокого класса с большими экранами, компьютеры, XR, автомобили и все, что между ними.

  • Jetpack Compose позволяет легко поддерживать их нативно, без необходимости создавать множество дополнительных функций в пользовательских интерфейсах.

  • Теперь перейдем к Notability.

  • Все функции Notability созданы на основе Jetpack Compose.

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

  • Для этого мы разработали Navigation 3.

  • В Google встроенная функция Navigation 3 работает так, что в зависимости от размера экрана мы можем настраивать макет, не беспокоясь о том, как он будет представлен.

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

  • Если нет, то он появится в виде нижнего экрана.

  • Как это выглядит в коде?

  • В коде, который мы здесь видим, можно заметить, что есть одна точка входа для фактической сводной панели сбоку, и мы добавляем ее в обратный стек.

  • Затем наша стратегия пользовательских сцен выбирает макет для этой боковой панели в зависимости от того, есть ли место или нет.

  • На планшете или устройстве Googlebook она найдет доступное пространство, освободит место и просто сдвинет эту панель с правой стороны.

  • Однако на телефоне или складном устройстве может не хватить места для правильного отображения этой панели, поэтому вместо нее появится нижний экран.

  • Notability адаптируется к размеру окна, а не к типу устройства, будь то телефон, Chromebook, планшет или складное устройство. Поэтому наш интерфейс легко подстраивается под нужды пользователей.

  • На телефоне все кнопки и инструменты расположены так, чтобы до них было легко дотянуться большим пальцем.

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

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

  • И наконец, в Google Книгах теперь можно плавно менять размер окна.

  • Как и в любом другом оконном приложении на компьютере, Notability адаптируется к изменению размера окна, чтобы вы могли работать в режиме разделенного экрана.

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

  • Это поможет вам приблизиться к цели.

  • Но если вы хотите получить опыт работы на уровне настольного компьютера, что-то действительно необычное, мы рекомендуем сделать несколько вещей.

  • Во-первых, ориентируйтесь на клавиатуру.

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

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

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

  • Ещё одна вещь, о которой стоит задуматься, — это то, как взаимодействуют несколько разных устройств.

  • "Продолжить на другом устройстве" – это новая функция в Android 17, которая позволяет легко переносить приложение с одного устройства на другое.

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

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

  • Поэтому мы можем легко отправить намерение приложения на устройство Googlebook и продолжить работу с того места, где остановились.

  • Ещё один важный аспект, который нужно учитывать при разработке для устройств класса ПК, – это поддержка нескольких способов ввода.

  • Итак, у вас будут не только такие вещи, как сочетания клавиш, как упоминалось ранее, у вас будут сенсорные панели с различными типами масштабирования и прокрутки, чем у вас могли быть раньше.

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

  • Кроме того, поскольку многие устройства Googlebook по-прежнему являются устройствами с сенсорным экраном, вы должны убедиться, что когда пользователь взаимодействует с этим устройством, у вас есть другое распознавание ввода не только для стилуса и пальца, но и для курсора сенсорной панели, потому что ко всем трем следует относиться по-разному.

Рисование с низкой задержкой с помощью Jetpack Ink

  • Если вы хотите создать приложение для рукописных заметок, например Notability, рекомендуем использовать Jetpack Ink.

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

  • Но если сейчас все работает, я, благодаря Logitech, могу показать вам живую демонстрацию приложения Notability.

  • Да, отлично.

  • Так, ну-ка, давай.

  • Вот так, отлично.

  • Вот мой тест, который я создал ранее.

  • Но, как видите, я использую палец, поэтому он по-прежнему распознает ввод пальцем, и это здорово.

  • При желании я также могу использовать мышь.

  • Но сейчас мы смогли создать несколько специальных кистей, доступных только на Android.

  • Как видите, я выбрал эффект радуги и блесток, поэтому на наши эффекты ввода или чернил будет влиять библиотека Jetpack Ink.

  • Поэтому я напишу сообщение ещё раз.

  • Здравствуйте.

  • И, наконец, выберем зелёный цвет Android для последней части.

  • Трудно нажимать на экран.

  • Вот так, зеленый Android.

  • И затем мы видим, что фактические цвета меняются в зависимости от того, какой цвет у вас в качестве базовой модели.

  • Отлично.

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

  • Теперь, благодаря Jetpack Ink, это может занять меньше недели с помощью ИИ и их специального конструктора кистей.

  • Так что, если вы ищете любой тип чернил, дайте знать, вы знаете, дайте им знать.

  • Это отличный API, который сэкономил нам много времени.

  • Отлично.

  • И вот, как я упоминал ранее, как это выглядит.

  • У нас есть так называемый слой влажных чернил.

  • Это наши чернила, которые находятся в процессе, все ещё рисуются, должны быть супер, супер отзывчивыми, вы знаете, по сравнению со слоем сухих чернил.

  • Это имеет смысл с точки зрения физического объекта, вы можете подумать об этом.

  • Это сохраненные чернила, уже готовые.

  • Раньше передача полностью лежала на нас.

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

  • И в самом конце мы должны были применить то, что является уникальностью Notability, верно?

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

  • Это была старая модель.

  • Благодаря Jetpack Ink нам нужно только передать аппроксимацию кривой в представление фигур прогресса, и все сразу же заработает на Android.

  • Ещё одна вещь, о которой мы думаем, когда обсуждаем Jetpack Ink и другие библиотеки Google, – это KMP.

  • Мы начали с того, что посмотрели на уже написанный код для iOS и подумали: "Хорошо, мы бы хотели использовать часть логики и в Android, и в iOS.

  • У нас есть модели, у нас есть изменения, у нас есть сложная математика.

  • Это логично".

  • И мы подумали: "Эй, C++, вы знаете, Objective-C от Apple, давайте пойдем по этому пути".

  • Оказалось, что Kotlin Multiplatform не только проще в реализации для наших iOS-инженеров, но и быстрее.

  • Таким образом, мы не только повысили производительность благодаря Kotlin и смогли скопировать большую часть кода Android, но и упростили работу с iOS в долгосрочной перспективе.

  • Поэтому, если вы хотите использовать общий код, я рекомендую обратить внимание на Kotlin Multiplatform.

  • В настоящее время мы все ещё рассматриваем его.

  • Пока что это не поддерживается на 100 %, потому что разные модели ИИ упрощают мошенничество, когда код находится в нескольких местах. Но мы активно изучаем этот вопрос, и я считаю, что это очень хорошая идея.

  • А теперь о том, что есть только в Notability.

  • Если вы когда-нибудь попробуете создать работающий текстовый редактор на Android, то заметите, что сейчас нет хорошего способа создать редактор для больших документов.

  • Базовые поля ввода в Android – это небольшие элементы интерфейса, такие как EditText.

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

  • И мы нашли способ сделать это. По сути, наши нажатия клавиш идут двумя путями.

  • Итак, первый путь – это, эй, это наше лучшее усилие, этот ключ должен появиться, вы знаете, здесь.

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

  • А потом мы быстро синхронизируемся, верно?

  • Мы заходим в бэкенд, проверяем наших партнеров, спрашиваем: "Эй, все хорошо?

  • Does this make sense?

  • Все в порядке?"

  • И если что-то нужно изменить, он перенастраивается в этот момент.

  • Если два пользователя будут одновременно вводить текст в одной строке, то получится неразбериха.

  • Но в большинстве случаев это работает очень хорошо.

  • Я упоминаю об этом, потому что мы проделали огромную работу и рассматриваем возможность сделать этот инструмент ПО с открытым исходным кодом.

  • Если кто-то из присутствующих на конференции или смотрящих ее онлайн захочет поработать над этим и сочтет это хорошей идеей, дайте нам знать.

  • Мы сомневаемся, стоит ли вкладывать в это силы, но, знаете, мы проделали огромную работу и очень гордимся результатами.

  • Хорошо, а вот как работают чернила.

  • Итак, с точки зрения модели сотрудничества, это немного более прямое, как это работает с нашей стороны.

  • Как видите, здесь три шага.

  • Есть касание, когда мы говорим: "Эй, кстати, мы начинаем событие рисования" любому из наших подключенных устройств, в данном случае это iPad.

  • Затем идет сам рисунок, который может состоять из одного или миллионов штрихов, в зависимости от того, как долго пользователь рисует.

  • Надеюсь, не слишком долго.

  • Думаю, что в какой-то момент лимит будет достигнут, но для обычных случаев использования этого вполне достаточно.

  • А затем происходит событие подъема.

  • Чтобы решить эту проблему, мы используем временный объект в нашей модели.

  • Это значит, что на iPad мы говорим: "Хорошо, у нас есть штрих, который поступает, но он ещё не здесь.

  • Мы не можем взаимодействовать с ним.

  • Они недолговечны".

  • И только после того, как это событие завершения запускается, мы фактически заходим и говорим: "Хорошо, круто.

  • Теперь замените все это одним объектом, который iOS или любые другие клиенты могут просто взять и взаимодействовать с ним".

  • И это также то, с чем мы немного играем с открытым исходным кодом.

  • Это, знаете ли, не наши прямые чернила, а некоторые переходные вещи, особенно в текстовом слое.

  • Отлично.

  • И потом, да.

  • Вот ещё несколько рекомендаций.

  • ИИ на устройстве – это здорово.

  • Мы используем его для сканирования документов, поэтому вы можете сканировать документы, анализировать PDF-тексты, распознавать рукописный ввод.

  • Мы также используем открытые облачные ИИ-модели, такие как Gemini, чтобы генерировать умные заметки. Заметки пользователей классифицируются, обобщаются и затем возвращаются им в более удобном и интерактивном виде для модели обучения.

  • И все это вместе действительно делает Notability похожим на приложение для ноутбука, верно?

  • Это и есть конечная цель.

  • У нас есть все эти интересные модели, разные вещи, текст, входные данные, но главное – ощущается ли это как приложение для ноутбука или как будто вы открыли приложение для телефона на большом экране и возитесь с ним?

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

  • Но, как я уже говорил, Jetpack Compose, Navigation 3, Material Design – все это охватывает.

  • Так что, если вы все делаете правильно, это не так уж и сложно.

  • Добраться сюда довольно просто.

  • Вот так.

  • Это наши основные выводы.

  • Когда вы думаете о будущем Android, не думайте об устройствах.

  • Я бы не стал думать о том, что это телефон, складное устройство, XR-устройство, настольный компьютер или ноутбук, планшет, автомобиль или телевизор.

  • Вместо этого нужно задать себе вопрос: "Какой размер экрана доступен мне и какие модальные окна ввода доступны моим пользователям?"

  • и обеспечить наилучший опыт для тех, кто идет вперед.

  • Как я уже упоминал на предыдущем слайде, Compose и Nav 3 действительно упрощают поддержку всего этого.

  • Google каждый день выпускает новые мощные API, такие как Jetpack Ink или Gemini на устройстве, и другие инструменты, которые помогают создавать основные функции и сосредоточиться на том, что делает ваше приложение уникальным.

  • Окей.

  • Так что да.

  • Большое спасибо.

  • Вот и всё, что я хотел сказать.

  • Если у вас возникнут вопросы, вы можете обратиться ко мне или к Notability.

  • Приложение появилось на Android всего два месяца назад.

  • Наконец-то мы вышли из бета-версии.

  • Так что не стесняйтесь попробовать.

  • Отправьте нам отзыв.

  • Она также доступна в Google Книгах.

  • А теперь я передаю слово Джо из Logitech.

  • Спасибо!

Logitech Options+ на Googlebook

  • Теперь

  • Спасибо, Райан.

  • Сегодня. Хорошо, извините.

  • Давайте добавим слайд.

  • Спасибо, Райан.

  • Сегодня я расскажу, как мы перенесли Options+ – приложение для настройки периферийных устройств – на Chromebook.

  • И что значит создать периферийный опыт?

  • Я расскажу о том, что мы создали, о некоторых технических особенностях, о том, что у нас получилось, и о том, что мы планируем делать дальше.

  • Устройства Logitech и раньше работали с Android, и большинство пользователей отмечали, что периферийные устройства повышают доступность, особенно при использовании ноутбуков премиум-класса и телефонов, подключенных к внешним мониторам.

  • Кстати, на стенде Googlebook я видел, как к столу подключили последовательную коробку передач Logitech и с ее помощью переключали экраны на планшете.

  • Пожалуйста.

  • Это один из способов его использования.

  • Кстати, Ferrari пришлось взять дополнительные 50 000 евро за их секвентальную… Впрочем, неважно.

  • Да.

  • Как уже подробно рассказал Райан, на Googlebook у нас гораздо больше места для работы.

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

  • Вы можете продолжать работать, использовать разные приложения, переключаться между задачами и так далее.

  • И это, безусловно, изменило дизайн приложений, и макеты должны оставаться полезными на протяжении всех процедур.

  • Для нас, Logitech, это особенно интересно, потому что мы компания с большим опытом работы с периферийными устройствами, верно?

  • У нас есть очень прочная основа для этой работы.

  • Итак, с нашей точки зрения, для такой рабочей среды мышь или клавиатура — это то, как наш пользователь взаимодействует в течение рабочего дня.

  • Они могут очень плавно войти в свой рабочий процесс.

  • И я думаю, что не будет преувеличением сказать, что Logitech привносит в эту работу многолетний опыт.

  • В начале этого месяца мы отметили 45-летие.

  • И мы, я думаю, с тех пор, как начали производить мыши, со второго дня, второго года существования Logitech.

  • Поэтому, имея такой опыт, мы уверены, что сможем занять эту нишу.

  • Кроме того, у нас есть большой опыт работы с ChromeOS.

  • Раньше мы гарантировали полную совместимость с ChromeOS.

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

  • Простой пример: пользователь нажимает кнопку и видит предсказуемый результат.

  • Это то, что вы все принимаете как должное.

  • Но на самом деле они требуют бесшовной совместимости компонентов.

  • Кроме того, всем нравится совместимость с периферийными устройствами.

  • Например, настроить чувствительность.

  • 65, не больше и не меньше.

  • Поэтому все эти вещи требуют очень хорошей бесшовной интеграции совместимости между всеми этими тремя вещами.

  • Теперь, с запуском Googlebooks, мы поставляем Options+ для Googlebooks.

  • Сейчас мы поддерживаем ряд мышей и клавиатур, и их список будет расширяться.

  • Здесь же пользователи могут настраивать свои устройства.

  • И, как я уже говорил, чувствительность и все такое.

  • А теперь начинается самое интересное.

  • Когда мы говорим о настраиваемости, мы имеем в виду две стороны.

  • С одной стороны, это аппаратное обеспечение и встроенное ПО, в котором реализованы функции.

  • Другая сторона – это ключевой момент этой демонстрации и презентации, а именно ОС.

  • Думаю, все здесь знают, что раньше на устройствах Android большинство приложений работало в собственной изолированной среде, пользовательском пространстве.

  • Существуют определенные ограничения на то, что вы можете делать, и во многих случаях на то, что вы не можете делать и чего хотите.

  • Для нас это очень важно.

  • Вот скриншот. Позже мы покажем демоверсию, а пока посмотрите на скриншот.

  • У нас есть мышь MX Master 4, и у нее много функций.

  • А для людей, которые знают мир периферийных устройств, вы можете распознать определенные функции, которые в значительной степени реализованы в функциях встроенного ПО, функциях устройства.

  • а некоторые – нет.

  • Мы стараемся дать пользователям возможность настраивать обе стороны.

  • Наша задача – сделать эти настройки понятными, предоставить пользователям все возможности и правильно настроить их для ОС и встроенного ПО.

  • А теперь давайте посмотрим, как это работает.

  • О, это была очень впечатляющая демонстрация.

  • Но в следующий раз, Райан, используй мышь.

Демонстрация Options+

  • Хорошо, поехали.

  • Вот экран моего устройства.

  • Как видите, у меня подключена мышь MX Master 4.

  • Давайте начнем.

  • Мы сразу перейдем к экрану конфигурации, который вы видели ранее. Здесь и происходит волшебство.

  • Сначала назначим функцию "Обвести и найти" на боковую кнопку.

  • Затем добавим волшебный указатель на кнопку функции.

  • Итак, начнем.

  • Откройте браузер.

  • Приезжайте.

  • Я нажимаю боковую кнопку, которой только что назначил функцию "Обвести и найти".

  • Как видите, я обвожу клавиатуру.

  • Готово!

  • Google просто показывает информацию об этой клавиатуре.

  • Это очень удобно и просто.

  • Теперь попробуем кое-что другое.

  • Ой, извините.

  • Давайте вернемся назад.

  • Попробуйте волшебный указатель.

  • Давайте переключим этот параметр.

  • Я могу нажать кнопку функции, отметить это и спросить: "Что это за устройство?"

  • Вот и все.

  • Google начнет поиск и покажет результаты.

  • Так что, прелесть этого в том, что вы интегрируете весь рабочий процесс в одну операцию.

  • Вы назначаете функции, нажимаете, обводите, кликаете, и готово.

  • Мы считаем, что это значительно улучшит доступность и удобство работы для пользователей.

  • Теперь вернемся к слайдам.

Обзор API для настройки периферийных устройств

  • Вы можете спросить, что заставило это произойти.

  • Потому что многие вещи в прошлом просто не могли быть сделаны приложениями.

  • Вот он, Peripheral Customization API, который доступен как на Chromebook, так и на устройствах Android.

  • Однако вот примечания от Google.

  • В настоящее время этот API доступен только пользователям из белого списка.

  • But it is planned to release along with Android updates to '26 Q4, which is this quarter.

  • Поэтому, как только она будет выпущена, я думаю, что разработчики по всему миру смогут ее использовать.

  • Теперь давайте немного углубимся в техническую сторону.

  • Вся эта система состоит из трех основных компонентов: устройства, триггера (это может быть клавиша или кнопка) и действия, которое выполняется на стороне ОС приложения.

  • Давайте рассмотрим этот фрагмент кода.

  • В самом верху мы определяем устройство, используя его идентификатор производителя и идентификатор продукта.

    // Vendor and product Information
    const val VENDOR_ID = 1234
    val pid = 123
    
    // Use the mouse Middle Button as the trigger
    val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
    
    // Set Voice Assistant as the action
    val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
    actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
    val action = actionBuilder.build()
    
    val im = context.getSystemService(INPUT_SERVICE) as InputManager
    im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)
  • Обычно мы называем их VID и PID.

  • Ниже мы начинаем определять триггер.

  • Как видите, в качестве триггера мы хотим использовать среднюю кнопку.

  • И здесь мы хотим сопоставить эту среднюю кнопку с функцией ОС «Голосовой помощник».

  • Все верно?

  • У нас есть actionBuilder прямо здесь из AppCustomizationAction и здесь.

  • Затем мы регистрируем это сопоставление между продуктом, устройством, триггером и действием.

  • Конечно, реальный код немного сложнее, но общая концепция такова.

  • Очень простой и удобный в использовании.

  • А теперь ещё одна очень интересная функция.

  • Я добавил сюда GIF-файл, чтобы всем было проще увидеть.

  • То есть, когда вы подключаете совместимое и поддерживаемое устройство, в данном случае мышь Logitech Mobifold, ОС отправляет стандартное уведомление о том, что у вас есть приложение для этого устройства.

  • Скажите пользователю: "Конечно".

  • Нажав на нее, вы перейдете в Google Play, где сможете установить приложение.

  • Это называется обнаружением устройств для быстрого подключения.

  • Теперь перейдем к интерфейсу.

  • Райан уже рассказал о многих интересных вещах, связанных с Googlebook, и о том, как вы создаете интерфейс, поэтому я буду говорить довольно быстро.

  • Как видите, Options+ работает на разных платформах: Windows, Mac, а теперь и на Chromebook.

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

  • Это означает, что мы хотим воспользоваться преимуществами этих конкретных платформ, но в то же время использовать одну и ту же систему дизайна.

  • Как видите, у нас единая система дизайна.

  • Как мы уже говорили, пользователи Googlebook обычно используют его как ноутбук или настольный компьютер.

  • Поэтому, конечно, наше приложение, даже на Googlebook, выглядит как компьютерное приложение.

  • Поэтому само приложение может вести себя как компьютерное приложение и хорошо работает с разными размерами окон, разными касаниями и, конечно же, вы можете управлять им с помощью мыши и клавиатуры.

Планы на будущее и заключение

  • Вот и вся история о периферийных устройствах Logitech и приложении Options+ на Googlebook.

  • И это отлично работает.

  • Однако это только начало.

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

  • И, конечно, самое главное – мы планируем и дальше сотрудничать с Google и глубже интегрировать наши продукты в новые платформы.

  • Наша конечная цель – сделать настройку периферийных устройств максимально естественной частью работы с Googlebook и помочь людям работать так, как они хотят.

  • Оки-доки.

  • Обязательно загляните на наши стенды внизу и попробуйте Options+ и фантастические устройства Logitech.

  • Спасибо Google за сотрудничество и всем вам за внимание.

  • Большое спасибо.

Код

Фрагменты кода

Фрагмент кода на Kotlin в видео "Обзор API для настройки периферийных устройств"
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123

// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)

// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()

val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)