Compose Broadcast @compose_broadcast Channel on Telegram

Compose Broadcast

@compose_broadcast


Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast

Compose Broadcast (Russian)

Новый канал "Compose Broadcast" - это ваш источник всей информации о Jetpack Compose и Compose Multiplatform. Если вы увлечены мобильным разработкой на платформе Android, то этот канал станет вашим главным помощником. Вы найдете здесь самые свежие новости, туториалы, и советы по использованию Jetpack Compose и Compose Multiplatform.

Кроме того, в нашем канале есть ссылки на YouTube канал, где вы можете найти еще больше полезной информации. Не упустите шанс узнать все об этой удивительной технологии.

Кто мы? Мы - сообщество разработчиков, которые разделяют общую страсть к мобильной разработке на Android. Наша цель - помочь вам освоить Jetpack Compose и Compose Multiplatform, делая вашу разработку более эффективной и увлекательной.

Не упустите возможность присоединиться к нам и быть в курсе всех последних новостей и разработок в мире Jetpack Compose и Compose Multiplatform. Присоединяйтесь к нам на нашем Telegram канале @compose_broadcast и не упустите ни одной важной информации! Android - @android_broadcast, iOS - @ios_broadcast, Kotlin - @kotlin_broadcast.

Compose Broadcast

18 Feb, 17:29


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

#compose

Compose Broadcast

18 Feb, 09:00


⚡️ Пройди тест по Flutter и проверь, готов ли ты к обучению на курсе?

После теста вы получите:
🔥 Записи лучших открытых уроков курса
🔥 Cкидку на курс «Flutter Mobile Developer» от OTUS

🗓 Срок обучения: 5 месяцев

На курсе:

научитесь создавать современные кроссплатформенные приложения с помощью Flutter,
создадите свой аналог Telegram, CoinMarketCap, Todoist
ждут практические домашние задания, которые помогут вам в реализации проектной работы.

➡️ ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Compose Broadcast

14 Feb, 11:11


Статья(EN,8м) с реализацией подобного UI на. Compose

🔗 Ссылка без VPN

#compose

Compose Broadcast

14 Feb, 04:53


⚙️ Важные улучшения в Compose Multiplatform 1.8.0

Вышла третья альфа Compose 1.8.0 и там появилось много интересного:
👉 Вся кодовая база переехала на Kotlin K2 компилятор
👉 Появился мультиплатформенный BackHandler и PredicitiveBackHandler (ну наконец-то)
👉 Обновление на Skia m132
👉 ClipboardManager заменят на новый интерфейс Clipboard
👉 Поддержка VoiceControl на iOS
👉 Compose теперь корректно работает с UIScrollView

#compose #k2 #kmp

Compose Broadcast

13 Feb, 06:00


⚙️ Инструкция(EN,2м) по реализации анимации прогресса двигающихся точек на Compose

🔗 Ссылка без VPN

#compose #анимация

Compose Broadcast

12 Feb, 19:29


⚙️ Готовится к релизу Compose 1.8.0 - вышла Beta 2

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

#compose

Compose Broadcast

12 Feb, 19:28


⚙️ Вышел Jetpack Compose 1.7.8 c исправилением креш в BasicTextField

Новый compose BOM - 2025.02.00

#compose

Compose Broadcast

12 Feb, 12:02


Пример реализации mesh градиентов в Compose. Код найдете в статье(EN,5м)

#compose

Compose Broadcast

10 Feb, 06:56


Kelp - плагин для Android Studio, который улучшает интеграцию собственной дизайн системы на Jetpack Compose.

Что умеет плагин:
👉 Задать иконки для Composable функции в автокомплите
👉 Превью иконок в автодополнении
👉 Превью цветов из дизайн систем
👉 Генерация превью Composable функций в KDOC
👉 Создание live templates

Вся настройка происходит через сохранение json файла, а также есть Gradle плагин

#compose #androidstudio

Compose Broadcast

10 Feb, 06:00


⚙️ Как сделать маски произвольной формы на Compose (EN, 3м)

Для решения задачи берется PNG маски, Modifier.drawWithContent() и BlendMode

🔗 Ссылка без VPN

#compose

Compose Broadcast

08 Feb, 08:53


📹 Decompose шаг за шагом. Часть 1 (1.5ч)

Обзор основных компонентов библиотеки Decompose, демонстрация на примере простого приложения как можно использовать разные её компоненты и возможности.

📹 Также можно посмотреть на VK Video

