fa
Feedback
Compose Broadcast

Compose Broadcast

رفتن به کانال در Telegram

Все о Jetpack Compose и Compose Multiplatform YouTubе канал: https://youtube.com/androidBroadcast Android - @android_broadcast iOS - @ios_broadcast Kotlin - @kotlin_broadcast

نمایش بیشتر
5 917
مشترکین
-224 ساعت
+17 روز
-430 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+8
در 0 کانال‌ها
مه '26
+74
در 0 کانال‌ها
Get PRO
آوریل '26
+91
در 1 کانال‌ها
Get PRO
مارس '26
+71
در 2 کانال‌ها
Get PRO
فوریه '26
+51
در 1 کانال‌ها
Get PRO
ژانویه '26
+47
در 0 کانال‌ها
Get PRO
دسامبر '25
+104
در 2 کانال‌ها
Get PRO
نوامبر '25
+62
در 0 کانال‌ها
Get PRO
اکتبر '25
+298
در 3 کانال‌ها
Get PRO
سپتامبر '25
+106
در 5 کانال‌ها
Get PRO
اوت '25
+76
در 1 کانال‌ها
Get PRO
ژوئیه '25
+54
در 1 کانال‌ها
Get PRO
ژوئن '25
+53
در 1 کانال‌ها
Get PRO
مه '25
+162
در 7 کانال‌ها
Get PRO
آوریل '25
+109
در 3 کانال‌ها
Get PRO
مارس '25
+74
در 1 کانال‌ها
Get PRO
فوریه '25
+110
در 2 کانال‌ها
Get PRO
ژانویه '25
+81
در 0 کانال‌ها
Get PRO
دسامبر '24
+254
در 2 کانال‌ها
Get PRO
نوامبر '24
+116
در 2 کانال‌ها
Get PRO
اکتبر '24
+255
در 2 کانال‌ها
Get PRO
سپتامبر '24
+121
در 1 کانال‌ها
Get PRO
اوت '24
+199
در 1 کانال‌ها
Get PRO
ژوئیه '24
+108
در 1 کانال‌ها
Get PRO
ژوئن '24
+153
در 1 کانال‌ها
Get PRO
مه '24
+269
در 4 کانال‌ها
Get PRO
آوریل '24
+393
در 5 کانال‌ها
Get PRO
مارس '24
+159
در 3 کانال‌ها
Get PRO
فوریه '24
+197
در 3 کانال‌ها
Get PRO
ژانویه '24
+220
در 2 کانال‌ها
Get PRO
دسامبر '23
+130
در 3 کانال‌ها
Get PRO
نوامبر '23
+116
در 4 کانال‌ها
Get PRO
اکتبر '23
+379
در 3 کانال‌ها
Get PRO
سپتامبر '23
+67
در 0 کانال‌ها
Get PRO
اوت '23
+2 598
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
04 ژوئن+1
03 ژوئن+3
02 ژوئن+3
01 ژوئن+1
پست‌های کانال
Вам нужен Liquid Glass эффект в Compose Multiplatform?
Anonymous voting

