Всем привет! Меня зовут Мялкин Максим, я лид мобильной команды в KTS. Сейчас проходит Google IO 2024, и мы с ребятами в команде решили выпустить обзор треков, которые нам показались интересными. Мы сконцентрируемся на Android-направлении. На основном keynote все внимание было уделено развитию AI, также это коснулось и части разработки.
В этой статье мы посмотрим что нам рассказали на developer keynote, а в следующих подробно погрузимся в технические треки.
Оглавление
Введение
Миссия Google — дать с помощью AI возможность быть более продуктивным, повышать свой уровень разработки и давать вдохновение для того, что делают разработчики.
AI можно использовать для понимания кода, написания, отладки, тестирования, генерации документации. Это делают все разработчики.
Поэтому Gemini доступна во многих платформах для всех разработчиков.
Android Studio
Chrome DevTools
VSCode
IntelliJ
Firebase
Gemini становится более полезной с информацией (контекстом) о настройках приложения, информации о производительности, логами приложения и исходном коде.
Сейчас разработчики используют устройства в разных ситуациях. А значит у них должна быть возможность создавать сервисы в любых ситуациях. Это становится возможным с помощью AI.
Разработчики становятся создателями контента, а сам код этим контентом. И создавать контент помогает AI с помощью экосистемы, которая объединяет сервисы Google с опенсорсными решениями.
Это помогает разработчикам быть сфокусированным на том, что они создают, а не как создают.
Gemini API & Google AI studio
С помощью API для AI можно создавать приложения нового уровня. Начиная от работы с видео и аудио и заканчивая чем-то более сложным с учетом большого окна контекста.
При выборе AI модели для ваших нужд необходимо соблюдать баланс между:
качеством
скоростью
стоимостью
Поэтому уже сейчас доступен Gemini Flash, который удовлетворяет требуемому балансу. Он доступен в инструменте Google AI studio и его можно использовать по всему миру.
В настоящее время только выбрать подходящую модель недостаточно. Также необходимо разобраться как воплотить ваши идеи в жизнь с помощью этой модели.
Это можно сделать с помощью Google AI studio с учетом контекста AI модели размером в 2M токенов.
Пример генерации блог-поста из голосового сообщения
Представим что у нас есть голосовые записи и необходимо сгенерировать пост для соцсетей по ним. Кроме этого необходимо учитывать инструкции по написанию постов, а также манеру письма из предыдущих блог-постов.
Gemini берет контекст предыдущих записей, инструкций, голосовых записей
Gemini flash сгенерировала блог пост
Если вы не знаете как начать использовать Gemini API, то уже есть набор кукбуков.
Размер окна контекста AI-модели растет, это позволяет создавать приложения другого уровня, чем ранее.
Но это же и делает систему более требовательной к вычислительным ресурсам, что увеличивает стоимость операций.
Поэтому вводится кеширование контекста.
Context caching
Кеширование позволяет снизить стоимость работы с большим контекстом
Как работает кеширование
Первый раз вы генерируете контент, создается общий контекст
За его генерацию и потребление ресурсов вы заплатите X (например 0.20$)
Этот контекст сохраняется в кеш
При последующих генерациях вы переиспользуете контекст из кеша
Это позволяет сэкономить стоимость (например до 0.10$)
Кеширование может применяться во многих направлениях: документы, статьи, база знаний, материалы для обучения.
Механизм кеширования будет доступен в июне.
Примеры приложений, которые уже использую Gemini
Locofy (создание верстки из Figma)
Сервис позволяет упростить создание веб-верстки.
Позволяет взять дизайн из фигмы и превратить его в код.
Но в фигме есть пробемы: часто в дизайне встречаются бессмысленные названия, что само по себе может сделать код нечитаемым.
Gemini позволяет понять смысл контента в фигме и сгенерировать верстку в понятном для разработки и поддержки виде.
Envision (упрощение понимания содержания приложения)
Сервис позволяет пользователям с нарушением зрения лучше понять содержание приложения. C помощью Gemini flash достигается быстрый отклик для использования в реалтайме.
Zapier (автоматическое редактирование аудиозаписи)
Zapier внедрили workflow для упрощения процесса редактирования аудиозаписей (например для подкастов).
Теперь при загрузке аудиофайла Gemini автоматически вырезает все остановки и запинания при разговоре.
Как мы видим, разработчики могут с помощью своих идей и кода внедрять AI в практические сферы.
Поэтому гугл создает соревнование по использованию Gemini API.
Как AI помогает в Android
C AI в ядре Android теперь возможно создание приложений которые были невозможны несколько лет назад.
С помощью Google AI studio можно интегрировать Gemini API в ваше приложение. Если вы используете Google cloud то использовать Gemini можно через Vertex AI.
Gemini nano
Самая производительная модель для работы на устройстве
Генерирует ответы с низкой задержкой
Соблюдает конфиденциальность данных
Работает без интернета
Может быть использована в например качестве подсказок при написании текста.
Gemini nano стала возможной благодаря системе AICore — системного сервиса, отвечающего за управление AI моделями на устройстве. Таким образом разработчикам не нужно больше упаковывать и распространять модели.
Nano и AICore уже доступны на Pixel 8 Pro и Samsung S24 и позже в этом году распространятся на дополнительные устройства.
Хотя Gemini nano является оптимальной для работы на устройствах, гугл понимает, что нужно давать разработчикам возможность работы с другими языковыми моделями. Поэтому был создал MediaPipe LLM.
Пока гугл работает с несколькими ранними адоптерами Gemini Nano, но в ближайшие месяцы доступ расширится на большее количество разработчиков.
Кейсы использования Gemini nano
Patreon (выжимка содержимого из чата)
Сделали возможность быстро прочитать выжимку из пропущенных сообщений
Grammarly (умные подсказки)
Сделали умные подсказки по улучшению написанного текста
Developer productivity
KMP
Теперь гугл официально поддерживает KMP
Уже поддержаны DataStore и Room и последующие библиотеки будут переводиться на KMP.
Команда Google Workspace продолжает инвестировать в переиспользование логики с KMP.
Сейчас в приложении Google Docs переиспользуется бизнес-логика между Android, iOS, web.
Кстати от Google workspace уже был доклад про это.
Google вместе с JB и Kotlin community коллаборируются, чтобы всем разработчикам были доступны преимущества шаринга бизнес логики в KMP. Это позволит повысить производительность разработки.
Compose
Что же касается UI — Compose помогает создавать приложения с отличным UX. 40% приложений из топ 1000 популярных уже отметили преимущества, которые им дает Compose
Гугл продолжает улучшать Compose. В том числе производительность Compose улучшается с каждым релизом.
При использовании baselines и r8 можно существенно повысить производительность приложения.
Shared element transitions
В Compose добавили простую и мощную систему для настройки Shared element transition. Она поддерживает изменения размеров элементов, изменения текста и работает с механизмом predictive back из коробки.
Адаптивный UI
Адаптация UI к разным форм факторам и размерам устройств повышает вовлеченность пользователей.
Нам же как разработчикам не хочется думать о большом количестве формфакторов и их поддержке, хочется написать код 1 раз, который будет адаптировать UI сразу на все возможные размеры экранов.
Для этого добавили набор Compose API для построения адаптивного UI по гайдлайнам material.
Это должно снизить время разработки.
Поделитесь в комментариях, адаптируете ли вы приложения к различным форм факторам?
Также в Compose улучшили поддержку ввода с помощью дополнительных средств ввода: стилуса, мышки и клавиатуры.
С помощью AI добавили возможность автоматического распознавания рукописного текста с помощью AI и преобразование его в обычный текст.
Эта возможность работает на view и compose.
Виджеты
Теперь с Glance можно создавать виджеты, которые подстраиваются под все размеры экранов.
Также в Android 15 добавили возможность генерации превью виджетов с полезной информацией для пользователя.
Testing
Гугл сотрудничает с Samsung, Xiaomi, Oneplus и другими производителями устройств, чтобы они подключали свои лаборабории устройств к Android device streaming. Это упростит разработчику проверку поведения приложения на разных реальных устройствах в том числе планшетах и раскладных устройствах.
Гугл продолжают улучшать resizable эмулятор.
Compose UI check mode позволяет идентифицировать проблемы UI относительно адаптивности и поддержки доступности. А также предложить как их исправить.
Как Compose ускоряет создание превосходного UX на разных устройствах (Soundcloud)
Основные тезисы команды Soundcloud:
Compose сократил на 40% количество кода
Soundcloud поддерживают с помощью compose: смартфоны, планшеты, раскладные устройства, часы, работают в машине и на телевизоре. При этом концепция разработки UI и большинство API остаются неизменными, что позволило переиспользовать накопленный опыт Compose для смартфонов на других форм-факторах.
Приложения для Wear и TV были написаны всего за 4 месяца, что было бы невозможным со системой view
Дополнительные улучшения Compose
Помимо этого в Compose добавили еще улучшений.
Как AI может повысить вашу производительность
В прошлом году был представлен Studio Bot как AI компаньон по Android-разработке. Сейчас в нем изменили модель на gemini и сделали доступным во всех странах.
В этом разделе рассмотрим как gemini улучшает разработку
Crashlytics
В разделе крашлитики в android studio gemini подсказывает как исправить проблемы с учетом контекста вашего исходного кода.
Контроль отправляемых данных
Вы можете контролировать какой информацией делиться а какой нет с AI в специальном разделе Android Studio
Это было основной проблемой в других ai системах: нельзя пользоваться AI на некоторых проектах, тк контекст проекта отправлялся на сервера AI
Упрощение кода
Можно просить gemini одновременно написать документацию, упростить код. Причем делать это итерационно, если вас не устраивает полученный результат.
Gemini имеет контекст разработки под андроид
Например можно попросить сделать автоматический перевод строк в ресурсах на нужный язык
И применить эти изменения строк в приложении практически на лету с помощью кнопки refresh
Генерация compose кода по картинке-макету
Gemini способна сгенерировать код, который будет максимально повторять макет, будет читаемый и использовать актуальные компоненты из material
Сейчас вы уже можете попробовать упрощенный функционал gemini в AS koala preview. Все возможности Gemini pro будут доступны позже в этом году.
Project IDX
Теперь доступен для всех в публичной бете Project IDX. Это сервис, объединяющий в себе функционал для разработки, сборки, тестирования, распространения для всех платформ разом. Использует AI.
IDX позволяет вам вести разработку по разным направлениям прямо в web интерфейсе
В качестве мобильной разработки в сервисе доступен только Flutter. По при этом есть разные фреймворки для frontend и backend разработки.
Checks
Checks — AI‑платформа предоставляющая проверку, действительно ли вы в приложении обрабатываете данные в соответствии с политикой обработки данных и заполненной анкетой в сторах.
Checks уже доступен для ios и android.
Упростится процесс синхронизации анкеты собираемой информации в сторах и в приложении. Будет меньше шансов что-либо пропустить при релизе.
Обновления в Firebase
Добавили поддержку SQL базы данных c помощью связки Firebase Data Connect и Cloud SQL
Data connect позволяет описать модель данных в приложении и вытаскивать данные в этом формате из реляционной БД на сервере в реалтайме. А реляционный движок под капотом создаст нужные таблицы, соответствующие модели данных.
Firebase app hosting позволяет размещать web приложения
App hosting автоматически подтягивает код из репозитория, собирает его и хостит на инфраструктуре гугла.
Firebase Genkit — позволяет в простой форме использовать языковые модели и извлекать данные из ответа модели в типизированном виде
Выводы
В этом обзоре мы рассмотрели основные направления улучшений по AI и для Android-разработчиков. На обоих keynote очень много внимания было уделено AI, видна конкуренция на рынке. И, наконец Google официально поддерживает KMP.
В ближайшие дни на Google IO будут проводиться технические стримы по конкретным направлениям (на часть из них я дал ссылки в этой статье) и мы планируем опубликовать статью с обзором некоторых тем, оставайтесь на связи!