ch
Feedback
Mobile Compose

Mobile Compose

前往频道在 Telegram

Твой главный путеводитель в мир Jetpack Compose и Compose Multiplatform. Android XR: @android_xr Личный блог: @grigorievdy_blog Автор: @grigorievdy Поддержать канал: https://t.me/mobile_compose?boost

显示更多
2 992
订阅者
无数据24 小时
-27
+630
帖子存档
​​#Libs #Compose Compose Sensors — удобная обёртка над Android Sensor API для работы с датчиками в Jetpack Compose. P.S. Решил добавить новую рубрику на канал, которая будет посвящена различным библиотекам из мира Jetpack Compose. Таким образом и вы не пропустите какое-нибудь полезное решение от комьюнити, и контента на канале станет больше.

#GoogleIO #Featured #AndroidDevelopers #JetpackCompose [Eng] Debugging Jetpack Compose Чрезвычайно полезное видео с прошедшего Google I/O 2023, в котором разбирается такая тема как отладка Jetpack Compose. Почему происходит (или не происходит) рекомпозиция, как оптимизировать производительность экрана, а также как обычный лог может сам стать причиной рекомпозиции — обо всем этом в сегодняшнем видео.

​​#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

Мы тут с ребятами собрали "Джентльменский набор мобильного разработчика" — 8 полезных Telegram каналов разной тематики, связа
Мы тут с ребятами собрали "Джентльменский набор мобильного разработчика" — 8 полезных Telegram каналов разной тематики, связанные с мобильной разработкой. Сохраняйте папку для удобства — https://t.me/addlist/k3QvI6MeX49kMjhi P.S. если вдруг ссылка не открывается, проверьте, что ваш Telegram-клиент обновлен до последней версии.

#Article #Medium #Recomposition #Compose Exercises in futility: Jetpack Compose Recomposition Очередная полезная статья на тему рекомпозиции. В данном случае автор на простом примере разбирает неочевидные кейсы, в которых может происходить излишняя рекомпозиция, а также дает советы по её избежанию.

#реклама Онлайн-мероприятие Kaspersky Tech «Выйти в open source и нанести всем пользу». Начало 24 мая 16.00 по мск На примере
#реклама Онлайн-мероприятие Kaspersky Tech «Выйти в open source и нанести всем пользу». Начало 24 мая 16.00 по мск На примере популярного open source фреймворка для тестирования пользовательского интерфейса Android расскажем, какой путь предстоит пройти контрибьюторам и какие подводные камни их могут ждать. Что дает Kaspresso: - Стабильность: устраняет flakyness тестов: они не ломаются на N+1й попытке - Ускорение библиотек тестов пользовательского интерфейса: некоторые команды UI Automator выполняются в 10 раз быстрее - Читаемость кода, читаемость логов: код делается значительно короче и читабельнее, а сам фреймворк пишет собственные и подробные логи - Перехватчики: свои перехватчики поведения Kaspresso для обработки сбоев, чтобы добавлять настраиваемые действия и преодолеть ненадежные операции - Конфигурируемость: можно самостоятельно настроить любую часть Kaspresso Регистрируйтесь по ссылке на сайте: https://kas.pr/b54o

#Article #Medium #Compose ViewCompositionStrategy Demystified Существует такое непростое, но весьма важное понятие в Compose, как ViewCompositionStrategy. Если вкратце — это различные стратегии, используемые ComposeView и AbstractComposeView для определения того, когда и как должна очищаться композиция. В статье автор разбирает что ViewCompositionStrategy из себя представляет, а также рассказывает о том, как правильно выбрать подходящую стратегию для конкретного UseCase-а.

​​#Medium #Article #Canvas #Compose Learn Jetpack Compose Canvas Cubic and Quadratic Bezier And Its Usage В продолжение предыдущей статьи, на этот раз автор рассказывает про рисование более сложных фигур с использованием квадратичных и кубических кривых Безье. И всё это на Compose Canvas.

​​#Medium #Article #Compose Understand Drawing Arc of A Path In Jetpack Compose Canvas Начинаем рабочую неделю сразу с интересного — рисование нестандартных фигур при помощи Canvas Path в Jetpack Compose.

​​#Article #Blog #Compose Google’s account switcher with Jetpack Compose Пример реализации фичи переключения Google аккаунта (как в Gmail) в приложении при помощи Compose. Кому интересно, код на GitHub можно глянуть тут.

​​#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 году.

#Article #Medium #Compose #Glance Taking Compose Glance Widgets under control Автор статьи рассказывает о том, как можно создать Android-виджет при помощи библиотеки Glance Compose, а также как организовать настройку и обновление каждого экземпляра виджета по отдельности.

​​#Article #Medium #Animation Creating a particle explosion animation in Jetpack Compose Canvas + немного математики = интересная анимация с эффектом взрыва частиц на Compose. Как это работает — в сегодняшней статье.

#Blog #Compose The Composable node tree Новая статья из блога Effective Android от Jorge Castillo. На этот раз автор разбирает как создается и хранится в памяти дерево Node-ов в Compose.

​​#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

#Article #Medium #Compose [Eng] How to Handle Automatic Content Resizing when keyboard is visible in Jetpack Compose Неплохая статья с разбором того, как можно адаптировать контент приложения под открытие/закрытие клавиатуры на Compose.

​​#conf #compose #реклама 10 сезон Podlodka Android Crew (03.04 — 07.04) Совсем скоро планируется 10 (!) юбилейный сезон Podlodka Android Crew (в котором существенную долю докладов будет занимать Compose) и сейчас ребята находятся в активном поиске спикеров. Если ты или твой знакомый хотите выступить, то смело отправляйте заявку через форму. В форме уже есть подготовленный список интересных тем (если хочется выступить, но пока нет идей), однако вы также всегда можете предложить свою.

#Featured #AndroidDevelopers #MADSkills #YouTube [Eng] Constraints and modifier order Очередной видеоролик про базовые практики в Compose из серии MAD Skills, в котором на этот раз разбирается как работает цепочка модификаторов (Modifiers) в Compose, а также почему так важен порядок их применения.

#Article #Blog #OpenSource Maps Compose Library Tutorial for Android: Getting Started В феврале 2022 года Google выпустила библиотеку Maps Compose (набор composable функций с открытым исходным кодом для упрощения интеграции с Google Maps, а также различных типов данных, связанных с Maps SDK). О том, как работать с этой библиотекой на примере приложения GeoMarker — в сегодняшней статье.

#Article #Medium #Performance #Profiling #Compose Optimize or Die. Profiling and Optimization in Jetpack Compose Интересная статья от разработчиков из IceRock, в которой они: ▫️рассказывают о своём опыте профилирования приложения на Compose, ▫️разбирают метрики, на которые стоит обратить внимание, ▫️делятся советами по исправлению выявленных проблем.