Mobile Compose – Telegram
Mobile Compose
2.91K subscribers
134 photos
4 videos
315 links
Твой главный путеводитель в мир Jetpack Compose и Compose Multiplatform.

Android XR: @android_xr
Личный блог: @grigorievdy_blog

Автор: @grigorievdy

Поддержать канал: https://news.1rj.ru/str/mobile_compose?boost
Download Telegram
#Medium #Article #Compose #Migration

[Eng] Jetpack Compose Migration: Best Practices and Strategies

В статье автор делится своим опытом полной миграции существующего приложения на Compose с разделением всего процесса на отдельные фазы, а также описывает возможные проблемы, с которыми можно столкнуться на этом пути и предлагает варианты их решений.
👍5🔥2
#Article #Medium #Performance #Profiling #Compose

Optimize or Die. Profiling and Optimization in Jetpack Compose

Интересная статья от разработчиков из IceRock, в которой они:
▫️рассказывают о своём опыте профилирования приложения на Compose,
▫️разбирают метрики, на которые стоит обратить внимание,
▫️делятся советами по исправлению выявленных проблем.
🔥51
#Article #Blog #OpenSource

Maps Compose Library Tutorial for Android: Getting Started

В феврале 2022 года Google выпустила библиотеку Maps Compose (набор composable функций с открытым исходным кодом для упрощения интеграции с Google Maps, а также различных типов данных, связанных с Maps SDK). О том, как работать с этой библиотекой на примере приложения GeoMarker — в сегодняшней статье.
👍111🔥1
#Featured #AndroidDevelopers #MADSkills #YouTube #Video

[Eng] Constraints and modifier order

Очередной видеоролик про базовые практики в Compose из серии MAD Skills, в котором на этот раз разбирается как работает цепочка модификаторов (Modifiers) в Compose, а также почему так важен порядок их применения.
👍5🔥1
​​#conf #compose #реклама

10 сезон Podlodka Android Crew (03.04 — 07.04)

Совсем скоро планируется 10 (!) юбилейный сезон Podlodka Android Crew (в котором существенную долю докладов будет занимать Compose) и сейчас ребята находятся в активном поиске спикеров. Если ты или твой знакомый хотите выступить, то смело отправляйте заявку через форму. В форме уже есть подготовленный список интересных тем (если хочется выступить, но пока нет идей), однако вы также всегда можете предложить свою.
🔥5👍1👎1
​​#Release #Compose #Changelog

Compose Release Digest (16.01 — 17.03)

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

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.4.0 — 1.4.3)
▫️Добавлена поддержка версий Kotlin 1.8.10.
🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.4.0-rc01)
▫️reverseLayout теперь добавлен и в LazyStaggeredGrid. (Подробнее).
▫️Добавлено новое переиспользуемое AndroidView API. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.4.0-alpha05 — 1.4.0-beta02)
▫️Несколько API для TextStyle (такие как LineBreak и Hyphens) а также FocusRequester теперь stable. (Подробнее тут и тут)
▫️Исправлен баг с нарушением работы TextField курсора и Modifier.basicMarquee при отключении анимации в системе. (Подробнее тут и тут)
▫️Для ClickableText добавлен экспериментальный параметр onHover. (Подробнее)
▫️В ComposeTestRule в качестве расширения для waitUntil API добавлены еще несколько экспериментальных вызовов — waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists и waitUntilDoesNotExist. (Подробнее)
▫️Параметр BlendMode добавлен для DrawScope.drawText, Paragraph.paint, MultiParagraph.paint. (Подробнее)
▫️Много мелких изменений в Swipeable API из BottomSheetScaffold. (Подробнее).
... и много всего ещё.

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

▫️constraintlayout-compose обновлен до версии 1.1.0-alpha08
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.2.0-alpha06
▫️Paging-Compose обновлен до версии 1.0.0-alpha18
▫️Compose Material 3 (Material You) обновлен до версии 1.1.0-alpha08
👍7🔥2
#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/Runtime/UI (1.4.0 — 1.4.1)
▫️Поправлена проблема в работе ParentDataModifier с AndroidView. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/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://news.1rj.ru/str/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/Runtime/UI (1.4.2 — 1.4.3)
▫️Исправлена проблема, при которой AndroidView мог отображаться неверно при использовании с некоторыми модификаторами. (Подробнее)
▫️Исправлен баг, из-за которого клавиатура не отображалась для текстовых полей внутри диалогов, не созданных через Dialog composable. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/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
👍1243❤‍🔥1
#GoogleIO #Featured #AndroidDevelopers #JetpackCompose

[Eng] Debugging Jetpack Compose

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