#compose #kmp #decompose

Compose Broadcast

08 Feb, 08:37


Why Not Compose! - репозиторий-сборник с примерами реализаций анимаций, композици и UI на Jetpack Compose

#android #compose #анимация

Compose Broadcast

05 Feb, 15:22


Decomposer - приложения для десктопа, чтоб изучать внутренности Jetpack Compose. Позволяет
👉 Смотреть IR структуру вашего приложения
👉 Смотреть структуру композиции вашего приложения

Подробности использования в статье(EN,11м) и ссылка без VPN

#compose #инструменты

Compose Broadcast

05 Feb, 09:00


🔥 Хотите писать функциональный и выразительный код?

Приглашаем на открытый вебинар, где вы научитесь создавать доменно-специфические языки на Kotlin и узнаете, как сделать код компактным, выразительным и удобным для решения узкопрофильных задач.

🗓 Когда: 11 февраля в 19:00 мск
🧑‍💻 Спикер: Сергей Прощаев, ведущий инженер-Java-разработчик в компании ПАО «Сургутнефтегаз».

➡️ Регистрируйтесь на вебинар и получите скидку на большое обучение «Kotlin Backend Developer. Professional».

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Compose Broadcast

04 Feb, 14:13


Пример миграции в Compose с Modifier.pullToRefresh на PullToRefreshBox из Material3

#compose #android

Compose Broadcast

03 Feb, 16:09


Статья(EN,4м) с обзором как нарисовать вот такой график сна на Compose

🔗 Ссылка без VPN

#compose

Compose Broadcast

01 Feb, 10:00


📹 Testing | Jetpack Compose Tips (EN, 5 мин)

Compose превью помогают быстро проверять компоненты во время разработки, а с помощью Gradle-плагина для тестирования скриншотов превью можно автоматизировать визуальные регрессионные тесты. Для тестирования поведения теперь доступен новый API – DeviceConfigurationOverride, который позволяет эмулировать различные конфигурации устройств без необходимости запускать несколько эмуляторов для полного набора тестов.

#compose #androidstudio #инструменты #android

Compose Broadcast

31 Jan, 12:00


⚙️ Одна из полезных оптимизаций для работы Compose - использование аннотации @NonRestartableComposable, которая сообщает Compose: «Не перезапускать эту функцию, даже если родительский компонент обновился».

Когда использовать?
Функция является обёрткой над другой 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 функции меняется

#composable #оптимизации

Compose Broadcast

30 Jan, 08:56


⚙️ Вышла первая beta Jetpack Compose 1.8.0

Подробности изменений тут
👉 Animation
👉 Foundation
👉 Material
👉 Runtime
👉 UI

#compose

Compose Broadcast

30 Jan, 08:51


⚙️ Вышел Jetpack Compose 1.7.7 c исправление багов

Подробности изменений
👉 Animation
👉 Foundation
👉 Material
👉 Runtime
👉 UI

#compose

Compose Broadcast

29 Jan, 03:12


Вышел Haze 1.3.0 - библиотека для размытия в стиле glassmorphism для Compose MP

Что нового:
👉 Добавлен эффект радиального прогрессивного размытие
👉 Поддержка Brush в tint
👉 Больше примеров использования

#compose #kmp

Compose Broadcast

27 Jan, 06:37


⚙️ Optimize App Performance By Mastering Stability in Jetpack Compose (EN, 20м)

Очень подробный гайд по тому, как оптимизировать производительность приложения через использование стабильных типов для меньшего числа рекомпозиций.

Разбираются:
👉 Что такое Stable тип
👉 Как происходит рекомпозиция
👉 Restartable и Skippable Composable функции
👉 Compose Compiler Metrics
👉 Аннотации Immutable и Stable
👉 Аннотация NonRestartableComposable
👉 Как стабилизировать Composable функции
👉 Strong Skipping Mode

#compose #производительность

Compose Broadcast

25 Jan, 07:34


🔨 Разница между Compose Multiplatform и Jetpack Compose

На сайте 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

Compose Broadcast

23 Jan, 20:27


Начиная с IntelliJ IDEA 2025.1 EAP можно запускать адекватное Compose Preview прямо из commonMain и без всяких костылей 🌚

youtrack

Compose Broadcast

23 Jan, 13:41


Composition Local - удобный механизм Compose, позволяющий передать значения всем вложенным Composable функциями и переопределять его. Если еще не успел с ним познакомиться - читайте статью (EN,10м) и официальную документацию

