Telegram Web
#Article #Medium

How To Handle ViewModel One-Time Events In Jetpack Compose

Автор статьи разбирает такую тему, как обработка one-time событий в приложении с Compose, а также сравнивает классический подход с использованием библиотеки Compose-State-Events.

P.S. Для тех, кому неудобно читать в текстовом варианте, добавил также видеоверсию материала.
3👍1🔥1
#Featured #AndroidDevSummit #Video #Compose

Reimagining designer-developer handoff: Introducing Relay

Одним из самых ярких анонсов Google с прошедшего Android Dev Summit однозначно стал Relay — новый UI инструмент для перевода моделей дизайна из Figma в код Jetpack Compose, а также их дальнейшей синхронизации. Подробнее о том, как работает новинка — в небольшом видеодокладе с конференции.

A также:
🔸Страница Relay на developer.android.com
🔸Страница Relay на material.io
👍41👏1
#Featured #AndroidDevSummit #Video #Compose

UI improvements in Compose

Значительная часть докладов на прошедшем AndroidDevSummit была посвящена различным аспектам работы с UI в Jetpack Compose.

Собрал для вас все видео в одном месте:

🔸Reimagining designer-developer handoff: Introducing Relay — презентация инструмента Relay (подробнее о нём рассказывал ранее).

🔸5 quick animations to make your Compose app stand out — краткая демонстрация пяти простых анимаций, которые гарантированно улучшат восприятие вашего приложения.

🔸Styling text in Compose — примеры стилизации текста при помощи Material API.

🔸Write your first Compose UI test — введение в написание вашего первого UI теста для Compose.

🔸Material You in Compose apps — знакомство с Material 3 Jetpack Compose библиотекой (которая теперь Stable), а также разбор миграции с Material 2.

🔸State of the art of Compose tooling — знакомство с инструментами Compose Tooling в Android Studio, а также разбор примеров работы с ними.

🔸Custom layouts and graphics in Compose — большой (по сравнению с остальными) доклад по созданию собственных layout-ов в Compose.
🔥9👍4
#Featured #AndroidDevSummit #Video #Compose

Compose Modifiers deep dive

Доклад от небезызвестного Leland Richardson, в котором он предлагает глубже погрузиться в историю модификаторов Compose, а также связанных с ними проблем и ограничений. Ну и самое интересное, рассказывает об изменениях Modifier API — как о тех, на которые уже переехали в версии 1.3, так и о тех, которые добавят в 1.4.
👍3🔥1
А ещё, совсем недавно мы преодолели очень важную цифру — 1000 человек на канале 🔥

Практически за два года мы выросли с нуля до самого большого ресурса в Telegram, полностью посвященного Compose. И это, безусловно, наша общая победа.

Спасибо за поддержку, будем держать планку и развиваться дальше!
🔥25👍4🎉2👎1
​​#Release #Compose #Changelog

Compose Release Digest (13.10 — 12.11)

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

🔹RC/Stable🔹

🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.3.0 — 1.3.1)
▫️Добавлены экспериментальные функции LazyVerticalStaggeredGrid и LazyHorizontalStaggeredGrid.
▫️Исправлены проблемы производительности BeyondBoundsLayout. (Подробнее)
▫️Добавлен компонент Pull-To-Refresh. (Подробнее)
▫️Максимально поддерживаемое значение elevation для диалогов и popup-ов уменьшено до 8dp.
▫️Добавлено новое экспериментальное API — Modifier.Node (как более производительная альтернатива Modifier.composed).

🔹Alpha/Beta🔹

🔸🔸Compose Compiler (1.4.0-alpha01)
▫️Исправлена работа компилятора с K/JS версии 1.7.20
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.4.0-alpha01 — 1.4.0-alpha02)
▫️Добавлены WindowInsets.imeAnimationSource и WindowInsets.imeAnimationTarget для определения прогресса анимации и работы с IME. (Подробнее)
▫️В компоненты BasicText/BasicTextField/Text/TextField/OutlinedTextField добавлен параметр minLines для контроля их минимальной высоты на основе количества строк. (Подробнее тут и тут)
▫️Метод forEachGesture() теперь deprecated в пользу awaitEachGesture(). (Подробнее)
▫️SnapshotStateList и SnapshotStateMap теперь имеют явные реализации в виде методов toList() и toMap(). (Подробнее)
▫️Для TextStyle/SpanStyle/Paragraph/MultiParagraph добавлен экспериментальный атрибут DrawStyle для дополнительной настройки текста . (Подробнее)
▫️В Modifier.Node добавлен метод invalidateSubtree() для возможности удаления целых иерархий для отрисовки (Подробнее).

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

▫️Paging-Compose обновлен до версии 1.0.0-alpha17
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.1.0-rc01
▫️Compose Material 3 (Material You) обновлен до версий 1.0.1 и 1.1.0-alpha02
👍8🔥1
#Article #Medium #Animation

Making Jellyfish move in Compose: Animating ImageVectors and applying AGSL RenderEffects

Любопытная статья, в которой автор показывает как можно создать нетривиальную анимацию медузы (!!!), по пути охватывая такие темы как:
▫️Создание кастомных ImageVectors из SVG
▫️Частичная анимация ImageVector
▫️Применение эффекта шума к Composable при помощи AGSL RenderEffect
🥰5👍41
#WearOS #Release #Compose #Blog

Compose for Wear OS 1.1 is now stable: check out new features!

Команда разработчиков Google представили новую стабильную версию Compose for Wear OS — 1.1.0.

Среди изменений:
▫️Новые версии компонентов Chip и Button с обводкой
▫️Возможность модификации формы Chip и Button
▫️Новый экспериментальный Placeholder API
▫️Дополнительные параметры в CurvedTextStyle, а также ещё много улучшений UX и accessibility.
👍71
#Medium #Article #Android13

Android 13 Photo Picker With The Activity Result API and Jetpack Compose

Одним из нововведений Android 13 стал новый Photo Picker — системный инструмент, позволяющий по новому взглянуть на процесс выбора фотографий из хранилища. О том, как интегрировать эту фичу с Compose, в сегодняшней статье.
А для тех, кому удобнее смотреть в видеоформате, приложил и видео.

P.S. После небольшого перерыва я снова в деле, а значит на канале будет больше публикаций 😎
🔥8👍5🫡1
🎄Подводим итоги 2022 года🎄

📈 За этот непростой год канал Mobile Compose добился вот такой статистики:

👤 +425 подписчика (+68%)
👀 64 424 просмотров материалов
↪️ 648 репостов

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

В наступающем году на канале грядут перемены к лучшему (больше публикаций, новые рубрики). Также есть идеи для нового проекта, который планирую запустить в 2023. В общем, как говорится, оставайтесь на связи.🙂

Желаю вам карьерных успехов, удачи, мира, а также внутреннего и окружающего спокойствия.
С наступающим!🎁

(С) Григорьев Дмитрий

#Offtop
🎉15👍62👎1🍾1
#Medium #Article #Compose

Tooltips for Jetpack Compose: Improve User Experience to the Next Level

Всплывающая подсказка (Tooltip) — одна из наиболее часто используемых функций в современной мобильной разработке для улучшения опыта взаимодействия с пользователем. В статье автор рассказывает как реализовать такие всплывающие сообщения в приложении на Jetpack Compose при помощи его библиотеки Balloon.
👍11🔥1
​​#Release #Compose #Changelog

Compose Release Digest (13.11 — 15.01)

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

🔹RC/Stable🔹

🔸🔸Compose Animation/Runwww.tgoop.com/UI (1.3.2 — 1.3.3)
▫️Версия зависимости protobuf-javalite (используемой в Compose UI) обновлена до 3.21.8, что исправляет появление security alert-а в одной из предыдущих версий библиотеки (Подробнее).
▫️Исправлен краш из-за сохранения Activity состояния Compose View на Android 9. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Compiler (1.4.0-alpha02)
▫️Добавлена поддержка версий Kotlin 1.7.21.
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.4.0-alpha03 — 1.4.0-alpha04)
▫️В AnimatedContent и InfiniteTransition добавлен новый параметр label. (Подробнее тут и тут)
▫️Представлены HorizontalPager и VerticalPager, а также дополнительные к ним классы PagerState, PageSize и т.д. (Подробнее)
▫️Добавлен Modifier.provideScrollContainerInfo и Modifier.provideScrollContainerInfo для возможности запроса информации о скролле родительского Composable. (Подробнее)
▫️Добавлена поддержка EmojiCompat для всех компонентов Text и TextField. (Подробнее)
▫️В TextStyle добавлен экспериментальный параметр textMotion для определения текста типа анимации текста (Static/Animated). (Подробнее)
▫️🔥 Представлены экспериментальные API FlowRow и FlowColumn — более гибкие версии Row и Column с возможностью переноса контента на новую строку/столбец. (Подробнее).
▫️Добавлен новый Modifier.basicMarquee(), для реализации эффекта "бегущей строки". (Подробнее)
... и много всего ещё.

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

▫️constraintlayout-compose обновлен до версии 1.1.0-alpha05
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версий 1.1.1 и 1.2.0-alpha02
▫️Compose Material 3 (Material You) обновлен до версии 1.1.0-alpha04
👍13
#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/Runwww.tgoop.com/UI (1.4.0-rc01)
▫️reverseLayout теперь добавлен и в LazyStaggeredGrid. (Подробнее).
▫️Добавлено новое переиспользуемое AndroidView API. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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
2025/07/13 22:57:52
Back to Top
HTML Embed Code: