Разработка
Что нового в Jetpack Compose
На Google I/O 2025 объявили о множестве обновлений функций, производительности, стабильности, библиотек и инструментов для Jetpack Compose, рекомендуемого инструментария для создания пользовательских интерфейсов для Android.
На Google I/O 2025 объявили о множестве обновлений функций, производительности, стабильности, библиотек и инструментов для Jetpack Compose, рекомендуемого инструментария для создания пользовательских интерфейсов для Android. С помощью Compose вы сможете создавать отличные приложения, которые будут работать на всех устройствах. С момента своего первого анонса (на Google I/O 2019!) Compose значительно усовершенствовался, и сейчас 60% из 1000 лучших приложений в Play Store, таких как MAX и Google Drive, используют и любят его.
Новые фичи
С момента I/O в прошлом году, Compose Bill of Materials (BOM) версии 2025.05.01 добавил новые функции, такие как:
- Поддержка автозаполнения, позволяющая пользователям автоматически вставлять ранее введенную персональную информацию в текстовые поля.
- Автоподбор размера текста для плавной адаптации размера текста к размеру родительского контейнера.
- Отслеживание видимости, когда вам нужна высокопроизводительная информация о положении композита в его корневом контейнере, экране или окне.
- Модификатор Animate bounds для красивой автоматической анимации положения и размера Composable в пределах LookaheadScope.
- Проверки доступности в тестах, позволяющие создавать более доступные пользовательские интерфейсы приложений с помощью автоматизированного тестирования a11y.
Если вы хотите опробовать новую функциональность Compose, альфа-версия BOM предлагает новые функции, над которыми работают сейчас, включая:
- Паузы в Composition
- Обновления в предварительной выборке LazyLayout
- Контекстные меню
- Новые модификаторы: onFirstVisible, onVisbilityChanged, contentType
- Новые проверки линтера для часто меняющихся значений и элементов, которые должны быть запомнены в композиции
Вы можете попробовать альфа-версию функций и предоставьте отзывы, чтобы помочь сформировать будущее Compose.
Material Expressive
На Google I/O представили Material Expressive — новейшую разработку Material Design, которая поможет вам сделать ваши продукты еще более привлекательными и простыми в использовании. Это комплексное добавление новых компонентов, стилей, движений и возможностей настройки, которые помогут вам создавать красивые насыщенные пользовательские интерфейсы. Библиотека Material3 в последней альфа-версии BOM содержит множество новых выразительных компонентов, которые вы можете опробовать.
Библиотека адаптивных макетов
Разработка адаптивных приложений для различных форм-факторов, включая телефоны, складные устройства, планшеты, настольные компьютеры, автомобили и Android XR, стала проще благодаря последним улучшениям в библиотеке адаптивных макетов Compose. В стабильном релизе 1.1 добавлена поддержка предиктивных жестов назад для более плавных переходов и расширение панелей для более гибких двухпанельных макетов на больших экранах. Кроме того, релиз 1.2 (альфа-версия) добавляет больше гибкости в отображении панелей, добавляя стратегии перетекания и левитации.
Производительность
С каждым выпуском Jetpack Compose Google продолжает уделять приоритетное внимание повышению производительности. Последний стабильный выпуск включает в себя значительные изменения и улучшения в нескольких подсистемах, включая семантику, фокус и оптимизацию текста. Самое главное, что все эти улучшения доступны вам просто при обновлении зависимости Compose; никаких изменений кода не требуется.
Заметные изменения в последней альфа-версии BOM включают:
- Паузы в Composition позволяют приостанавливать композиции и разбивать их работу на несколько кадров.
- Фоновая предварительная выборка текста позволяет кэшам компоновки текста предварительно прогреваться в фоновом потоке, обеспечивая более быструю компоновку текста.
- Улучшения предварительной выборки LazyLayout позволяют «ленивым» макетам умнее выбирать количество содержимого для предварительной выборки, используя преимущества композиции с паузами.
В совокупности эти улучшения устранили почти все подвисания во внутреннем бенчмарке.
Стабильность
Обновление зависимостей Compose может быть сложной задачей, когда вы сталкиваетесь с ошибками или изменениями в поведении, которые мешают вам оставаться на последней версии. Google вложил значительные средства в повышение стабильности Compose, тесно сотрудничая со многими командами разработчиков приложений Google, создающих на основе Compose, чтобы обнаружить и предотвратить проблемы еще до того, как они появятся в релизе.
Приложения Google разрабатываются и выпускаются с snapshot сборками Compose; таким образом, Compose тестируется сотнями тысяч тестов приложений Google, и любые проблемы с Compose немедленно устраняются командой. Недавно компания инвестировала в увеличение частоты обновления этих снапшотов и теперь обновляет их ежедневно с вершины дерева Compose, что означает, что быстрее получает отзывы и может устранять проблемы задолго до того, как они попадут в публичный релиз библиотеки.
Jetpack Compose также использует аннотации @Experimental для обозначения API, которые могут быть изменены. Некоторые API долгое время оставались экспериментальными, что снижало уверенность разработчиков в стабильности Compose. Теперь компания вложила средства в стабилизацию экспериментальных API, чтобы предоставить вам более надежную поверхность разработки, и за последний год сократила количество экспериментальных API на 32%.
Услышали и то, что бывает сложно отлаживать сбои Compose, когда ваш собственный код не отображается в трассировке стека. В последней альфа-версии BOM добавили новую опциональную функцию для получения дополнительной диагностической информации. Обратите внимание, что в настоящее время она не работает с минифицированными сборками и требует значительных затрат производительности, поэтому рекомендуют использовать эту функцию только в отладочных сборках.
class App : Application() {
override fun onCreate() {
// Enable only for debug flavor to avoid perf impact in release
Composer.setDiagnosticStackTraceEnabled(BuildConfig.DEBUG)
}
}
Библиотеки
Для создания отличных приложений вам необходима интеграция Compose в библиотеки, которые взаимодействуют с пользовательским интерфейсом вашего приложения.
Основной библиотекой, на которой основано любое приложение Compose, является Navigation. Разработчики часто сталкивались с ограничениями при управлении подъемом состояния и непосредственном манипулировании бэкстеком с помощью текущего решения Compose Navigation. Google вернулся к разработке и полностью переосмыслил, как библиотека навигации должна интегрироваться в ментальную модель Compose. так вышла библиотека Navigation 3, новый артефакт, созданный для того, чтобы предоставить вам больше возможностей для управления и упростить сложные навигационные потоки.
Google так же инвестирует в поддержку Compose для CameraX и Media3, что упрощает интеграцию захвата камеры и воспроизведения видео в ваш пользовательский интерфейс с помощью идиоматических компонентов Compose.
@Composable
private fun VideoPlayer(
player: Player?, // from media3
modifier: Modifier = Modifier
) {
Box(modifier) {
PlayerSurface(player) // from media3-ui-compose
player?.let {
// custom play-pause button UI
val playPauseButtonState = rememberPlayPauseButtonState(it) // from media3-ui-compose
MyPlayPauseButton(playPauseButtonState, Modifier.align(BottomEnd).padding(16.dp))
}
}
}
Инструменты
Продолжают совершенствовать инструменты Android Studio для создания пользовательских интерфейсов Compose. Последняя канари версия Narwhal включает в себя:
- Изменяемые предварительные просмотры мгновенно показывают, как ваш пользовательский интерфейс Compose адаптируется к различным размерам окна
- Улучшение навигации по превью с помощью кликабельных имен и компонентов
- Studio Labs: Генерация предварительного просмотра Compose с помощью Gemini быстро генерирует предварительный просмотр
- Studio Labs: Преобразование пользовательского интерфейса с помощью Gemini — изменяйте ваш пользовательский интерфейс с помощью естественного языка, прямо из превью
- Studio Labs: Вложение изображений в Gemini генерирует код Compose из изображений
Для получения дополнительной информации читайте «Что нового в инструментах разработки Android«.
Новые проверки качества Compose
В альфа-версии BOM Compose появились две новые аннотации и связанные с ними проверки, которые помогут вам писать корректный и производительный код Compose. Аннотация @FrequentlyChangingValue и проверка FrequentlyChangedStateReadInComposition предупреждают о ситуациях, когда вызовы функций или чтение свойств в композиции могут вызвать частые перекомпоновки. Например, частые перекомпоновки могут происходить при чтении значений позиции прокрутки или анимации. Аннотация @RememberInComposition и проверка RememberInCompositionDetector предупреждают о ситуациях, когда конструкторы, функции и геттеры свойств вызываются непосредственно внутри композиции (например, конструктор TextFieldState) без запоминания.
-
Аналитика магазинов2 недели назад
Мобильный рынок Ближнего Востока: исследование Bidease и Sensor Tower выявляет драйверы роста
-
Интегрированные среды разработки3 недели назад
Chad: The Brainrot IDE — дикая среда разработки с играми и развлечениями
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2025.45
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.46