2
⚙️ JetBrains выкатили статью в документации как использовать Liquid Glass эффект из iOS 26 и Compose на iOS. Всё сводится к б
⚙️ JetBrains выкатили статью в документации как использовать Liquid Glass эффект из iOS 26 и Compose на iOS. Всё сводится к более точечному встраиванию Compose экранов в iOS Controller и перекладывание навигации на нативные элементы. #Compose #iOS #iOS26 #LiquidGlass
1 868
3
Представлена альфа-версия 0.0.4 проекта адаптации Compose Multiplatform для ОС Аврора Проведена глубокая работа над инструмен+1
Представлена альфа-версия 0.0.4 проекта адаптации Compose Multiplatform для ОС Аврора Проведена глубокая работа над инструментарием, экосистемой и стабильностью фреймворка, чтобы разработчики могли комфортно создавать мобильные приложения для доверенной операционной системы используя привычный инструментарий — язык программирования Kotlin. Альфа-версия фреймворка Compose Multiplatform опубликована в репозитории mos.hub под открытой лицензией. Каждый желающий имеет возможность внести свой вклад и, тем самым, повлиять на развитие проекта. Главные изменения в альфа-версии 0.0.4 проекта адаптации Compose Multiplatform для ОС Аврора: Инструментарий разработчика • Aurora Build — Gradle-плагин для сборки проектов под ОС Аврора • Aurora Devices — Gradle-плагин для запуска приложений на устройстве и в эмуляторе Расширение возможностей фреймворка • Поддержка системного буфера обмена • Поддержка ресурсов • Поддержка локализации приложений Поддержка новых платформ для разработки • Добавлена поддержка Windows • Добавлена поддержка macOS (частичная) Экосистема и библиотеки • Новая библиотека для работы с D-bus из Kotlin и поддержка популярных библиотек build-konfig, datetime, kamel, kermit, koin, ktor и sqldelight Качество и стабильность • Исправлены проблемы с многопоточностью • Добавлена поддержка Unit и интеграционного тестирования. Все компоненты экосистемы Kotlin для ОС Аврора получают поддержку многоуровневого тестирования в рамках стабилизации Референсные приложения • Опубликовано референсное приложение StudentBox CMP Новая версия уже доступна для разработчиков.Пробуйте прямо сейчас — все примеры и API в документации. Хотите помочь проекту стать лучше? Присоединяйтесь к разработке на mos.hub. Мы открыты к вашему коду и экспертизе. Вместе мы сможем сделать инструмент максимально полезным для всего сообщества. Ссылка на репозиторий #АврораОС @AuroraDevelopers
2 933
4
Протестировал новый ввод на iOS из Compose 1.11.0. Становится нативнее по поведению, но вот надо проверять на iOS смартфоне т+1
Протестировал новый ввод на iOS из Compose 1.11.0. Становится нативнее по поведению, но вот надо проверять на iOS смартфоне тем кто им регулярно пользуется #Compose #iOS
3 008
5
‼️ Android View всё! Да здравствует Compose! Google официально объявила о переходе к стратегии «Compose-first» и прекращении
‼️ Android View всё! Да здравствует Compose! Google официально объявила о переходе к стратегии «Compose-first» и прекращении развития Android View, переводя его в режим поддержки. Что это значит: 👉 Классы android.widget.* в Android SDK будут находиться в режиме поддержки. 👉 Библиотеки Android Jetpack (включая RecyclerView) также переходят в режим поддержки. 👉 Все инструменты в Android Studio будут создаваться только для Compose. 👉 Документация будет писаться только для Compose, однако некоторые разделы про View останутся. 🔗 Источник - оф сайт Android Developers #Android #AndroidDev #Compose
3 908
6
⚙️ Compose Multiplatform 1.11.0 вышел Главные фичи: 1️⃣ Нативный text input на iOS через UIView, UITextInput и UIKeyInput (экспериментально) 2️⃣ v2 API для Compose UI-тестов на не-Android таргетах 3️⃣ Переписанный с нуля скроллинг на Web Breaking изменения, которые заденут почти всех: 👉 Минималка Kotlin поднята до 2.3.10 👉 Минимальная iOS теперь 14 (поддержка 13 ушла) 👉 iosX64 и macosX64 удалены полностью 👉 Shader на не-Android стал wrapper-классом Я ждал нативный input на iOS с того момента, как Compose туда заехал. Текущая реализация на Skia всегда чувствовалась чужой на ощупь, особенно при сложном выделении и системных меню. Надо пробовать! #compose #cmp #kotlin
5 557
7
⚙️ Compose 1.11: Composition host defaults — мелочь, важная для KMP В апрельском релизе Jetpack Compose под номером 1.11 в compose-runtime завезли четыре новых API: HostDefaultProvider, LocalHostDefaultProvider, HostDefaultKey и ViewTreeHostDefaultKey. Плюс билдер compositionLocalWithHostDefaultOf для авторов библиотек. Он позволяют объявить CompositionLocal, у которого дефолтное значение резолвится из окружения хоста — например, через Android View tag'и (как это делает ViewTreeLifecycleOwner или ViewTreeOnBackPressedDispatcherOwner). Раньше для такого паттерна была обязательна зависимость на compose-ui. Теперь только compose-runtime. Раньше чтобы из библиотеки достать значение из View tree, приходилось тянуть compose-ui ради LocalView и платформенные функции поиска по дереву View. Код жил в Android-сорсах, в commonMain такое не положишь: // androidMain — compose-ui + Android-only API val LocalMyOwner = compositionLocalOf<MyOwner?> { null } @Composable fun ProvideMyOwner(content: @Composable () -> Unit) { val view = LocalView.current val owner = remember(view) { view.findViewTreeMyOwner() } CompositionLocalProvider(LocalMyOwner provides owner) { content() } } С новым API описание CompositionLocal живёт в commonMain и тянет только compose-runtime. Связку с View tree описывает ViewTreeHostDefaultKey, и хост сам отдаёт значение через своего провайдера: // commonMain — только compose-runtime val MyOwnerKey = ViewTreeHostDefaultKey<MyOwner>( viewTagId = R.id.view_tree_my_owner ) val LocalMyOwner = compositionLocalWithHostDefaultOf(MyOwnerKey) // Использование — без изменений @Composable fun MyComponent() { val owner = LocalMyOwner.current // ... } Теперь авторы Compose библиотек могут держать определение CompositionLocal в общем модуле без зависимости на compose-ui. Профит - меньше транзитивных зависимостей в KMP-библиотеках и более чистое разделение слоёв runtime и UI. #Compose #CMP
5 125
8
👨🏻‍💻Разработчик сейчас не просто пишет код. От вас ждут проектирования процессов, принятия архитектурных решений и управле
👨🏻‍💻Разработчик сейчас не просто пишет код. От вас ждут проектирования процессов, принятия архитектурных решений и управления сложными системами. ☝️На открытом вебинаре разберём: ✔️ как меняется роль Kotlin-разработчика ✔️ почему сегодня важно уметь работать не только с кодом, но и с бизнес-процессами и ИИ-агентами ✔️ покажем, как подходить к проектированию бизнес-логики ✔️как строить управляемые системы ✔️как использовать Kotlin для создания гибких решений. 💡Обсудим, как современные инструменты позволяют одному специалисту закрывать задачи, которые раньше требовали команды. Это практический взгляд на развитие: от исполнителя к инженеру, который влияет на продукт и архитектуру. 🗓 Открытый вебинар 20 мая в 19:00 МСК в преддверии старта курса «Проектирование и разработка Kotlin-бэкенда». 🔗 Регистрация по ссылке Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
0
9
👨🏻‍💻Разработчик сейчас не просто пишет код. От вас ждут проектирования процессов, принятия архитектурных решений и управле
👨🏻‍💻Разработчик сейчас не просто пишет код. От вас ждут проектирования процессов, принятия архитектурных решений и управления сложными системами. ☝️На открытом вебинаре разберём: ✔️ как меняется роль Kotlin-разработчика ✔️ почему сегодня важно уметь работать не только с кодом, но и с бизнес-процессами и ИИ-агентами ✔️ покажем, как подходить к проектированию бизнес-логики ✔️как строить управляемые системы ✔️как использовать Kotlin для создания гибких решений. 💡Обсудим, как современные инструменты позволяют одному специалисту закрывать задачи, которые раньше требовали команды. Это практический взгляд на развитие: от исполнителя к инженеру, который влияет на продукт и архитектуру. 🗓 Открытый вебинар 20 мая в 19:00 МСК в преддверии старта курса «Проектирование и разработка Kotlin-бэкенда». 🔗 Регистрация по ссылке Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
0
10
⚙️ FlexBox Layout в Jetpack Compose 1.11.0 - построение динамической сетки из компонентов В составе androidx.compose.foundati
⚙️ FlexBox Layout в Jetpack Compose 1.11.0 - построение динамической сетки из компонентов В составе androidx.compose.foundation:layout 1.11.0 появился компонент FlexBox. Компоновка на основе правил CSS Flexbox. Поддерживает перенос элементов (wrap), веса (weight), выравнивание по главной и поперечной осям. Сразу вышел с поддержкой Compose Multiplatform. FlexBox( modifier = Modifier.fillMaxWidth(), config = { flexDirection = Row flexWrap = Wrap justifyContent = SpaceBetween } ) { repeat(items.size) { index -> Text( text = items[index], modifier = Modifier.weight(1f) ) } } 🔗 Анонс в блоге Android Developers 🔗 API Reference #Compose #CMP
4 904
11
⚙️ splashify - библиотека для интеграции splash экрана в приложении на Compose Desktop #Compose #Desktop
⚙️ splashify - библиотека для интеграции splash экрана в приложении на Compose Desktop #Compose #Desktop
4 158
12
⚙️ Новинка Compose 1.11: неленивый Grid До сих пор для сеток у нас были только ленивые LazyVerticalGrid / LazyHorizontalGrid.+1
⚙️ Новинка Compose 1.11: неленивый Grid До сих пор для сеток у нас были только ленивые LazyVerticalGrid / LazyHorizontalGrid. Но если все элементы уже в памяти (небольшое количество) и нужен точный контроль над расположением ячеек — пригождается новый экспериментальный Grid. // Пример Grid(config = { column(100.dp) column(1.fr) // забирает остаток строки row(50.dp) row(80.dp) gap(8.dp) }) { Box(Modifier.gridItem().fillMaxSize()) { ... } Box(Modifier.gridItem().fillMaxSize()) { ... } Box(Modifier.gridItem().fillMaxSize()) { ... } Box(Modifier.gridItem().fillMaxSize()) { ... } } Работает на Android и KMP (iOS, Desktop, Web) – общий API 🔗 Документация по Grid #Compose #KMP #Android #iOS #Desktop #Web #CMP
3 971
13
🤖 Styles API в Compose: революция в кастомизации UI До недавнего времени стилизация компонентов в Compose делалась через параметры Composable функции (color = ..., padding = ...) или модификаторы. Это работало, но могло приводить к: 👉 избыточным рекомпозициям при смене состояний; 👉 дублированию кода для разных вариаций кнопок/карточек; 👉 сложностям с анимацией переходов между стилями. Google представил Styles API (экспериментальный, о причинах такого статуса ниже) — новый подход, вдохновлённый CSS. Ключевые возможности 1️⃣ Производительность Стили вычисляются на этапах layout и drawing, минуя composition. Это значит, что изменение стиля (например, при наведении) не вызывает рекомпозицию родительских компонентов. 2️⃣ Работа с состояниями Без кучи if/else и animate*AsState. Просто описываете стиль для каждого состояния (нажат, сфокусирован, включён, ошибка и т.д.). 3️⃣ Встроенные анимации Переходы между состояниями анимируются автоматически с физическими параметрами (демпфирование, жёсткость). Не нужно писать Animatable или Transition. // Пример использования стиля // Определяем стиль для кнопки val buttonStyle = Style { default { backgroundColor = Color.Blue shape = RoundedCornerShape(8.dp) } pressed { backgroundColor = Color.DarkBlue scale = 0.98f } disabled { backgroundColor = Color.Gray alpha = 0.5f } } // Используем Button( onClick = { /* ... */ }, style = buttonStyle, // ← вместо кучи параметров enabled = isEnabled ) { Text("Нажми меня") } style — новый параметр, который появляется у всех компонентов Material 3 и базовых (Box, Row, Column). ⚠️ Styles API не заменяет модификаторы Модификаторы остаются для позиционирования, кликов, размеров. Styles API заменяет только внутреннюю стилизацию (цвета, формы, тени, отступы внутри компонента). Это как разделение «темы» и «вёрстки». API остаётся экспериментальным пока на него полностью не перейдет Material 3 Compose, чтобы учесть все необходиcмоти API и не делать breaking changes. По работе оно уже стабильно, но вот изменения в коде, возможно, будут. 🔗 Официальная документация В целом с таким подходом уже привыкли работать в Android XML Layout, то почему бы сразу было его не использовать? Тем более в Compose плюсы очевидны! 💬 Пробовали уже играться со Styles API? Как вам идея отделить стили от композиции? Делитесь мнениями в комментариях 👇 #Compose #Material
3 718
14
// Пример использования LookaheadAnimationVisualDebugging( overlayColor = Color(0x4AE91E63), isEnabled = true, multipleMatchesColor = Color.Green, isShowKeylabelEnabled = false, unmatchedElementColor = Color.Red, ) { SharedTransitionLayout { CompositionLocalProvider( LocalSharedTransitionScope provides this, ) { // your content } } } #Compose
3 173
15
⚙️ Отладка shared element анимаций в Compose 1.11 стала проще. Появилась функция LookaheadAnimationVisualDebugging, визуализи
⚙️ Отладка shared element анимаций в Compose 1.11 стала проще. Появилась функция LookaheadAnimationVisualDebugging, визуализирующая анимацию #Compose
3 453
16
⚙️ Кажется, проблема с обёртками для Preview в Compose наконец-то решена нормально — без копипаста на каждый файл. В Compose 1.11.0 завезли новый интерфейс PreviewWrapper и аннотацию @PreviewWrapperProvider. Идея простая: вместо того чтобы оборачивать каждый Preview в свою тему, CompositionLocalProvider, моки навигации и прочее, ты один раз описываешь обёртку и просто навешиваешь её аннотацией. Выглядит это так: class ThemeWrapper : PreviewWrapper { @Composable override fun Wrap(content: @Composable () -> Unit) { JetsnackTheme { content() } } } @PreviewWrapperProvider(ThemeWrapper::class) @Preview @Composable private fun ButtonPreview() { Button(onClick = {}) { Text("Demo") } } Сценарии где может пригодиться: 👉 встроить тему в превью 👉 подложить FakeNavController или LocalActivity 👉 обернуть в Hilt/Koin провайдер с тестовыми зависимостями 👉 прокинуть моки через CompositionLocal Раньше для этого либо городили собственную функцию и вызывали её руками в каждом превью, либо писали кастомные @Preview аннотации с ограниченным набором параметров. ‼️ ВАЖНО: фича работает только в Android Studio Panda 4 и выше. В более старых версиях аннотация просто проигнорируется. 💬 Уже успели опробовать? Делитесь впечатлениями и насколько жизнь стала удобнее #compose #jetpackcompose #android
0
17
ИИ помогает писать код, но результат всё ещё зависит от Вас! 🗓 Открытый вебинар 6 мая в 19:00 МСК в преддверии старта курса
ИИ помогает писать код, но результат всё ещё зависит от Вас! 🗓 Открытый вебинар 6 мая в 19:00 МСК в преддверии старта курса «Проектирование и разработка Котлин-бэкенда» На вебинаре покажем: 🤖как выстраивать разработку на Котлин 🤖где человек управляет процессом 🤖где архитектурные шаблоны задают основу 🤖как ИИ-агенты ускоряют выполнение задач. Вы увидите реальный процесс: от подготовки структуры проекта до создания рабочего функционала. Разберём: 🤖как ставить задачи агентам 🤖где автоматизация даёт сбои 🤖как разработчик сохраняет контроль над системой. Это не теория про будущее разработки, а практическая модель работы, которая уже используется в проектах. ➡️ Принять участие: по ссылке Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
0
18
⚙️ Jetpack Compose 1.11 — стабильный релиз! 🚀 Что нового: 👉 Визуальная отладка переходов Shared Elements 👉 Переработанная
⚙️ Jetpack Compose 1.11 — стабильный релиз! 🚀 Что нового: 👉 Визуальная отладка переходов Shared Elements 👉 Переработанная поддержка трекпадов — теперь работают как мышь и распознают жесты 👉 Preview Wrappers для более быстрой работы с превью 👉 Host Defaults для KMP-проектов 👉 Testing APIs v2 для корутин 👉 Экспериментальные API: Styles, MediaQuery, Grid, FlexBox Подробности по каждому пункту — отдельными постами в @compose_broadcast #Compose #Android #AndroidJetpack
0
19
⚙️ Navigation3 1.1.0 стабилен Самое интересное из нового: поддержка Shared Elements между экранами. Теперь достаточно обернуть NavDisplay в SharedTransitionLayout и передать scope: SharedTransitionLayout { NavDisplay( backStack = backStack, sharedTransitionScope = this ) } Второе большое добавление — SceneDecoratorStrategy. Отдельный интерфейс для декорирования сцен общими UI-элементами или для шаринга состояния между ними. Логика декорирования теперь отделена от логики выбора сцены в SceneStrategy. Type safe metadata DSL через MetadataKey. Больше не нужны строковые ключи — типы значений описаны статически. Готовые NavMetadataKey позволяют задавать анимации переходов прямо в entryProvider: entry<ScreenC>( metadata = metadata { put(NavDisplay.TransitionKey) { slideInVertically { it } togetherWith fadeOut() } } ) { ... } #compose #navigation3 #jetpack
0
20
HowSwan - быстрое обновление Composable на реальном устройстве. Доступно как плагин для Android Studio Я выбрал другой путь -
HowSwan - быстрое обновление Composable на реальном устройстве. Доступно как плагин для Android Studio Я выбрал другой путь - делаю СMP проект с поддержкой Android + Desktop JVM и так можно быстро проверять + делать код чище. #Compose
0