Telegram Web
#Blog #Compose

The Composable node tree

Новая статья из блога Effective Android от Jorge Castillo. На этот раз автор разбирает как создается и хранится в памяти дерево Node-ов в Compose.
4🔥3👍1
​​#Article #Medium #Animation

Creating a particle explosion animation in Jetpack Compose

Canvas + немного математики = интересная анимация с эффектом взрыва частиц на Compose.
Как это работает — в сегодняшней статье.
🔥26
#Article #Medium #Compose #Glance

Taking Compose Glance Widgets under control

Автор статьи рассказывает о том, как можно создать Android-виджет при помощи библиотеки Glance Compose, а также как организовать настройку и обновление каждого экземпляра виджета по отдельности.
👍5
​​#Release #Compose #Changelog

Compose Release Digest (18.03 — 18.04)

Традиционный дайджест по основным изменениям релизов библиотек фреймворка за последний месяц, среди которых:

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.4.4 — 1.4.5)
▫️Добавлена поддержка версий Kotlin 1.8.20.
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.4.0 — 1.4.1)
▫️Поправлена проблема в работе ParentDataModifier с AndroidView. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.5.0-alpha01 — 1.5.0-alpha02)
▫️AnimatedContent
APIs (а также scaleIn и scaleOut) теперь stable, а AnimatedContentScope переименован в AnimatedContentTransitionScope. (Подробнее)
▫️Появился новый экспериментальный API — SubcomposeLayout. (Подробнее)
▫️Text и BasicText переехали на новую систему Modifier-ов. Обещают, что это должно положительно повлиять на производительность и при этом нам не придется ничего в коде менять. Такое мы любим. (Подробнее)
▫️Добавлена поддержка verticalArrangement в FlowRow и horizontalArrangement в FlowColumn. (Подробнее)
▫️Исправлена проблема, связанная с крашем ModalBottomSheetLayout при смене ориентации. (Подробнее)
▫️В Modifier.Nodes добавлены возможности получать доступ к coroutineScope (для запуска корутин) и CompositionLocals (для работы с общими данными). (Подробнее тут и тут)
▫️LookaheadLayout заменён на LookaheadScope, и это теперь не layout, а обертка над контентом, который нужно анимировать. (Подробнее)
... и много всего ещё.

Также были обновлены и различные дополнения Compose, а именно:

▫️constraintlayout-compose обновлен до версии 1.1.0-alpha09
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.2.0-alpha08
▫️Compose Material 3 (Material You) обновлен до версии 1.1.0-beta02

❗️P.S. Обратите внимание, что при обновлении версии compiler до 1.4.5, необходимо поднять версию Java аж до 17. Правда это требование у комьюнити не прижилось, и поэтому уже в следующем релизе compiler-а (1.4.6) снова будет Java 11.
🎉 P.S.S. Ну и конечно же, главная новость этого месяца, о которой трубят буквально из каждого утюга — Compose Multiplatform теперь официально на iOS. A сам KMM в Stable обещают уже в 2024 году.
👍9❤‍🔥1
​​#Article #Blog #Compose

Google’s account switcher with Jetpack Compose

Пример реализации фичи переключения Google аккаунта (как в Gmail) в приложении при помощи Compose.
Кому интересно, код на GitHub можно глянуть тут.
👍53🔥2❤‍🔥1
​​#Medium #Article #Compose

Understand Drawing Arc of A Path In Jetpack Compose Canvas

Начинаем рабочую неделю сразу с интересного — рисование нестандартных фигур при помощи Canvas Path в Jetpack Compose.
👍9❤‍🔥11
​​#Medium #Article #Canvas #Compose

Learn Jetpack Compose Canvas Cubic and Quadratic Bezier And Its Usage

В продолжение предыдущей статьи, на этот раз автор рассказывает про рисование более сложных фигур с использованием квадратичных и кубических кривых Безье. И всё это на Compose Canvas.
👍62❤‍🔥1
#Article #Medium #Compose

ViewCompositionStrategy Demystified

Существует такое непростое, но весьма важное понятие в Compose, как ViewCompositionStrategy. Если вкратце — это различные стратегии, используемые ComposeView и AbstractComposeView для определения того, когда и как должна очищаться композиция.

В статье автор разбирает что ViewCompositionStrategy из себя представляет, а также рассказывает о том, как правильно выбрать подходящую стратегию для конкретного UseCase-а.
👍10❤‍🔥11
#реклама

Онлайн-мероприятие Kaspersky Tech «Выйти в open source и нанести всем пользу». Начало 24 мая 16.00 по мск

