Вышел Haze 1.2.0 разных зон эффектов, что позволяет сделать наложение как на картинке
Также произошло переименование API
👉 Modifier.haze -> Modifier.hazeSource
👉 Modifier.hazeChild -> Modifier.hazeEffect
👉 HazeChildScope -> HazeEffectScope
#compose #kmp
Также произошло переименование API
👉 Modifier.haze -> Modifier.hazeSource
👉 Modifier.hazeChild -> Modifier.hazeEffect
👉 HazeChildScope -> HazeEffectScope
#compose #kmp
Composable Preview Scanner - библиотека для автоматической генерации кода скриншот тестов из Composable Preview на основе популярных библиотек: Paparazzi, Roborazzi, Shot, Dropshots, Android-Testify и др.
По заявление автора, обладает большими возможностями чем Showkase и Compose Preview Screenshot Testing (находится в разработке)
#compose #тестирование
По заявление автора, обладает большими возможностями чем Showkase и Compose Preview Screenshot Testing (находится в разработке)
#compose #тестирование
Как на Compose сделать (EN, 4м) красивый Edge-toEdge UI на всех версиях Android - используйте правильную настройку Activity и применяйте Modifier.windowInsetsPadding(WindowInsets.systemBars)
#compose #android #edgetoedge
#compose #android #edgetoedge
Composition Local - удобный механизм Compose, позволяющий передать значения всем вложенным Composable функциями и переопределять его. Если еще не успел с ним познакомиться - читайте статью (EN,10м) и официальную документацию
#compose
#compose
Forwarded from Why Android? 🌚
This media is not supported in your browser
VIEW IN TELEGRAM
Начиная с IntelliJ IDEA 2025.1 EAP можно запускать адекватное Compose Preview прямо из commonMain и без всяких костылей 🌚
youtrack
youtrack
На сайте JetBrains появилась страница с описанием различий между Compose Multiplatform от JetBrains и Jetpack Compose от Google.
Ключевые различия:
👉 Jetpack Compose фокусируется на Android, и не все компоненты доступны из общего (Kotlin common) кода в Compose Multiplatform.
👉 Compose Multiplatform включает множество платформенно-специфичных API: Desktop, Web, iOS. Эти API недоступны из общего кода.
👉 Некоторые библиотеки для Compose публикуются JetBrains с отдельными пакетами, чтобы добавить поддержку Compose Multiplatform.
Этот момент не упомянут в статье, но важным различием являются инструменты для разработки: для Compose Multiplatform они пока находятся на более ранней стадии и уступают Jetpack Compose.
#compose #cmp
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
Очень подробный гайд по тому, как оптимизировать производительность приложения через использование стабильных типов для меньшего числа рекомпозиций.
Разбираются:
👉 Что такое Stable тип
👉 Как происходит рекомпозиция
👉 Restartable и Skippable Composable функции
👉 Compose Compiler Metrics
👉 Аннотации Immutable и Stable
👉 Аннотация NonRestartableComposable
👉 Как стабилизировать Composable функции
👉 Strong Skipping Mode
#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел Haze 1.3.0 - библиотека для размытия в стиле glassmorphism для Compose MP
Что нового:
👉 Добавлен эффект радиального прогрессивного размытие
👉 Поддержка Brush в tint
👉 Больше примеров использования
#compose #kmp
Что нового:
👉 Добавлен эффект радиального прогрессивного размытие
👉 Поддержка Brush в tint
👉 Больше примеров использования
#compose #kmp
GitHub
Release 1.3.0 · chrisbanes/haze
What's Changed
Add Brush support to HazeTint by @chrisbanes in #481
Move all samples to shared by @chrisbanes in #484
Add Bottom Sheet sample by @chrisbanes in #485
Fix alpha property changes ...
Add Brush support to HazeTint by @chrisbanes in #481
Move all samples to shared by @chrisbanes in #484
Add Bottom Sheet sample by @chrisbanes in #485
Fix alpha property changes ...
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда использовать?
✅ Функция является обёрткой над другой Composable функцией
✅ Если метод не зависит от состояния и всегда ведёт себя одинаково.
✅ Когда нужно оптимизировать производительность и уменьшить лишние перестроения.
✅ В случаях, когда внутри создаётся сложный объект, который не должен пересоздаваться
// Пример функции из Jetpack Material 3
@NonRestartableComposable
@Composable
fun Icon(
painter: Painter,
contentDescription: String?,
modifier: Modifier = Modifier,
tint: Color = LocalContentColor.current,
contentScale: ContentScale = ContentScale.Fit
) {
Image(painter = painter, contentDescription = contentDescription, modifier = modifier, colorFilter = tint.asColorFilter())
}
Аннотацию надо использовать разумно и не стоит использовать, если…
❌ Функция зависит от состояния (включая CompositonLocal)
// НЕ НАДО @NonRestartableComposable
@Composable
fun Timer() {
var time by remember { mutableStateOf(0) }
LaunchedEffect(Unit) {
while (true) {
delay(1000)
time++
}
}
Text("Time: $time")
}
#composable #оптимизации
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Compose превью помогают быстро проверять компоненты во время разработки, а с помощью Gradle-плагина для тестирования скриншотов превью можно автоматизировать визуальные регрессионные тесты. Для тестирования поведения теперь доступен новый API – DeviceConfigurationOverride, который позволяет эмулировать различные конфигурации устройств без необходимости запускать несколько эмуляторов для полного набора тестов.
#compose #androidstudio #инструменты #android
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример миграции в Compose с Modifier.pullToRefresh на PullToRefreshBox из Material3
#compose #android
#compose #android
Media is too big
VIEW IN TELEGRAM
Decomposer - приложения для десктопа, чтоб изучать внутренности Jetpack Compose. Позволяет
👉 Смотреть IR структуру вашего приложения
👉 Смотреть структуру композиции вашего приложения
Подробности использования в статье(EN,11м) и ссылка без VPN
#compose #инструменты
👉 Смотреть IR структуру вашего приложения
👉 Смотреть структуру композиции вашего приложения
Подробности использования в статье(EN,11м) и ссылка без VPN
#compose #инструменты
Why Not Compose! - репозиторий-сборник с примерами реализаций анимаций, композици и UI на Jetpack Compose
#android #compose #анимация
#android #compose #анимация