TGViewer
Channel Public Channel
Mobile Compose

Mobile Compose

@mobile_compose

Твой главный путеводитель в мир Jetpack Compose и Compose Multiplatform.

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

Автор: @grigorievdy

Поддержать канал: https://t.me/mobile_compose?boost
Subscribers
2.95K
Photos
160
Videos
3
Links
341

Showing posts older than #172 · Back to latest

Older Posts 20 shown
Post #171 1.75K
#Medium #Article #Android13

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

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

P.S. После небольшого перерыва я снова в деле, а значит на канале будет больше публикаций 😎
Medium Android 13 Photo Picker With The Activity Result API and Jetpack Compose Android 13 brings many new features and changes with the new SDK version 33, referenced as Tiramisu.
  • 🔥 8
  • 👍 5
  • 🫡 1
Post #170 1.83K
#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.
Android Developers Blog Compose for Wear OS 1.1 is now stable: check out new features! Todoist and Outdooractive rebuilt their Wear apps with Compose and accelerated the delivery of a new, functional user experience.
  • 👍 7
  • ❤ 1
Post #169 2.05K
#Article #Medium #Animation

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

Любопытная статья, в которой автор показывает как можно создать нетривиальную анимацию медузы (!!!), по пути охватывая такие темы как:
▫️Создание кастомных ImageVectors из SVG
▫️Частичная анимация ImageVector
▫️Применение эффекта шума к Composable при помощи AGSL RenderEffect
Medium Making Jellyfish move in Compose: Animating ImageVectors and applying AGSL RenderEffects 🐠 Learn how to use ImageVectors in Compose
  • 🥰 5
  • 👍 4
  • ❤ 1
Post #168 2.01K
​​#Release #Compose #Changelog

Compose Release Digest (13.10 — 12.11)

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

🔹RC/Stable🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/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/Runtime/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
Post #167 1.76K
А ещё, совсем недавно мы преодолели очень важную цифру — 1000 человек на канале 🔥

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

Спасибо за поддержку, будем держать планку и развиваться дальше!
  • 🔥 25
  • 👍 4
  • 🎉 2
  • 👎 1
Post #166 1.94K
#Featured #AndroidDevSummit #Video #Compose

Compose Modifiers deep dive

Доклад от небезызвестного Leland Richardson, в котором он предлагает глубже погрузиться в историю модификаторов Compose, а также связанных с ними проблем и ограничений. Ну и самое интересное, рассказывает об изменениях Modifier API — как о тех, на которые уже переехали в версии 1.3, так и о тех, которые добавят в 1.4.
YouTube Compose Modifiers deep dive A deep dive into the history of Modifiers and the constraints of APIs. As well as the problems they are meant to solve leading up to a major overhaul in implementation in 1.3 and the addition of several lower level, but powerful, experimental APIs that we…
  • 👍 3
  • 🔥 1
Post #164 1.82K
#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.
YouTube Reimagining designer-developer handoff: Introducing Relay In this lightning talk, we’ll introduce you to Relay, available now in open alpha. Relay is a new process that allows teams to create UI in Figma and generate high-fidelity Compose UI components. Relay puts structured component data at the center of the collaboration…
  • 🔥 9
  • 👍 4
Post #163 1.72K
#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
YouTube Reimagining designer-developer handoff: Introducing Relay In this lightning talk, we’ll introduce you to Relay, available now in open alpha. Relay is a new process that allows teams to create UI in Figma and generate high-fidelity Compose UI components. Relay puts structured component data at the center of the collaboration…
  • 👍 4
  • ❤ 1
  • 👏 1
Post #162 1.57K
#Article #Medium

How To Handle ViewModel One-Time Events In Jetpack Compose

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

P.S. Для тех, кому неудобно читать в текстовом варианте, добавил также видеоверсию материала.
Medium How To Handle ViewModel One-Time Events In Jetpack Compose About a new way to implement one-time events in Jetpack Compose using the Compose State Events Library
  • ❤ 3
  • 👍 1
  • 🔥 1
Post #160 1.54K
​​#Release #Compose #Changelog

Compose Release Digest (13.09 — 12.10)

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

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.3.2)
▫️Добавлена поддержка версий Kotlin 1.7.20
🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.3.0-rc01)
▫️
Добавлен новый API Hyphens для поддержки автоматических переносов при работе с текстом. (Подробнее)
▫️Улучшены Snapping-анимации. (Подробнее)
▫️Исправлена утечка памяти у LazyColumn из-за невызова метода onModifierLocalsUpdated. (Подробнее)

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.3.0-beta03)
▫️В LazyStaggeredGrid добавлены параметр contentPadding и поддержка различных Arrangement. (Подробнее тут и тут)
▫️Добавлен класс MutableWindowInsets для удобного изменения WindowInsets без рекомпозиции. (Подробнее)
▫️PullRefresh из библиотеки Accompanist мигрировал в Material SDK. (Подробнее)
▫️Параметр функций remember и rememberCoroutineScope теперь crossinline.
▫️Добавлен LineBreak API для кастомизации переносы строк при работе с текстом. (Подробнее)
▫️Исправлена проблема, при которой Activity BackHandler из AndroidX не работал с Dialog composable. (Подробнее)

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

▫️Paging-Compose обновлен до версии 1.0.0-alpha16
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.1.0-alpha07
▫️Compose Material 3 (Material You) обновлен до версии 1.0.0-rc01
  • 👍 3
  • 🔥 2
  • ❤ 1
Post #159 1.4K
#Article #Medium

Building A Jetpack Compose Window With AbstractComposeView

Бывают кейсы, когда нужно открыть Composable контент поверх Android View (при постепенной интеграции Compose в существующий проект), и для этого не подойдут Dialog или Popup. В таком случае автор статьи предлагает использовать кастомное решение, основанное на AbstractComposeView и называет его "Jetpack Compose Window".
Medium Building A Jetpack Compose Window With AbstractComposeView Beyond normal Jetpack Compose Development, e.g. building Tooltip, Coachmark, Custom Toast, etc.
  • 🔥 5
  • 👍 2
  • 👎 1
Post #158 1.53K
#Article #Blog #Compose

Jetpack Compose Accompanist TwoPane

Интересная статья от разработчиков Microsoft, в которой они разбирают TwoPane — UI компонент из библиотеки Accompanist, предназначенный для разработки адаптивных интерфейсов под foldable устройства.
Microsoft News Jetpack Compose Accompanist TwoPane Hello Compose developers! This week, we’d like to talk about the TwoPane layout from Google’s Accompanist Adaptive library! Not to be confused with our own Microsoft Compose SDK TwoPaneLayout component, TwoPane from Accompanist is a fold-aware UI component…
  • 🔥 3
  • ❤ 1
  • 👍 1
Post #157 1.51K
#Article #Blog #Compose

Measuring and drawing in Jetpack Compose

В дополнение к предыдущей статье об определении размеров дочерних элементов, в сегодняшнем материале автор разбирает как устроены измерение и отрисовка самого Composable компонента.
Effective Android Measuring and drawing in Jetpack Compose 📏👩‍🎨 When, how, and in what order measuring and drawing is done
  • ❤ 1
  • 👍 1
Post #156 1.45K
​​#Release #Compose #Changelog

Compose Release Digest (05.08 — 12.09)

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

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.3.0 — 1.3.1)
🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.2.1)
▫️ Несколько минорных изменений по сравнению с 1.2.0

🔹Alpha/Beta🔹

🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.3.0-alpha03 — 1.3.0-beta02)
▫️Для функций Crossfade, animateAsState и Animatable добавлен новый опциональный параметр label. (Подробнее)
▫️В AnimationSpec добавлена функция atFraction, при помощи которой указанную продолжительность анимации можно делить на сегменты, которые можно в дальнейшем использовать для работы с ключевыми кадрами анимации. (Подробнее)
▫️TextInputService (show/hideSoftwareKeyboard) теперь deprecated. Вместо этого нужно использовать SoftwareKeyboardController. (Подробнее)
▫️Реализовано и задокументировано новое экспериментальное API для LazyStaggeredGrid. (Подробнее)
▫️Исправлена ошибка, из-за которой painterResource не обновлялся при изменении конфигурации. (Подробнее)
▫️FocusDirection.In и FocusDirection.Out теперь deprecated и заменены на FocusDirection.Enter и FocusDirection.Exit. (Подробнее)
▫️Исправлен баг, при котором Compose компилятор в некоторых случаях ошибочно помечал Unit типы как Composable. (Подробнее)

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

▫️Paging-Compose обновлен до версии 1.0.0-alpha16
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него получили сразу два параллельных обновления — 1.0.2 и 1.1.0-alpha05
▫️Compose Material 3 (Material You) обновлен до версии 1.0.0-beta02
  • 🔥 3
  • 👍 2
  • ❤ 1
Post #155 1.44K
#Article #Blog #Compose