На примере популярного open source фреймворка для тестирования пользовательского интерфейса Android расскажем, какой путь предстоит пройти контрибьюторам и какие подводные камни их могут ждать.

Что дает Kaspresso:

- Стабильность: устраняет flakyness тестов: они не ломаются на N+1й попытке

- Ускорение библиотек тестов пользовательского интерфейса: некоторые команды UI Automator выполняются в 10 раз быстрее

- Читаемость кода, читаемость логов: код делается значительно короче и читабельнее, а сам фреймворк пишет собственные и подробные логи

- Перехватчики: свои перехватчики поведения Kaspresso для обработки сбоев, чтобы добавлять настраиваемые действия и преодолеть ненадежные операции

- Конфигурируемость: можно самостоятельно настроить любую часть Kaspresso

Регистрируйтесь по ссылке на сайте: https://kas.pr/b54o
❤‍🔥1👍1
#Article #Medium #Recomposition #Compose

Exercises in futility: Jetpack Compose Recomposition

Очередная полезная статья на тему рекомпозиции. В данном случае автор на простом примере разбирает неочевидные кейсы, в которых может происходить излишняя рекомпозиция, а также дает советы по её избежанию.
3🆒3👍2❤‍🔥1
Мы тут с ребятами собрали "Джентльменский набор мобильного разработчика" — 8 полезных Telegram каналов разной тематики, связанные с мобильной разработкой.

Сохраняйте папку для удобства — https://www.tgoop.com/addlist/k3QvI6MeX49kMjhi

P.S. если вдруг ссылка не открывается, проверьте, что ваш Telegram-клиент обновлен до последней версии.
🔥4👎3❤‍🔥1
​​#Release #Compose #Changelog

Compose Release Digest (19.04 — 02.06)

Традиционный дайджест по основным изменениям релизов библиотек фреймворка за последние полтора месяца, среди которых:

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.4.6 — 1.4.7)
▫️Добавлена поддержка версии Kotlin 1.8.21.
▫️Требуемая версия Java понижена с 17 до 11.
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.4.2 — 1.4.3)
▫️Исправлена проблема, при которой AndroidView мог отображаться неверно при использовании с некоторыми модификаторами. (Подробнее)
▫️Исправлен баг, из-за которого клавиатура не отображалась для текстовых полей внутри диалогов, не созданных через Dialog composable. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.5.0-alpha03 — 1.5.0-beta01)
▫️Изменено дефолтное поведение SubcomposeLayout в LookaheadScope, внутри которого нет условных slot-блоков (как TabRow, Scaffold или BoxWithConstraints), что позволяет ему лучше работать с lookahead анимациями.
▫️В AnimatedContent добавлена поддержка contentKey. (Подробнее)
▫️В ходе рефакторинга значительно сокращено количество выделений памяти в рекомпозиции, анимациях и AndroidComposeView. (Подробнее)
▫️FlowColumn/FlowRow теперь inline. (Подробнее)
▫️LazyStaggeredGrid API теперь stable. (Подробнее)
▫️Добавлены FlowRowScope и FlowColumnScope для дочерних элементов FlowRow и FlowColumn соответственно. (Подробнее)
▫️Добавлен экспериментальный модификатор Modifier.animateItemPlacement() для анимирования изменения/переупорядочивания позиций элементов при работе с LazyStaggeredGrid. (Подробнее)
▫️В BasicText добавлен отдельный лямбда-параметр color. Спорное решение, но, по заявлению разработчиков, это позволит эффективнее задавать цвет текста, а также его анимировать. (Подробнее)
▫️В методы DrawScope.drawText, Paragraph.paint и MultiParagraph.paint добавлен параметр BlendMode для поддержки различных алгоритмов смешивания при рисовании текста на Canvas. (Подробнее).
▫️TextMeasurer и связанные с ним API больше не являются экспериментальными. (Подробнее).
... и много всего ещё.

Также были обновлены и различные дополнения Compose, а именно:

▫️constraintlayout-compose обновлен до версии 1.1.0-alpha10
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версий 1.0.0-alpha05 и 1.2.0-beta01
▫️Paging-Compose обновлен до версии 1.0.0-alpha20
▫️Compose Material 3 (Material You) обновлен до версии 1.2.0-alpha02
👍1143❤‍🔥1
#GoogleIO #Featured #AndroidDevelopers #JetpackCompose

[Eng] Debugging Jetpack Compose

