Compose Broadcast
5.42K subscribers
306 photos
83 videos
508 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
⚙️ Готовится к релизу Compose 1.8.0 - вышла Beta 2

BOM файл - androidx.compose:compose-bom-beta:2025.02.00

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👌21
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Инструкция(EN,2м) по реализации анимации прогресса двигающихся точек на Compose

🔗 Ссылка без VPN

#compose #анимация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍6👌2
This media is not supported in your browser
VIEW IN TELEGRAM
Статья(EN,8м) с реализацией подобного UI на. Compose

🔗 Ссылка без VPN

#compose
👍17
Инструкция(EN,5м) по созданию металлической кнопки на Compose

#compose
👍32🔥31
Carbon Compose Multiplatform (CMP) - опенсорс реализация дизайн системы IBM на CMP с поддержкой Android, Dekstop, iOS, Web WASM

#compose #uikit #android #ios #desktop #wasm
👍27🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Исходный код реализации такого виджета на Compose смотрите на 🐱 GitHub

#compose #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍3
⚙️ Почему я не использую *Screen и выбираю Pane подход

Когда речь заходит о создании UI на Jetpack Compose с поддержкой смартфонов, планшетов и десктопов, важно не привязываться к физическим размерам экрана.

Чего я избегаю?
Я не использую именование Composable-экранов через *Screen, например:
// !!! не делайте так для экрана фичи
@Composable
fun HomeScreen() { /* UI */ }


Такой подход жестко связывает UI с понятием "экрана устройства", а это не всегда корректно, особенно в мире foldable-устройств и десктопов. UI каждой фичи должен уметь работать на всём пространстве что ему выделит контейнер, где будет показ UI фичи.

Что я использую вместо этого?
Я применяю концепцию Pane – это независимые контейнеры UI, которые адаптируются под выделенное для них место и не должны понимать ничего о размерах экрана, ориентации, расположении. Контейнер, где встраивается UI, сам определит всё и настроит UI через Modifier.
@Composable
fun HomePane(modifier: Modifier = Modifier) {
Column(modifier = modifier.fillMaxSize()) {
Text("Welcome to Home")
// Остальной UI
}
}


Такой подход позволяет:
✔️ Легко компоновать UI для разных конфигураций (например, показывать две панели на планшете и одну на телефоне).
✔️ Избежать привязки к Screen, что делает код гибче.
✔️ Улучшить переиспользуемость UI-компонентов.

📌 Как применять Pane в адаптивном UI?

Простейший пример, где на планшетах и десктопе мы показываем две панели, а на телефонах – только одну:
// Рутовая Composable функция приложения, которая понимает про текущее состояние приложения 
// на экране и в зависимости от этого располагает контент
@Composable
fun RootScreen(windowSizeClass: WindowSizeClass) {
if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Expanded) {
// Большой экран
Row(Modifier.fillMaxSize()) {
HomePane(Modifier.weight(1f))
DetailsPane(Modifier.weight(1f))
}
} else {
// Маленький или средний
HomePane()
}
}


❗️ Также важной частью работы с Pane является передача в неё Modifier параметра, через который контейнер панели будет настраивать размещение и другие параметры Pane.

Пост - это мой взгляд и рекомендация. В архитектуре и рекомендациях нет абсолютного правильного или неправильного подхода. Выбирать как делать - остаётся на вашей стороне.

#compose #android #adaptive #material #советы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥61
Пример(EN,6м) реализации онбординга (рассказ про новые элементы приложения) пользователю на Compose Multiplatform. Решается задача определения положения Compose элемента на экране, затемнение фона и показ подсказки, где есть свободное место на экране

🔗 Ссылка без VPN

#compose #kmp #andorid #ios #desktop
21👍7
Вышла третья Beta Compose 1.8.0, а вот Bom для него не появился ((( Исправили баги в UI и Foundation

#compose
👍12
Mesh - опенсорс утилита для создания и редактирования mesh-градиентов. Написана полностью на Compose Desktop с использованием UI Kit Jewel от JetBrains.

#compose #desktop
33🔥14👍8
Как протестировать Compose Hot Reload для Desktop

Если вы хотите протестировать Compose Desktop Hot Reload, то следуйлет инструкции в официальном репозитории JetBrains. Используется специальная JDK, которая может автоматически скачаться через Gradle

#compose #desktop
👍10
Compose Text Editor - текстовый редактор со множеством возможностей на Compose Multiplatform: Android, JVM Desktop, WasmJS

#compose #android #desktop #wasm
👍23
Coil и Yandex MapKit KMP: рисуем аватарки на карте. Часть 3 (6м)

Как с помощью библиотеки от сообщества Yandex MapKit KMP Compose для Android и iOS, показывают аватары пользователей с сервера.

#kmp #compose #android #ios #карты
👍19
Forwarded from Android Broadcast
🔨⚙️ Kelp — IDE-плагин для кастомных дизайн-систем на Jetpack Compose (9 мин)

Рассказ о плагине для Android Studio, который упрощает работу с кастомными дизайн-системами на Jetpack Compose.

Возможности:
👉 Настраиваемые иконки для компонентных функций
👉 Иконки дизайн-системы
👉 Предпросмотр цветов
👉 Интеграция демо-приложения
👉 Рендеринг изображений в KDoc
👉 Шаблоны кода (Live Templates)

#android #androidstudio #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🚀 Пример реализации навигации в многомодульном приложении на Compose и Jetpack Navigation. Фичи изолированы друг от друга.

Рассматриваются разные решения:
👉 callback интерфейсы для навигации
👉 модуль для навигации (его и рассматривают не примере кода)

🔗 Ссылка без VPN

#compose #навигация #anroid
Please open Telegram to view this post
VIEW IN TELEGRAM
👍306👏1
compose-material-data-table - реализация Material 2 Data Table на Jetpack Compose Multiplatform для Android, JVM, WASM/JS

#compose #kmp @android #jvm #wasm
🔥22
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Paper – интуитивный UI-билдер для Compose Multiplatform.

Paper позволяет проектировать UI в веб-среде и затем экспортировать всё в код.

Что делает Paper интересным?
👉 Готовые UI-компоненты: кнопки, карточки, переключатели, диалоги и многое другое.
👉 Визуальный редактор: меняйте цвета, размеры, тени и другие параметры прямо в браузере, а затем копируйте готовый код в проект.
👉 Поддержка Material 3 с возможностью кастомизации под любой стиль.
👉 Открытый код, который можно модифицировать под свои задачи.

Paper предоставляет бесплатный 30-дневный пробный период без ограничений, после чего стоимость составляет 100$ в год. Если не хотите платить, можно продолжать пользоваться, но экспорт кода будет ограничен.

💬 Кто уже тестировал? Насколько удобен редактор? Делитесь впечатлениями!

#compose #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥56👍8👌3
⚙️ Вышел Release Candidate Jetpack Compose 1.8.0

Только небольшие исправления по сравнению с предыдущей Beta, можно пробовать

Доступен BOM файл
implementation("androidx.compose:compose-bom-beta:2025.03.00")


#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4