#compose

Compose Broadcast

22 Jan, 14:00


Пример отрисовки SVG в Compose (EN,6м)

#compose

Compose Broadcast

22 Jan, 12:00


Как на Compose сделать (EN, 4м) красивый Edge-toEdge UI на всех версиях Android - используйте правильную настройку Activity и применяйте Modifier.windowInsetsPadding(WindowInsets.systemBars)

#compose #android #edgetoedge

Compose Broadcast

19 Jan, 11:31


Composable Preview Scanner - библиотека для автоматической генерации кода скриншот тестов из Composable Preview на основе популярных библиотек: Paparazzi, Roborazzi, Shot, Dropshots, Android-Testify и др.

По заявление автора, обладает большими возможностями чем Showkase и Compose Preview Screenshot Testing (находится в разработке)

#compose #тестирование

Compose Broadcast

18 Jan, 13:23


Вышел Haze 1.2.0 разных зон эффектов, что позволяет сделать наложение как на картинке

Также произошло переименование API
👉 Modifier.haze -> Modifier.hazeSource
👉 Modifier.hazeChild -> Modifier.hazeEffect
👉 HazeChildScope -> HazeEffectScope

#compose #kmp

Compose Broadcast

14 Jan, 08:02


Пример реализации сворачивающегося текста на Compose. Жалко анимацию не добавили

#compose

Compose Broadcast

14 Jan, 07:34


Aspecto - компонент для расположения элементов UI по сетке для Compose Multiplatform под Android и iOS

Что умеет:
👉 Сохранять соотношение сторон элементов
👉 Умное распределение элементов
👉 Адаптивность к разным размерам экранов

#compose #android #ios

Compose Broadcast

13 Jan, 07:05


Библиотека для погружения пользовтаеля в UI приложения на Jetpack Compose

#compose #android

Compose Broadcast

13 Jan, 06:56


Open Source шаблон для нового KMP проекта для Android и iOS: Clean Arch, MVVM, Koin, Ktor, SqlDelight, Coil

Compose Broadcast

10 Jan, 06:00


Довольно большой обзор(EN,19м) как работает плагин Kotlin компилятора Jetpack Compose для генерации кода Composable функций

#compose

Compose Broadcast

09 Jan, 16:30


Руководство(EN,7м) по интеграции Google AdMob в Compose Multiplatform на Android и iOS через common код. По итогу делают обертку над View из платформенной библиотеки

#compose #kmp #admob #android #ios

Compose Broadcast

09 Jan, 11:13


Статья от Google(EN,7м) по интеграции CameraX в Compose UI

Первая часть гайда в которой освещается настройка библиотеки и использование превью камеры. Интеграция других возможностей будет в следующих частях

#android #камера #jetpack #camerax #compose

Compose Broadcast

27 Dec, 18:15


Итоги 2024 года для 🔨 @compose_broadcast

Пора отдохнуть и набраться сил в эти новогодние праздники! Вся команда проекта уходит на каникулы. Увидимся с вами в 2025!

Compose Broadcast

27 Dec, 11:22


Shimmer Animation in Jetpack Compose Without Recomposition (EN,5м)

Очень хорошая статья с демонстрацией как рабочие решения, взятые из интернета, стоит проверять через инструменты и оптимизировать. Замена передачи Brush как экземпляра на получение Brush через лямбду позволило повысить производительность!

#compose #оптимизация

Compose Broadcast

27 Dec, 09:23


Руководство (EN,10М) по интеграция Navigation Rail для компактных экранов (смартфоны) и больших (планшеты, десктопы)

#compose

Compose Broadcast

25 Dec, 12:00


Чтобы ваш LazyColumn работал эффективно, используйте ключ для идентификации элемента в ячейки списка

val yourList: List<Item> = ...
LazyColumn {
items(items = yourList, key = { it.id }) { item ->
ItemUI(item)
}
}


Это позволит получить повышение скорости работы списка, лучшее сохранение состояния, а UI плавнее. Подробности в статье (EN,3м)

#compose #производительность

Compose Broadcast

25 Dec, 09:00


Облако — это конструктор!

The Art of Programming — подкаст об ​​инструментах, технике и разработке ПО. По следам конференции HighLoad 2024 записали новый выпуск, в котором обсуждаем индустрию публичных облаков.

Вместе с Данилой Дюгуровым, CTO MTC Web Services, говорим о новостях индустрии, создании новых облачных платформ, потенциале рынка и принципах формирования топовых команд разработки.

