Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Облако

Google открыла Jetpack AppState: состояние Compose выходит за пределы UI, а Compose 1.13 получит Grid и FlexBox

7 ноября 2026·5 мин чтения
Jetpack AppStateJetpack Compose
Google открыла Jetpack AppState: состояние Compose выходит за пределы UI, а Compose 1.13 получит Grid и FlexBox

Google выпустила alpha-версию Jetpack AppState — набора библиотек, который переносит реактивную модель состояния Jetpack Compose из интерфейса в архитектуру Android-приложения. Transform вычисляет состояние из State и Flow без UI, StateStore делится им между активити, сервисами, виджетами и App Functions. Пробовать можно уже сейчас, в прод — пока рано.

Анонс прозвучал на Android Developer Summit 28 октября, а 4 ноября Google подробно описала обновления Compose в блоге Android Developers и в тот же день выпустила вторую alpha-сборку библиотек. Для команд, которые ведут разработку Android-приложений на Compose, это заявка Google на новый стандарт слоя состояния — рядом с привычными ViewModel и StateFlow.

В том же пакете — предстоящий стабильный Compose 1.13 с адаптивными раскладками Grid и FlexBox и Navigation 3 версии 1.2 с типобезопасными диплинками. Библиотеки AppState к тому же собраны как Kotlin Multiplatform, поэтому новость касается и кроссплатформенной разработки с общим кодом для Android и iOS.

Что такое Jetpack AppState и из чего он состоит

AppState — это группа библиотек на базе Compose runtime, которые используют снапшот-систему Compose там, где раньше её не было: в репозиториях, сервисах и прочей бизнес-логике. Сейчас в alpha вышли три части:

  • Transform (androidx.appstate.transform:transform) запускает @Composable-блок без интерфейса и превращает входные State и Flow в итоговый Compose State. Чтения отслеживаются автоматически: когда меняется любой прочитанный внутри State, блок перекомпонуется и обновляет результат. Логика пишется обычными if и when на Kotlin, а не цепочками операторов Flow.
  • StateStore — типобезопасный контейнер «ключ → состояние». Через него одно и то же наблюдаемое состояние видят активити, фоновые сервисы, виджеты и App Functions.
  • Интеграция с DataStore — опциональная персистентность, чтобы содержимое StateStore переживало смерть процесса.

Для тестов есть отдельный артефакт transform-testing с функцией transformTest. Первая сборка 1.0.0-alpha01 вышла 28 октября, alpha02 — 4 ноября 2026 года. Вместе с библиотеками Google опубликовала документацию и репозиторий с рецептами на GitHub.

Почему это важно: одно состояние для экрана, виджета и ИИ-агента

Сегодня состояние Android-приложения обычно разбросано по слоям: ViewModel живёт ровно столько, сколько экран, виджет читает свои данные, фоновый сервис — свои, а синхронизацию между ними команды пишут вручную. Google прямо объясняет AppState тем, что при складывании экрана, изменении размеров окна и переходе между устройствами приложения теряют состояние и начинают вести себя рассинхронизированно.

StateStore решает это одним источником правды, к которому подключаются все поверхности. Отдельно в списке потребителей названы App Functions — механизм, через который Gemini и другие ИИ-агенты выполняют действия внутри приложения. Если агент меняет данные, а экран и виджет сразу это видят, отдельный канал синхронизации не нужен. Это отличает AppState от очередной библиотеки «для удобства»: Google готовит архитектуру под сценарии, где приложение используют не только руками.

Compose 1.13 и Navigation 3: что ещё показали на саммите

AppState вышел не один. В тех же анонсах Google перечислила изменения, которые затронут почти любую команду на Compose:

  • Compose 1.13 (выйдет в стабильной ветке): Grid и FlexBox становятся стабильными адаптивными раскладками, появляются Progressive Blur и Formatted Text.
  • BasicTextField переписан на буферную архитектуру с TextFieldState: Google обещает убрать гонки с IME и поддержать редактирование форматированного текста.
  • Navigation 3 версии 1.2 получила встроенные типобезопасные диплинки: через Kotlin Serialization входящие URI и интенты сопоставляются с типизированными ключами навигации, а синтетический back stack строится лениво, чтобы кнопка «назад» вела себя предсказуемо. Плюс расширена поддержка predictive back.
  • Android skills для ИИ-агентов: обновлён навык Adaptive (теперь со складными устройствами и десктопом), добавлены навыки Compose performance, миграции с XML на Compose и Ink.

Всего Google выложила больше 50 записей сессий саммита; плейлист App Foundations посвящён именно этим темам.

Что это значит для команд мобильной разработки

Alpha означает, что API ещё будут меняться, — переписывать на AppState рабочий слой состояния сейчас не стоит. Но направление понятно: Google продвигает Compose не только как UI-тулкит, но и как модель реактивного состояния для всего приложения. Тем, кто пишет новый модуль или виджет, имеет смысл заложить архитектуру так, чтобы позже перейти на StateStore без переделки.

Отдельный сигнал — мультиплатформенность. В артефактах Transform уже есть сборки для iOS, desktop, wasm-js, watchOS и tvOS. Для проектов на Kotlin Multiplatform это потенциально общий слой состояния для Android и iOS от самой Google. Подробнее о выборе между KMP и Flutter — в нашем материале Kotlin Multiplatform или Flutter: что выбрать для проекта.

Как подготовиться уже сейчас

  1. Подключите androidx.appstate.transform:transform:1.0.0-alpha02 в экспериментальной ветке и перенесите на Transform одну цепочку combine + stateIn — так вы оцените выигрыш на своём коде.
  2. Составьте список мест, где одно и то же состояние дублируется между экраном, виджетом и сервисом: это первые кандидаты на StateStore.
  3. Если приложение открывает App Functions для агентов, проверьте, откуда эти функции берут данные и видит ли UI их изменения.
  4. Запланируйте переход на Compose 1.13: замените самописные сетки на Grid и FlexBox и проверьте экраны на складных устройствах и планшетах.
  5. Если вы на Navigation 3, переведите диплинки на встроенный механизм версии 1.2 вместо ручного разбора интентов.

Часто задаваемые вопросы

Можно ли использовать Jetpack AppState в продакшене? Пока нет: библиотеки в статусе alpha, и Google прямо предупреждает, что API могут меняться. Сейчас их стоит пробовать в прототипах и экспериментальных модулях.

AppState заменяет ViewModel? Google так не формулирует. AppState дополняет архитектуру: Transform заменяет вычисление производного состояния, StateStore — ручную синхронизацию между поверхностями приложения.

Когда выйдет Compose 1.13? Google называет его «предстоящим стабильным релизом» и не указывает точную дату.

Работает ли AppState на iOS? В артефактах Transform есть сборки для iOS (arm64 и симулятор), то есть библиотеку можно подключить в общий код Kotlin Multiplatform. Насколько это готово для продакшена, станет ясно ближе к стабильной версии.

Источники

Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.

Переводите Android-приложение на Compose?

Спроектируем слой состояния с прицелом на Jetpack AppState, адаптируем экраны под складные устройства и планшеты на Grid и FlexBox и подготовим App Functions для ИИ-агентов.

Обсудить Android-разработку