Реализация Live Updates в Android: различия между макетами и возможностями SDK
Краткое резюме
Android-разработчик Сергей Орлов из Dodo Engineering делится опытом интеграции Live Updates в приложение «Додо Пиццы». Он рассказывает о нюансах реализации функции, представленной Google на конференции I/O 2025, и особенностях её компонентов.
Здравствуйте, читатели Хабра! Я Сергей Орлов, Android-разработчик в Dodo Engineering, и хочу поделиться опытом интеграции Live Updates в приложение Додо Пиццы. В этой статье не будет готовых решений, но я расскажу о нюансах реализации и тестирования этой функции, которые не описаны в документации. Я остановлюсь на моментах, где представления дизайнеров Google и разработчиков, создавших этот SDK, различаются.
Ещё до презентации Live Updates я заметил похожий функционал на смартфонах Samsung с оболочкой OneUI. Я ожидал, что компания предоставит API для разработчиков, чтобы можно было внедрить собственные Live Updates от Samsung в приложения, но этого не случилось.
Google представила Live Updates на конференции Google I/O 2025. С этого момента я начал активно продвигать идею внедрения этой функции в наше приложение, и мне повезло работать с коллегами, которые поддерживают амбиции и готовы помогать в их реализации.
Live Updates от Google — это аналог Live Activities в iOS, но с некоторыми особенностями. Эта функция состоит из двух компонентов: режима повышения видимости (promoted ongoing) и специальных стилей контента, таких как progress-centric, CallStyle и другие. Их можно использовать по отдельности, но по задумке разработчиков Google вторая часть теряет смысл без первой: уведомление становится менее заметным и понятным для пользователя.
По сути, Live Updates — это режим повышенной видимости, который можно включить не только для отображения прогресса, но и для других системных шаблонов, например, звонков (CallStyle) или навигации. Функция работает и без progress-centric, если использовать подходящий системный стиль. В этом случае Android закрепит карточку сверху, добавит чип в статус-баре и выведет уведомление на заблокированный экран, которое будет работать даже в режиме Always-On-Display.
Progress-centric — это стиль контента уведомления, который может существовать и как обычное уведомление в шторке без Live Updates. В этом случае пользователь видит красивый прогресс с этапами.
Разберём компоненты progress-centric:
* контекст события (например, «В пути» или «Загрузка»);
* время обновления статуса;
* текущий статус (например, «Курьер подъезжает»);
* детали прогресса (сколько осталось времени или процентов до завершения процесса);
* шкала выполнения (визуальный индикатор прогресса).
Главное отличие progress-centric от RemoteViews в том, что нельзя создать собственный дизайн уведомления. RemoteViews позволяет использовать индивидуальную разметку уведомления, а в случае с progress-centric style можно только заполнить то, что уже предусмотрено.