🎧Слушайте The Art of Programming на всех популярных подкаст-площадках.

#реклама

Compose Broadcast

23 Dec, 09:12


🎉 Compose Hot Reload уже скоро появится

Если вы не знали, то JetBrains во всю делает прототип решения и уже есть рабочее решение. Пока только для Desktop, но будем ждать лучше. В статье (EN,10м) происходит демонстрация возможностей и рассказывается про принципы работы.

Кажется, что Flutter останется без одного своего преимущества перед Compose

#compose #desktop

Compose Broadcast

20 Dec, 11:10


Вышел Compose Multiplatform 1.7.3

Что нового
⚙️ Поддержка K2 режима для Compose плагина в IDEA
🛠 Исправленив в iOS
⬆️ Обновление до Jetpack Compose 1.7.6 и других свежих версий Jetpack библиотек

#compose

Compose Broadcast

18 Dec, 15:06


Канал @compose_broadcast перешёл черту в 5 000 подписчиков 🎉🎉🎉

Compose Broadcast

13 Dec, 10:25


#Tip #Compose

💡 Знаете ли вы?

Compose имеет встроенную функцию LoremIpsum, которая поможет сгенерировать вам тестовую строку необходимой длины для Preview и сэкономить вам время при разработке.

Compose Broadcast

12 Dec, 04:23


⚙️ Вышел Jetpack Compose 1.7.6 с исправлениям багов и улучшениями: поправили работы с TalkBack, удалили экспериментальную аннотацию SemanticsPropertyReceiver.invisibleToUser() и другие

#compose

Compose Broadcast

11 Dec, 13:05


⚙️ Статический анализ Compose кода

Рекомендую всем настроить правила статического анализа кода с Compose. Позволит избежать ошибок и подскажет полезное. Набор правил можно подключить к Detekt или KtLint.

#compose

Compose Broadcast

11 Dec, 11:37


Вышел Haze 1.1 (Compose MP наложение блюра) с возможностью масштабирования с уменьшением контента для ускорения обработки

#compose

Compose Broadcast

11 Dec, 11:10


Пройдите тест по Compose Modifier от KtAcademy и проверьте свои знания

В комментариях делитесь вопросами что у вызвали непонимание, а также результатами теста

#квиз #compose

Compose Broadcast

10 Dec, 06:00


Серия статей как работает анимация Compose под капотом

1️⃣ API анимации в Compose
2️⃣ Как на основе кадров рассчитывается значение элементов во время анимации

#анимация #compose

Compose Broadcast

09 Dec, 16:10


Инструкция по реализации анимации показа подсказки у поля ввода в Compose

#compose

Compose Broadcast

09 Dec, 14:06


Пример как в Compose делать иконки, которые зависят от платформы

#compose

Compose Broadcast

07 Dec, 16:37


⚙️ Jetpack Compose как unbundled-библиотека. Скорость UI vs. Гибкость разработки (13м)

Опыт миграции приложения Дринкит с View на Compose. Рассказывается про значительное увеличение время первого открытия экрана и причину этого - поставка Compose отдельно от системы.

Ребята боролись с медленными запусками через оптимизации и лайфхаки, особенно интересным показался прогрев ComposeView через ContentProvider, чтобы сделать максимально рано на старте приложения, вплоть до запуска экрана во время splash 🤯.

Одной из причин тормозов - приложение было частью на View, часть на Compose и первым экраном user flow был View экран, а вот при старте с Compose экрана становится лучше. Полный Compose убирает многие тормоза из-за раннего "прогрева" кода

Лучший способ поддержать Макса, автора статьи, - подписку на его блог @mobilefiction

#compose #android

Compose Broadcast

28 Nov, 14:01


⚙️ Вышел Kotlin 2.1 и с ним новый Compose Compiler

👉 Несколько файлов конфигурации стабильных типов
👉 Приостанавливаемая композиция.Экспериментальная функция.
👉 Изменение поведения open, abstract и overriden Composable функций. Они больше не будут restartable. Теперь всегда будут приводить к рекомпозиции родителя.
👉 Ускорение компиляции

#kotlin #compose

Compose Broadcast

28 Nov, 04:42


📹 Clipping and masking | Jetpack Compose Tips (4м)

#compose

Compose Broadcast

26 Nov, 06:54


⚙️ Пример (5м) использоваться Modifier.graphicsLayer() для изменения вида и наложения эффектов. Исходники на GitHub

#compose

Compose Broadcast

24 Nov, 10:05


⚙️ Compose Libraries - портал для поиска Compose библиотек с поддержкой KMP и без

#compose

Compose Broadcast

24 Nov, 07:00


Хотите узнать, что нужно знать о макросах и генерации кода через Mason Bricks?

📚 Приглашаем на открытый вебинар "Макросы и другие помощники Dart/Flutter" от OTUS

🗓 Когда: 26 ноября в 20:00 мск
🔴 Зарегистрироваться на вебинар

Вы узнаете:
👉 внутреннее устройство и применение макросов для избежания ручного запуска генерации кода
👉 возможности генерации кода на основе шаблонов с mason bricks для быстрого создания целых приложений и их частей
👉 как можно расширить сборку через build hooks и автоматически создавать dart-код из чего угодно

🎁 Все участники открытого урока получат скидку 15% на курс "Flutter Mobile Developer"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Compose Broadcast

23 Nov, 08:53


Пример использования корутин в Compose для блокировки перехода на другой экран с цель ожидания проверки подтверждения от пользователя

Читайте полную статью на канале Леши Панова @adept_notes

#compose #coroutines

Compose Broadcast

22 Nov, 09:00


Ищем автора эталонного кода! 💎

Если вы уверены, что вашему коду подходит звание «Эталонный», а вам — звание «Автор самого красивого кода», то приглашаем принять участие в Конкурсе красоты кода 2.0 и выиграть классные призы от Сбера: iPhone 16 и умную колонку SberBoom.

Опытные эксперты определят победителей в пяти категориях: Backend, Frontend, DevOps, AI и Mobile, — а награждение пройдёт на ключевом IT-событии HighLoad в Москве, 2 и 3 декабря.

Больше 40 участников прошлого конкурса стали частью команды Сбера. Возможно, следующим станете именно вы — переходите по ссылке и изучайте подробности!

#реклама

Compose Broadcast

22 Nov, 07:10


⚙️ Как создать свой Compose Modifier (EN,5м)

Статья с обзором создания собственного Modifier в Compose одним из способов:
⚙️ composed { }
⚙️ @composable modifier factory
⚙️ Modifier.Node API

#compose

Compose Broadcast

21 Nov, 12:00


Какие различия между iOS и Android в области технологий и пользовательского опыта?

🔥 Узнайте ответ в новом выпуске Sravni Podcast «IOS vs Android. Большая битва платформ»

Подкаст доступен на разных площадках:
📹 YouTube
📺 RUTUBE
🎵 Яндекс Музыка

Также в выпуске:
◾️ Состояние мобильной разработки — есть ли кризис?
◾️ Развитие разработчиков для iOS и Android: полезные материалы и практики
◾️ Превосходство Android Studio над XСode?
◾️ Когда наступит кроссплатформенное будущее?

Реклама. ООО «Сравни.ру» ИНН: 7710718303

Compose Broadcast

21 Nov, 10:45


В продолжение статьи автор сделал замер скорости от использования лямбды вместо простого значения в Composable функции. Результаты в статье, а коротко под спойлером
Уменьшилось количество потерь кадров на 30% и сокращения расхода оперативки больше чем на 1 Мбайт в среднем 🤯

#compose #производительность

Compose Broadcast

19 Nov, 12:00


⚙️ Важный совет по ускорению Compose

Порой вместо передачи значения в Composable функцию лучше делать это через лямбду, так как это не приведет к рекомпозицям. Лучший пример - Modifier.offset. В статье как раз демонстрируется какой эффект оказывает описанный подход

#compose #производительность

Compose Broadcast

19 Nov, 06:00


⚙️ JetBrains сделала Hot Reload для Compose Desktop не хуже чем в Flutter

Добились этого благодаря использованию специальной JVM с поддержкой переопределения классов, доступной в JetBrains Runtime.

В 📹 видео (EN,6м) происходит демонстрация

Пока всё в экспериментальном режиме, но результаты радуют ❤️. Когда же уже Compose MP превью в IDE будет работать из коробки

#compose #desktop #jvm #idea #androidstudio

Compose Broadcast

18 Nov, 12:00


Composable Screens - приложение с демонстрацией сложных интерфейсов, реализованных на Compose UI.

#пример #compose

Compose Broadcast

18 Nov, 07:50


⚙️ 📹 Как использовать Graphics Layer в Compose для добавления визуальных эффектов

#compose

Compose Broadcast

18 Nov, 06:00


🚀 Библиотека для интеграции Bottom Sheets из Material 3 в Jetpack Navigation Compose

#compose #навигация #material3

Compose Broadcast

17 Nov, 09:40


⚙️ Анимированное лого Airbnb в Jetpack Compose

Статья с реализацией анимирования лого Airbnb. Используется SVG логотип и происходит анимация по его точкам

#compose #android #анимация

Compose Broadcast

14 Nov, 09:25


🐱 Libre-Sudoku - open-source Android приложение на Jetpack Compose ⚙️ и Material 3

#пример #android #compose #material3

Compose Broadcast

13 Nov, 17:04


Вышел Compose Multiplatform 1.7.1
🚀 Улучшения производительности
🛠 Исправлена бинарная совместимость на JVM
🛠 ИСправлены баги
⬆️ Обновились до Jetpack Compose 1.7.5 и других свежих библиотек

#compose #kmp #jvm

Compose Broadcast

12 Nov, 06:00


💡 Preview Driven Development - новый подход к разработке Android-приложений

Концепция предлагает активно использовать превью-компоненты для тестирования и разработки интерфейсов и функций. Вот в чем суть:

👉 Jetpack Compose Previews позволяют не просто просматривать, но и тестировать функции на этапе разработки. Это упрощает процесс, снижает количество ошибок и дает визуальное представление всех состояний приложения.

👉 Мини-приложения для тестирования — каждый превью-компонент можно использовать как изолированное мини-приложение. Это значит, что тестировать отдельные элементы приложения можно без полной сборки и запуска.

👉 Автоматизация тестов — с помощью таких инструментов, как Emerge Snaphots, можно автоматизировать процесс проверки UI. Это делает разработку более стабильной и ускоряет релиз новых версий.

Для тех, кто хочет упрощать разработку и избегать неожиданных багов, Preview Driven Development — отличный инструмент! 💻

Исходники приложения доступны на 🐱 GitHub

#android #androidstudio #compose #автотесты

Compose Broadcast

11 Nov, 14:48


Статья(EN,5м) с примером реализации центрированного слайдера

#compose #виджет

Compose Broadcast

11 Nov, 14:39


Compose Swift Bridge от TouchLab - инструмент для Compose MP разработчиков. Генерирует 🦢 Swift код для делегации вызовов Compose функций в нативных iOS View.

Исходный код на 🐱 GitHub

#kmp #ios #compose #touchlab

Compose Broadcast

09 Nov, 16:42


Вышел Haze 1.0 - Compose Multiplatform библиотека для блюра в UI. Нужна версия Compose 1.7.0

‼️ Если использовали предыдущие версии, то в 1.0 произошли изменения API

🐱 Исходники на GitHub

#compose #android #ios #desktop

Compose Broadcast

07 Nov, 05:07


🇺🇸 Рисуем SVG в Compose Great Again

Сегодня расскажу, как можно нарисовать сложный рисунок в Compose, если у вас есть SVG файл. А именно как распарсить SVG файл в удобные для нас Path и отрисовать их “руками”.

🔍 Парсинг SVG: Мы загружаем SVG файл с помощью XmlPullParser, который читает каждый элемент. В каждом path элементе хранится информация о том, как рисовать фигуру — всё закодировано в атрибуте d. Этот атрибут содержит команды типа "M" (move to), "L" (line to), "C" (curve to) и координаты. Вместе они формируют контур, который и станет нашим рисунком.

🛠️ Конвертация Path: Здесь проблема. В Compose пока нет метода для декодирования пути напрямую из d атрибута SVG.

Но мы сделаем конвертацию Great Again! Мы сначала создаём старый добрый Path из androidx.core.graphics (через метод createPathFromPathData), а потом конвертируем его в Compose Path с помощью asComposePath. Немного костыльно, но работает.

Теперь, когда мы всё распарсили и конвертировали, можем просто отобразить это в Compose.

Я выложил пример на GitHub, где вы можете посмотреть, как это работает. В этом проекте пярмо то, что изображено на видосе, какая-то карта и какие-то непонятные области.

P.S. Да, нажатия сделаны не совсем идеально — попадание внутрь Path осуществляется по bounding box, а не точно по форме. Но это уже отдельная задача, а здесь у нас фокус на отрисовке! 😎

💬 А что интересного вы рисовали в Compose?

#compose #svg

Compose Broadcast

06 Nov, 09:00


😍 Игровой стол Ergostol Ultima от Ergostol для вашего удобства