Custom Layouts, measuring policies, and BoxWithConstraints in Jetpack Compose

Небольшая статья о том, как происходит определение размеров дочерних элементов при создании своего Layout-а в Compose, при чём тут MeasurePolicy, а также чем так необычен BoxWithConstraints. Обо всем этом — в сегодняшнем материале.
Effective Android Custom Layouts, measuring policies, and BoxWithConstraints in Jetpack Compose Measuring children according to incoming parent constraints, deferring initial composition.
  • ❤ 4
  • 👍 3
  • 🔥 1
Post #154 1.8K
​​#Article #Blog #Performance

6 Jetpack Compose Guidelines to Optimize Your App Performance

Статья с большим количеством советов (разбитых на 6 правил) о том, как можно значительно улучшить производительность вашего приложения на Compose. Авторы затрагивают такие темы как стабильность классов (о которой был предыдущий пост), правильный вынос state-ов (State hoisting), и много чего ещё. Рекомендую к прочтению.
  • 👍 5
  • 🔥 1
Post #153 1.75K
#Article #Medium #Performance #Recomposition

Optimizing Recomposition in Jetpack Compose: Stability System

Одной из ключевых особенностей Compose является Умная рекомпозиция (Smart recomposition), которая заключается в пропуске рекомпозиции для тех Composable функций, у которых значения входных параметров не изменились и являются стабильными.

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

Подробнее о том, что же всё-таки такое “стабильность” и “stability system” в Compose — в сегодняшней статье.
  • 👍 5
  • ❤ 1
Post #152 1.4K
#Article #Medium #Performance

Comparing Jetpack Compose performance with XML

Статья с сравнением производительности Compose и XML-based экранов на основе таких показателей, как количество задержек отдельных кадров, а также скорость загрузки всей страницы. Материал особенно будет полезен для тех, кто собирается попробовать Jetpack Compose в production коде, но хотел бы для начала изучить результаты benchmark-ов.
Medium Comparing Jetpack Compose performance with XML As Jetpack compose is progressing towards stability, our team decided to measure the performance differences between Compose and XML-based…
  • ❤ 7
  • 👍 4
  • 🔥 1
Post #151 1.46K
#Article #Blog #Animation

Velocity Based Animation with Compose

Неплохая статья, в которой разбирается такая техника, как Velocity Based Animation (проще говоря “Анимация, основанная на скорости”), которая позоляет отслеживать скорость прокрутки списка и при помощи этого кастомизировать длительность применяемой анимации.
DEV Community Velocity Based Animation with Compose Do you have a keen eye for fine details when it comes to UX? Do you try to go that extra step when...
  • 👍 5
  • ❤ 1
Post #150 1.32K
​​#Release #Compose #Changelog

Compose Release Digest (29.06 — 04.08)

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

🔹RC/Stable🔹

🔸🔸Compose Compiler (1.2.0)
▫️ Добавлена поддержка версий Kotlin 1.7.0
🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.2.0-rc03 — 1.2.0)
▫️ В AnimatedImageVector добавлена поддержка repeatCount и repeatMode.
▫️ LazyVerticalGrid и LazyHorizontalGrid теперь stable.
▫️ Добавлен так называемый “Focus-driven-scrolling” для Lazy-списков при помощи нового BeyondBoundsLayout API.

🔹Alpha/Beta🔹

🔸🔸Compose Compiler (1.3.0-beta01 — 1.3.0-rc02)
▫️Добавлена поддержка версий Kotlin 1.7.10
🔸🔸Compose Animation/Foundation/Material/Runtime/UI (1.3.0-alpha01 — 1.3.0-alpha02)
▫️Добавлен LookaheadLayout — новый layout, о котором уже был ранее пост на канале. (Подробнее)
▫️Добавлена возможность анимации cursorBrush компонента BasicTextField без необходимости перезапускать таймер курсора. (Подробнее)
▫️Исправлен баг с открытием клавиатуры, когда disabled текстовое поле находится в фокусе. (Подробнее)
▫️В DrawScope добавлена новая функция drawText, для отрисовки multi-styled текста на Compose Canvas. (Подробнее)
▫️Исправлена проблема с AnimatedVisibility из FloatingActionButton в Scaffold. (Подробнее)

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

▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него получили сразу два параллельных обновления — 1.0.0 и 1.1.0-alpha02
▫️Compose Material 3 (Material You) обновлен до версии 1.0.0-alpha15
  • 👍 8
  • 🔥 3
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →