#Article #Blog #UI
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Saket Narayan
Drawing custom text spans in Compose UI
Exploring how squiggly underlines and rounded corners can be drawn without any official APIs for drawing custom spans.
👍5🔥2
#Article #Blog
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
Effective Android
movableContentOf and movableContentWithReceiverOf
Tracking compositions in Jetpack Compose
👍4🔥2
#Article #Blog #Animation
Velocity Based Animation with Compose
Неплохая статья, в которой разбирается такая техника, как Velocity Based 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
#Article #Blog #Performance
6 Jetpack Compose Guidelines to Optimize Your App Performance
Статья с большим количеством советов (разбитых на 6 правил) о том, как можно значительно улучшить производительность вашего приложения на Compose. Авторы затрагивают такие темы как стабильность классов (о которой был предыдущий пост), правильный вынос state-ов (State hoisting), и много чего ещё. Рекомендую к прочтению.
6 Jetpack Compose Guidelines to Optimize Your App Performance
Статья с большим количеством советов (разбитых на 6 правил) о том, как можно значительно улучшить производительность вашего приложения на Compose. Авторы затрагивают такие темы как стабильность классов (о которой был предыдущий пост), правильный вынос state-ов (State hoisting), и много чего ещё. Рекомендую к прочтению.
👍5🔥1
#Article #Blog #Compose
Custom Layouts, measuring policies, and BoxWithConstraints in Jetpack Compose
Небольшая статья о том, как происходит определение размеров дочерних элементов при создании своего Layout-а в Compose, при чём тут MeasurePolicy, а также чем так необычен BoxWithConstraints. Обо всем этом — в сегодняшнем материале.
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
#Article #Blog #Compose
Measuring and drawing in Jetpack Compose
В дополнение к предыдущей статье об определении размеров дочерних элементов, в сегодняшнем материале автор разбирает как устроены измерение и отрисовка самого Composable компонента.
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
#Article #Blog #Compose
Jetpack Compose Accompanist TwoPane
Интересная статья от разработчиков Microsoft, в которой они разбирают TwoPane — UI компонент из библиотеки Accompanist, предназначенный для разработки адаптивных интерфейсов под foldable устройства.
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
#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.
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
#Article #Blog #OpenSource
Maps Compose Library Tutorial for Android: Getting Started
В феврале 2022 года Google выпустила библиотеку Maps Compose (набор composable функций с открытым исходным кодом для упрощения интеграции с Google Maps, а также различных типов данных, связанных с Maps SDK). О том, как работать с этой библиотекой на примере приложения GeoMarker — в сегодняшней статье.
Maps Compose Library Tutorial for Android: Getting Started
В феврале 2022 года Google выпустила библиотеку Maps Compose (набор composable функций с открытым исходным кодом для упрощения интеграции с Google Maps, а также различных типов данных, связанных с Maps SDK). О том, как работать с этой библиотекой на примере приложения GeoMarker — в сегодняшней статье.
kodeco.com
Maps Compose Library Tutorial for Android: Getting Started
Learn how to use the Maps Compose library for the Maps SDK for Android to add maps to your Android app.
👍11❤1🔥1
#Blog #Compose
The Composable node tree
Новая статья из блога Effective Android от Jorge Castillo. На этот раз автор разбирает как создается и хранится в памяти дерево Node-ов в Compose.
The Composable node tree
Новая статья из блога Effective Android от Jorge Castillo. На этот раз автор разбирает как создается и хранится в памяти дерево Node-ов в Compose.
Effective Android
The Composable node tree 🌲
Learn how the Jetpack Compose node tree is built, updated, how changes to it are applied, the different types of nodes on it, and more 🔥
❤4🔥3👍1
🗺 Навигация по каналу 🗺
Статьи:
▫️#Article — все статьи о Compose
▫️#Medium — статьи на Medium
▫️#Habr — статьи на Habr
▫️#Blog — статьи на сторонних сайтах (обычно это персональные блоги)
Видео:
▫️#Video — все видеодоклады о Compose
▫️#GoogleIO — видеодоклады с презентаций GoogleIO
Релизы:
▫️#Release — релизы Compose на разных платформах
▫️#Changelog — традиционный дайджест по изменениям новых релизов библиотек
Разделение по темам:
▫️#Navigation — материалы о навигации в Compose
▫️#Canvas — материалы о работе с канвасом в Compose
▫️#Animation — материалы о работе с анимациями в Compose
▫️#Performance — материалы о производительности в Compose
▫️#Recomposition — материалы о рекомпозиции в Compose
▫️#UI — материалы, посвященные различным кейсам работы с UI
▫️#Multiplatform — материалы о Compose Multiplatform
▫️#WearOS — материалы о работе с WearOS в Compose
▫️#Libs — сторонние Compose-библиотеки
▫️#Предложка — материалы, предложенные подписчиками канала
▫️#News — новости канала
▫️#Offtop — ну тут понятно 🙃
Статьи:
▫️#Article — все статьи о Compose
▫️#Medium — статьи на Medium
▫️#Habr — статьи на Habr
▫️#Blog — статьи на сторонних сайтах (обычно это персональные блоги)
Видео:
▫️#Video — все видеодоклады о Compose
▫️#GoogleIO — видеодоклады с презентаций GoogleIO
Релизы:
▫️#Release — релизы Compose на разных платформах
▫️#Changelog — традиционный дайджест по изменениям новых релизов библиотек
Разделение по темам:
▫️#Navigation — материалы о навигации в Compose
▫️#Canvas — материалы о работе с канвасом в Compose
▫️#Animation — материалы о работе с анимациями в Compose
▫️#Performance — материалы о производительности в Compose
▫️#Recomposition — материалы о рекомпозиции в Compose
▫️#UI — материалы, посвященные различным кейсам работы с UI
▫️#Multiplatform — материалы о Compose Multiplatform
▫️#WearOS — материалы о работе с WearOS в Compose
▫️#Libs — сторонние Compose-библиотеки
▫️#Предложка — материалы, предложенные подписчиками канала
▫️#News — новости канала
▫️#Offtop — ну тут понятно 🙃
🔥10👍4❤🔥1🍾1
#Article #Blog #Compose
Parallax effect in Jetpack Compose
Статья от Криса Бэйнса о том, как реализовать эффект параллакса в своем приложении.
🗣 Выглядит неплохо, правда пока "эффект параллакса" кажется больше каким-то buzzword-ом, нежели полезным UI-приёмом.
Parallax effect in Jetpack Compose
Статья от Криса Бэйнса о том, как реализовать эффект параллакса в своем приложении.
🗣 Выглядит неплохо, правда пока "эффект параллакса" кажется больше каким-то buzzword-ом, нежели полезным UI-приёмом.
🔥8👍4❤🔥1
#Docs #Blog #Modifier
Create custom modifiers
Ребята из Google выкатили новую документацию о том, как писать новые, а также мигрировать уже существующие кастомные модификаторы при помощи нового API Modifier.Node.
Create custom modifiers
Ребята из Google выкатили новую документацию о том, как писать новые, а также мигрировать уже существующие кастомные модификаторы при помощи нового API Modifier.Node.
👍13❤🔥2🔥1
#Article #Blog #Multiplatform
SwiftUI for Jetpack Compose developers - State (I)
Великий и ужасный Крис Бэйнс анонсировал серию статей, призванных помочь Compose-разработчикам познакомиться ближе с SwiftUI, а SwiftUI-разработчикам — с Jetpack Compose.
В первой статье разбирается работа с состоянием (state) в обоих фреймворках.
SwiftUI for Jetpack Compose developers - State (I)
Великий и ужасный Крис Бэйнс анонсировал серию статей, призванных помочь Compose-разработчикам познакомиться ближе с SwiftUI, а SwiftUI-разработчикам — с Jetpack Compose.
В первой статье разбирается работа с состоянием (state) в обоих фреймворках.
🔥19👍6❤🔥1❤1🎉1
#Article #Blog #UI #Compose
🎨 Creating a responsive dashboard layout for JetLagged with Jetpack Compose
После небольшого перерыва возвращается активность на канале. И сегодня у нас небольшая статья от ребят из Google с советами по реализации адаптивного UI на примере приложения JetLagged.
📖 Читать статью 👈
📱 Mobile Compose 📱 Чат канала
♾
После небольшого перерыва возвращается активность на канале. И сегодня у нас небольшая статья от ребят из Google с советами по реализации адаптивного UI на примере приложения JetLagged.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9 4❤🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
#Article #Blog #UI #Compose
🎨 Centering in Compose
Супер полезная статья от Zach Klippenstein о центрировании (centering) в Compose. Помогает улучшить понимание layout-системы в Compose, а также ускорить разработку (перестав тратить время на перебор разных модификаторов в поиске нужного).
📱 А поиграться со всем этим на Github можно тут.
📖 Читать статью 👈
📱 Mobile Compose 📱 Чат канала
♾
Супер полезная статья от Zach Klippenstein о центрировании (centering) в Compose. Помогает улучшить понимание layout-системы в Compose, а также ускорить разработку (перестав тратить время на перебор разных модификаторов в поиске нужного).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3❤2❤🔥1
#Article #Blog #UI #Compose
🎨 Compose Tips for Delightful UI — ’24 wrap up
Начинаем год с полезной ретроспективы. Ребята из Google решили еще раз вспомнить все эпизоды "Compose Tips for Delightful UI" — серии видео с советами по Compose, которые выходили у них на канале с лета 2024.
В 2025 обещают второй сезон.
😇 Читать статью
📺 Плейлист на Youtube
🎨 Mobile Compose 💬 Чат канала
♾️
Начинаем год с полезной ретроспективы. Ребята из Google решили еще раз вспомнить все эпизоды "Compose Tips for Delightful UI" — серии видео с советами по Compose, которые выходили у них на канале с лета 2024.
В 2025 обещают второй сезон.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5🎉4❤🔥1
#Article #Blog #UI #Performance #Compose
🎨 Designing Effective UI Components in Jetpack Compose
Автор статьи разбирает стратегии создания эффективных UI-компонентов в Jetpack Compose, уделяя особое внимание работе с модификаторами, Preview и кастомизации через поддержку разных тем.
📖 Читать статью
🎨 Mobile Compose 💬 Чат канала
♾
Автор статьи разбирает стратегии создания эффективных UI-компонентов в Jetpack Compose, уделяя особое внимание работе с модификаторами, Preview и кастомизации через поддержку разных тем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2❤🔥1
#Blog #Quiz #Compose
🎨 В чём разница между Immutable и Stable в Jetpack Compose?
▫️ Immutable следует использовать для по-настоящему неизменяемых классов, то есть таких, чьи данные не могут измениться.
▫️ Stable означает, что обновления в классе не произойдут без уведомления наблюдателей. Например, класс, агрегирующий State, считается стабильным, потому что все наблюдатели State будут перерассчитаны при его изменении.
Stable — это концепция, специфичная для Compose.
Если аргумент composable-функции стабильный, то не нужно проверять его содержимое для определения необходимости рекомпозиции — достаточно проверить ссылку.
Обычно Compose сам может определить стабильность класса, и аннотации не требуются. Однако, при необходимости, их можно использовать для явного указания флага стабильности типа.
❗️На данный момент Compose обрабатывает Immutable и Stable одинаковым образом!
🌐 Источник 👈
🎨 Mobile Compose 💬 Чат канала
♾
Stable — это концепция, специфичная для Compose.
Если аргумент composable-функции стабильный, то не нужно проверять его содержимое для определения необходимости рекомпозиции — достаточно проверить ссылку.
Обычно Compose сам может определить стабильность класса, и аннотации не требуются. Однако, при необходимости, их можно использовать для явного указания флага стабильности типа.
❗️На данный момент Compose обрабатывает Immutable и Stable одинаковым образом!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍9❤🔥1🔥1