Уникальный в своем дизайне игровой компьютерный стол с RGB подсветкой Ergostol Ultima это совершенно новый уровень комфорта.

Преимущества стола:
электрическая регулировка высоты позволяет поднять или опустить стол в диапазоне от 74 до 122 см
выравнивающиеся ножки: адаптируются к самому неровному полу или поверхности
пульт управления столом (управление столом, настройка RGB-подсветки и type-C для быстрой зарядки ваших устройств )
держатель для напитков в комплекте: для кружек или стаканов с напитками
удобный крюк на раме для сумки, рюкзака или наушников
вырез сзади для кронштейна монитора: позволяет установить компьютерный стол вплотную к стене
подсветка и коврик для мыши в комплекте
два цвета моделей: черный и белый

👉 Еще больше моделей столов вы найдете на сайте Ergostol

❗️По промокоду ANDROID10 вы получите скидку на все товары в вашей корзине

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Compose Broadcast

05 Nov, 18:43


Если хотите сделать такое форматирование с Compose, то обратите внимание на библиотеку Compose Rich Editor

#compose

Compose Broadcast

05 Nov, 10:14


🔥 Открытый урок "Используем GPU для создания настоящего 3D-движка в Flutter" от OTUS

🗓 Когда: 6 ноября в 20:00 мск
👉 Регистрация по ссылке

❗️На уроке вы создадите простой 3D-движок и разработаете простую игру в виртуальном 3D-мире.

Спикер: Дмитрий Золотов — опытный Flutter+Kotlin Developer в Yandex, FullStack разработчик (Flutter/Python/Kotlin/GoLang/C++), преподаватель

🎁 Всем участникам дадим скидку на основной курс.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Compose Broadcast

05 Nov, 05:39


Вышел загрузчик изображений Coil 3.0 c поддержкой 🏝Kotlin Multiplatform. Теперь помимо 🤖 Android поддерживается iOS, JVM, JS и WASM. Подробнее тут

Что еще нового:
❗️ Изменился пакет с io.coil-kt на io.coil-kt.coil3
👉 Можно выбрать библиотеку для работы с сетью: OkHttp или Ktor
👉 Улучшили работы с Compose Preview
Убрали загрузку Android ресурсов через android.resource://example.package.name/drawable/image
❗️ По умолчанию размер декодированной картинки не будет превосходить размер 4096 на 4096
❗️ Работу с Coil 2 Parameters API заменил на Extras
🛠 Важные улучшения и исправления

Новая версия требует внесения изменения в код. Подробное руководство читайте в руководстве по миграции

#kmp #сеть #картинки #compose

Compose Broadcast

04 Nov, 09:40


Пример создания паралакс эффекта в Compose

#анимация #compose

Compose Broadcast

04 Nov, 07:52


Короткая статья с описанием того как под капотом устроена работа Compose чтобы модифицировать код с Composable аннотациями и привести его к исполняемому виду

#подкапотом #compose

Compose Broadcast

31 Oct, 10:49


Вышел Jetpack Compose 1.7.5

Compose Bom для новой версии androidx.compose:compose-bom:2024.10.01

Compose Broadcast

31 Oct, 04:30


📺 Видео от Android Developers (4м) про использование Modifier.anchoredDraggable для перемещения компонентов UI

#compose

Compose Broadcast

30 Oct, 16:59


Yandex MapKit KMP SDK - библиотека обертка над Yandex Map Kit для Android и iOS

Поддерживает несколько способов взаимодействия для обеспечения постепенной интеграции в приложение. Можно вынести логику в Kotlin common код и иcпользовать нативный UI или взять реализацию на Compose Multiplatform

Больше подробностей смотрите в статье

#yandex #карты #kmp #android #ios

Compose Broadcast

30 Oct, 06:43


Статья (9м) с реализацией виджета выбора даты на Compose

#compose

Compose Broadcast

28 Oct, 06:00


📺 Performance: Perfetto Traceviewer (7 мин)

Хорошее видео чтобы понять как работать с Perfetto и анализировать трейсы Android системы

#инструменты

Compose Broadcast

27 Oct, 19:10


Интересная статья где автор показывает как с помощью инструментов Perfetto и Diffetto искать проблемы в работе Composable функций

#compose #производительность #android

Compose Broadcast

27 Oct, 18:18


Как добавить поддержку Predictive Back Gesture в Compose читайте в статье

#compose #анимация #android14

Compose Broadcast