Чрезвычайно полезное видео с прошедшего Google I/O 2023, в котором разбирается такая тема как отладка Jetpack Compose. Почему происходит (или не происходит) рекомпозиция, как оптимизировать производительность экрана, а также как обычный лог может сам стать причиной рекомпозиции — обо всем этом в сегодняшнем видео.
🔥91❤‍🔥1🎉1
​​#Libs #Compose

Compose Sensors — удобная обёртка над Android Sensor API для работы с датчиками в Jetpack Compose.

P.S. Решил добавить новую рубрику на канал, которая будет посвящена различным библиотекам из мира Jetpack Compose. Таким образом и вы не пропустите какое-нибудь полезное решение от комьюнити, и контента на канале станет больше.
👍192❤‍🔥1🔥1
Всем привет! За последние несколько месяцев к каналу присоединилось много новых людей, а поэтому я думаю нам стоит еще раз немного познакомиться.

Меня зовут Григорьев Дмитрий, я автор канала Mobile Compose, а также, как и многие из вас, мобильный разработчик, который видит огромный потенциал в Jetpack Compose. Периодически выступаю с докладами на конференциях, и (реже) пишу статьи.

Mobile Compose — это не только канал о Compose, но еще и вполне активно развивающееся сообщество. Нас уже больше 1700, и на этом мы не останавливаемся. Спасибо вам за поддержку!

Также напоминаю, что у нас есть чатик, в котором вы можете задать интересующий вопрос, или наоборот, поделиться полезной информацией с другими — @mobile_compose_chat.
🔥22👍81❤‍🔥1🆒1
#GoogleIO #Featured #AndroidDevelopers #JetpackCompose

What's new with TV and intro to Compose

Еще одно видео с прошедшего Google I/O 2023, на этот раз с разбором возможностей интеграции Compose в разработку приложений для TV. Даже куски кода с новым API показали.
👍4❤‍🔥1
#Article #Habr #Compose

Осознанная оптимизация Compose

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

Любопытное наблюдение: в последнее время стало явно заметно, что после появления у многих проблем с доступом к Medium, стремительно активизировался поток статей про Compose на Habr.
👍14🔥3❤‍🔥21
​​#Предложка #Libs #Compose

Подборка Compose библиотек от подписчика (Часть 1)

Не так давно на канале запустилась новая рубрика с разбором различных Compose библиотек, и вот один из подписчиков (@B1ays) поделился в нашем чате своим рекомендуемым списком:

▫️Compose Markdown — добавляет элемент MarkdownText(), имеющий полную поддержку формата Markdown.
▫️Compose Shimmer — добавляет модификатор .shimmer(), создающий у элемента эффект мерцания (аналог Shimmer от Meta).
▫️Material Motion compose — реализация motion system для Compose.
▫️ColorPicker compose — добавляет элементы ImageColorPicker (для выбора цвета с изображения) и HsvColorPicker (колесо выбора цвета).
▫️Landscapist — загрузка изображений полученных из сети в Compose интерфейсе. Умеет работать с Glide, Picasso и Fresco.
▫️Camposer — Compose обёртка для API камеры. Предоставляет возможность быстрой интеграции камеры в приложение

Напоминаю, что у нас есть чат, где каждый из вас также может предложить что-нибудь интересное, или же просто получить ответ на интересующий вопрос — @mobile_compose_chat.
🔥13❤‍🔥1👍1🆒1
#GoogleIO #Featured #AndroidDevelopers #JetpackCompose

[Eng] Advanced state and side effects in Jetpack Compose

Большое видео от ребят из Google, посвященное работе со State и Side Effects API в Jetpack Compose. Тема достаточно важная для понимания, поэтому рекомендую к просмотру.
👍7❤‍🔥2🔥2
​​#Предложка #Libs #Compose

Подборка Compose библиотек от подписчика (Часть 2)

Продолжение предыдущего поста о Compose библиотеках:

▫️Charty и Vico — библиотеки для работы с графиками и диаграммами разных видов.
▫️Pagecurl — добавляет эффект "книжной страницы" при перелистывании.
▫️Orbital — содержит различные анимации (к примеру, shared element transition).
▫️Seeker — добавляет свою реализацию SeekBar с высоким уровнем кастомизации.
▫️Compose Rich Editor — добавляет полностью кастомизируемый редактор Rich Text
▫️Rebugger (плагин для IDE) — библиотека для отладки UI, позволяющая отслеживать рекомпозиции, а так же причины которые их вызывают. Информацию выводит в Logcat.
❤‍🔥8👍6🔥62🎉2🆒1
2025/07/13 15:32:05
Back to Top
HTML Embed Code: