Compose Broadcast
5.51K subscribers
317 photos
84 videos
519 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
⚙️ XCalendar - Google Calendar, переписанный на Compose Multiplatform для Android и iOS. Есть все основные фичи, но самое интересное - как сделали виджеты для отображения календаря.

#kotlin #compose #android #ios #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥10
🚀 Jetpack Navigation3 Multiplatform уже на подходе. Залили сборку в Core Multiplatform библиотеки. Артефакта нигде не нашел, так что ждем публикации

Jetpack Navigation3 - это новая библиотека Google для навигации, построенная специально для Compose, построенная вокруг состояния стека


Подробности в issue, а исходники на 🐱 GitHub

#compose #multiplatform
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46🤔2
🔥 Jetpack Navigation 3 теперь мультиплатформенная!

В релизе 1.0.0-alpha08 добавили поддержку множества новых KMP-таргетов для runtime-артефакта. Теперь библиотека работает на:
👉 JVM → Android и Desktop
👉 Native → Linux, iOS, watchOS, macOS, MinGW
👉 Web → JavaScript и WasmJS

Для UI-артефакта (где лежат Composable-функции) пока поддержка осталась только у Jetpack Compose.
Ждём появления отдельного артефакта для ⚙️ Compose Multiplatform от JetBrains

#compose #kmp #navigation
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47👍8🤔51
Архитектор Jetpack Compose покидает Google 🤯 Пошел в Anthropic занимать AI

Источник
🤯5319
⚙️ Разбор новых теней в Compose 1.9 (EN,5м)

В Compose 1.9.0 добавили больше возможностей управления тенями и их типами.

Modifier  
.size(300.dp)
.background(Red300)
.innerShadow(
shape = RectangleShape
block = {
radius = 50f
}
)
.dropShadow(
shape = RectangleShape
block = {
radius = 50f
}
)


#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥474
‼️ Опубликовали первую сборку Navigation3 для Compose Multiplatfom

Подкючайте артефакт org.jetbrains.androidx.navigation3:navigation3-ui:1.0.0-alpha01 в common код и можете пробовать

Ждем актуализации до свежей альфа версии, а также адаптивные layout и интеграцию с ViewModel

#compose #kmp #naviation #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥4🤔2
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
145🔥10👍4
⚙️ Вышел Compose Multiplatform 1.9.0: Web перешло в Beta

Что нового для всех таргетов:
👉 Аннотация @Preview в common коде теперь поддерживает задание параметров (имя для отображения, размеры и прочее)
👉 Больше возможностей по управлению тенями
👉 Адаптировали новое API для управления контекстным меню из Android под все платформы. Требуется включение через код
ComposeFoundationFlags.isNewContextMenuEnabled = true

👉 Тема Material Expressive
👉 Артефакт androidx.compose.runtime:runtime стал мультиплатформенным, перенеся наработки из org.jetbrains.compose.runtime:runtime
👉 runComposeUiTest() теперь позволяет запускать suspend функции в теле вызова

Compose/iOS
👉 Управление желаемой частотой кадров для рендера Composable
Modifier.preferredFrameRate(FrameRateCategory.High)
Modifier.preferredFrameRate(120f)

👉 Поддержка кастомизаций ввода, специфичных для iOS
BasicTextField(
value = "",
onValueChange = {},
keyboardOptions = KeyboardOptions(
platformImeOptions = PlatformImeOptions {
keyboardType(UIKeyboardTypeEmailAddress)
}
)
)


Compose/Web
🎉 Поддержка Web таргета перешло в Beta статус
👉 Поддержка Accessibility API
👉 Новое API для встраивания HTML
private val ttOSM =
"https://www.openstreetmap.org/export/embed.html?bbox=4.890965223312379%2C52.33722052818563%2C4.893990755081177%2C52.33860862450587&layer=mapnik"

@Composable
fun Map() {
Box(
modifier = Modifier.fillMaxWidth().fillMaxHeight()
) {
WebElementView(
factory = {
(document.createElement("iframe")
as HTMLIFrameElement)
.apply { src = ttOSM }
},
modifier = Modifier.fillMaxSize(),
update = { iframe -> iframe.src = iframe.src }
)
}
}

👉 Упростили связывание Jetpack Navigation c навигацией в браузере
// Код в Composable функции
LaunchedEffect(Unit) {
// Implicitly accesses the window object
navController.bindToBrowserNavigation()
}


Compose/Desktop
👉 Возможность настройки окна с контентом с помощью API SwingFrame() and SwingDialog(), аналогичные Window() and DialogWindow(). Разница то что новые API конфигурируются в init блоке до показа UI.

#compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥283👍2
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Нашел сайт с демонстрацией того как происходит рекомпозиция с примером хороших и плохих практик

Как была сделана реализация написали в статье, а исходники есть на GitHub

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥838
⚙️ Вышел Jetpack Compose 1.9.2 с исправлением ошибок

Обновляйте зависимости или сразу всё через BOM файл:
```kotlin
dependencies {
implementation(platform("androidx.compose:compose-bom:2025.09.01"))
}

```

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Media is too big
VIEW IN TELEGRAM
⚙️ Вышел Jetpack Compose Material3 1.4.0

Что нового:
👉 Зависимость material-icons-core теперь не добавляется транзитивно и нужно явно её добавлять
👉 Для описания хореографии и анимации Material 3 компоненты теперь используют MotionScheme API
👉 Компонент HorizontalCenteredHeroCarousel - горизонтальная карусель с паралаксом (спека тут)
👉 Компонент VerticalDragHandle - перетягиваемый разделитель экрана для контента на большом экране
👉 SecureTextField - поле ввода для паролей с защитой вводимых данных
👉 Поддержка автоматического размера текста в Text полях
👉 Добавили Material 3 декораторы для BasicTextField2
👉 Добавлено API TimePickerDialog
👉 Обновили API SearchBar
🛠 Исправление багов
🚀 Повышение производительности

#compose #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥365👍4
⚙️ Как визуализировать граф навигации в Compose (EN,7м)

Автор статьи решил сделать визуализацию графа навигации между Composable функциями. Для этого был написан плагин Kotlin компилятора, который анализирует Kotlin код, генерирует диаграмму в формате Mermaid, которые после можно открыть с помощью плагина для IDEA. Результат на картинке к посту. Конечно, результат для Jetpack Navigation в Android Studio выглядит лучше, но уже неплохо.

🔗 Альтернативная ссылка

#compose #ksp #навигация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍8
⚙️ Как определять видимость Composable на экране (EN,3м)

В Compose 1.9 прокачали API для определения видимости Composable на экране. Например, это может быть полезно в скролящихся списках.

LazyColumn {
items(feedData) { video ->
VideoRow(
video,
Modifier.onVisibilityChanged(
// задержка вызова callback
minDurationMs = 500,

// какая часть компонента должна
// быть в области видимости
minFractionVisible = 1f,

// Зона для определения видимости компонента
// По умолчанию - окно приложения
viewportBounds: LayoutBoundsHolder? = null,
) { visible ->
// Вызовется когда компонент
// частично покажется или полностью скроется
if (visible) video.play() else video.pause()
},
)
}
}


🔗 Подробная документация и примеры тут
🔗 Альтернативная ссылка на статью

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍426🔥3