25 Oct, 09:00


📱 Мобильная разработка изнутри: команда Яндекса выпустила мини-сериал «Мобилка»

❤️ Команда мобильной разработки Яндекса совместно с IT-блогером Алексеем Гладковым представили новый мини-сериал о закулисье создания мобильных приложений.

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

На протяжении четырех эпизодов зрители погружаются в дискуссии команды: от выбора между Kotlin и Flutter для кроссплатформенной разработки до построения архитектуры приложения с учетом опыта таких проектов как Яндекс Браузер и Кинопоиск.

🔥 Особое внимание уделяется тому, как устроена командная культура: зрители увидят, как в Яндекс Еде выстраивают процессы разработки, как работает вечерняя школа тимлидов и как команды справляются с неизбежными трудностями при запуске новых фич. А в завершение авторы делятся исходным кодом созданного в процессе съемок приложения на GitHub.

📱 Все четыре эпизода уже доступны на канале Yandex for Mobile.

Compose Broadcast

21 Oct, 06:36


Если вы делает приложения для десктопа с возможность использования из трея, то библиотека Compose Native Tray может помочь вам писать там UI на Compose. Поддержка #windows, #macos, #linux

#desktop

Compose Broadcast

18 Oct, 07:01


Библиотека с нестандартными прогрессами для Compose: шестеренки и пазл

#compose

Compose Broadcast

18 Oct, 04:36


📺 Адаптивные layout в Compose

Изучите принципы создания адаптивных макетов в Compose, следуя системе phase, с примерами пользовательских макетов, используя советы и рекомендации по воплощению дизайна в жизнь.

0:00 Введение
0:23 Этапы и адаптивные layout
5:06 Проверка корректности первой демонстрации
6:53 Subcomposition
7:37 Информация о размерах на уровне окна
8:23 Custom Layout
17:39 Cхема решения

#compose

Compose Broadcast

17 Oct, 06:17


Вышел Jetpack Compose 1.7.4 c исправлением багов в Foundation и UI

#compose #android

Compose Broadcast

16 Oct, 17:24


Compose for iOS в версии 1.7.0 + Kotlin 2.0.20 ускорили

#compose #ios #производительность

Compose Broadcast

16 Oct, 09:56


Что нового в Compose Multiplatform 1.7.0 для iOS
👉 Базовая поддержка курсора
👉 Настройка status bar из ComposeUIViewControllerDelegate
👉 Лучшая работа с обработкой жестов между Compose UI и interop view
👉 Новые API UIKitView и UIKitViewController
👉 Базовая поддержка BasicTextField2

#compose #ios

Compose Broadcast

16 Oct, 09:50


Вышел Compose Multiplatform 1.7.0
👉 Jetpack Navigation с поддержкой Safe Args и Shared Element Transitions
👉 LocalLifecycleOwner переехал в lifecycle-runtime-compose и может быть использовать вне Compose UI
👉 Поддержка WindowSizeClass в Compose MP
👉 Адаптивные layout в Compose MP (также навигация)
⬆️ Требуется Android Gradle Plugin 8.1.0 или выше
👉 Compose MP ресурсы на Android теперь хранятся в ассетах
API для работы с ресурсами в compose.ui сделали deprecated. Используйте Compose Resources API
👉 Поддержка Kotlin 1.9.25
🛠 Исправление багов и улучшения

Изменения на GitHub

#compose #multiplatform

Compose Broadcast

15 Oct, 11:05


Статья с введением в UI тесты на Jetpack Compose, кажется полезным если вы не хотите читать документацию на английском

#compose #тестирование

Compose Broadcast

14 Oct, 07:00


Статья с реализацией подобной анимацией в Compose

#анимация @compose_broadcast

Compose Broadcast

14 Oct, 06:36


"Как из Леруа Мерлен сделали Лемана Про" (13м) - история ребрендинга приложения о том как меняли, цвета, строки, работу с Deep Link и другие части Android и iOS приложений

#compose #uikit #android #ios #swiftui

Compose Broadcast

10 Oct, 16:54


В следующей версии Android Studio уберут Motion Editor 🤯, как часть процесса миграции с XML UI на Jetpack Compose. Используйте Compose Animation Preview (говорится что это более продвинутый инструмент)

#androidstudio #compose #анимация

Compose Broadcast

07 Oct, 12:25


Texty - библиотека для создания различных эффектов с текстом в Compose Multiplatform

#kmp #android #ios #desktop #js #wasm