#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) в обоих фреймворках.
#Release #Compose #Changelog
📣 🆕 Релиз Compose библиотек 1.6.0-beta01 — 1.6.0-beta03
Из основных изменений:
▫️PlatformImeOptions теперь не интерфейс, а класс. (Подробнее)
▫️Исправлен баг, который влиял на очень большой текст с бесконечными constraint-ми. (Подробнее)
▫️ExitTransition.Hold переименован в ExitTransition.KeepUntilTransitionsFinished (Подробнее)
▫️Исправлена проблема с лишними рекомпозициями при работе с LocalSoftwareKeyboardController и LocalTextInputService. (Подробнее)
▫️Исправлен бег, при котором вызов
▫️SwipeToReveal API теперь основаны на slot based API, что является рекомендуемым решением в Compose. (Подробнее)
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
📣 🆕 Релиз Compose библиотек 1.6.0-beta01 — 1.6.0-beta03
Из основных изменений:
▫️PlatformImeOptions теперь не интерфейс, а класс. (Подробнее)
▫️Исправлен баг, который влиял на очень большой текст с бесконечными constraint-ми. (Подробнее)
▫️ExitTransition.Hold переименован в ExitTransition.KeepUntilTransitionsFinished (Подробнее)
▫️Исправлена проблема с лишними рекомпозициями при работе с LocalSoftwareKeyboardController и LocalTextInputService. (Подробнее)
▫️Исправлен бег, при котором вызов
SoftwareKeyboardController.show()
открывал клавиатуру без наличия поля ввода в фокусе. (Подробнее)▫️SwipeToReveal API теперь основаны на slot based API, что является рекомендуемым решением в Compose. (Подробнее)
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
#Video #ComposePathway #Modifier
Compose Pathway #3 - Modifiers 🚀
Новогоднее настроение уже не за горами, а третий выпуск Compose Pathway уже прям тут!
В нём мы познакомимся с Modifiers, подробно разберем основные принципы их работы, а также напишем свой собственный кастомный модификатор.
Приятного просмотра!
👉 СМОТРЕТЬ ВЫПУСК
P.S. На всю работу ушло прилично времени и сил, однако, как мне кажется, это стоило того и результат получился неплохим.
Как всегда, жду от вас подписки и обратной связи, а так же буду признателен, если поделитесь им с другими.
© Григорьев Дмитрий
Compose Pathway #3 - Modifiers 🚀
Новогоднее настроение уже не за горами, а третий выпуск Compose Pathway уже прям тут!
В нём мы познакомимся с Modifiers, подробно разберем основные принципы их работы, а также напишем свой собственный кастомный модификатор.
Приятного просмотра!
👉 СМОТРЕТЬ ВЫПУСК
P.S. На всю работу ушло прилично времени и сил, однако, как мне кажется, это стоило того и результат получился неплохим.
Как всегда, жду от вас подписки и обратной связи, а так же буду признателен, если поделитесь им с другими.
© Григорьев Дмитрий
#Article #Medium #Text #Tooling
Preventing Font Scaling in Jetpack Compose
Статья с разбором того, как при помощи новой тулинг-функции (а если вы работаете с Compose версии ниже 1.6.0-alpha01, то самописной функции) в Compose можно эмулировать работу Composable функции с различными размерами шрифтов, без необходимости менять что-то в системных настройках.
Зеркало статьи 👉 тут
Preventing Font Scaling in Jetpack Compose
Статья с разбором того, как при помощи новой тулинг-функции (а если вы работаете с Compose версии ниже 1.6.0-alpha01, то самописной функции) в Compose можно эмулировать работу Composable функции с различными размерами шрифтов, без необходимости менять что-то в системных настройках.
@FontScalePreviews
@Composable
fun NonResizingTextPreview() {
ExperimentsTheme {
Box(modifier = Modifier.width(200.dp)) {
Text(text = "This is resizing text with font scale ${LocalDensity.current.fontScale}")
}
}
}
Зеркало статьи 👉 тут
#Article #Medium #State
How to handle single-event in Jetpack Compose
Статья с разбором нескольких подходов к работе с Single-event в Jetpack Compose.
Зеркало статьи 👉 тут
How to handle single-event in Jetpack Compose
Статья с разбором нескольких подходов к работе с Single-event в Jetpack Compose.
Зеркало статьи 👉 тут
🎄Подводим итоги 2023 года🎄
📈 За этот год канал Mobile Compose добился вот такой статистики:
👤 +1037 подписчика (+68%)
👀 200k+ просмотров материалов
↪️ 2.3k репостов
Это был весьма насыщенный год, как для меня лично, так и для сообщества.
Мне удалось выступить сразу с двумя докладами на минувшем Mobius, а также реализовать давнюю идею запустить серию обучающих роликов по Compose — Compose Pathway.
Что касается канала, он прибавил во всех аспектах и продолжает развиваться дальше. Спасибо вам за поддержку! Двигаемся дальше 💪
Желаю вам карьерных успехов, удачи, мира, а также внутреннего и окружающего спокойствия.
С наступающим!🎁
© Григорьев Дмитрий
#Offtop
📈 За этот год канал Mobile Compose добился вот такой статистики:
👤 +1037 подписчика (+68%)
👀 200k+ просмотров материалов
↪️ 2.3k репостов
Это был весьма насыщенный год, как для меня лично, так и для сообщества.
Мне удалось выступить сразу с двумя докладами на минувшем Mobius, а также реализовать давнюю идею запустить серию обучающих роликов по Compose — Compose Pathway.
Что касается канала, он прибавил во всех аспектах и продолжает развиваться дальше. Спасибо вам за поддержку! Двигаемся дальше 💪
Желаю вам карьерных успехов, удачи, мира, а также внутреннего и окружающего спокойствия.
С наступающим!🎁
© Григорьев Дмитрий
#Offtop
#Release #Compose #Changelog
📣 🆕 Релиз Compose библиотек 1.6.0-rc01
Из основных изменений:
▫️Оптимизирована реализация векторной графики путём снижения количества рекомпозиций.
▫️У DragAndDropTarget (который интерфейс) убрали фабричный метод. Теперь создаётся через object. (Подробнее)
Compose Material3 обновлен до версии 1.2.0-beta02, в которой в числе прочего:
▫️Исправлен end padding для ListItem. (Подробнее)
▫️Исправлен баг с обработкой жеста back у ModalBottomSheet на Android 13+. (Подробнее)
▫️Найден баг, при котором внутри IconButtonColors в параметр disabledContentColor по-умолчанию устанавливается некорректное значение. Лечится указанием явного значения для disabledContentColor. Обещают поправить в следующем релизе.
Также Compose Compiler обновлен до версии 1.5.8, в которой добавлена поддержка версии Kotlin 1.9.22.
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler
📣 🆕 Релиз Compose библиотек 1.6.0-rc01
Из основных изменений:
▫️Оптимизирована реализация векторной графики путём снижения количества рекомпозиций.
▫️У DragAndDropTarget (который интерфейс) убрали фабричный метод. Теперь создаётся через object. (Подробнее)
Compose Material3 обновлен до версии 1.2.0-beta02, в которой в числе прочего:
▫️Исправлен end padding для ListItem. (Подробнее)
▫️Исправлен баг с обработкой жеста back у ModalBottomSheet на Android 13+. (Подробнее)
▫️Найден баг, при котором внутри IconButtonColors в параметр disabledContentColor по-умолчанию устанавливается некорректное значение. Лечится указанием явного значения для disabledContentColor. Обещают поправить в следующем релизе.
Также Compose Compiler обновлен до версии 1.5.8, в которой добавлена поддержка версии Kotlin 1.9.22.
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler
#Release #Compose #Changelog
📣 🆕 Долгожданный релиз Compose 1.6.0 🔥
Те, кто знаком с нашими регулярными дайджестами, наверняка уже в курсе основных изменений по сравнению с предыдущей мажорной версией (1.5.0). Однако для тех, кто пропустил — вот:
▫️1.6.0-alpha04
▫️1.6.0-alpha05
▫️1.6.0-alpha06
▫️1.6.0-beta01 — 1.6.0-beta03
▫️1.6.0-rc01
📣 🆕 Долгожданный релиз Compose 1.6.0 🔥
Те, кто знаком с нашими регулярными дайджестами, наверняка уже в курсе основных изменений по сравнению с предыдущей мажорной версией (1.5.0). Однако для тех, кто пропустил — вот:
▫️1.6.0-alpha04
▫️1.6.0-alpha05
▫️1.6.0-alpha06
▫️1.6.0-beta01 — 1.6.0-beta03
▫️1.6.0-rc01
This media is not supported in your browser
VIEW IN TELEGRAM
#News #Release #Compose
Fragment Compose Artifact
В результате последнего обновления Jetpack библиотек, среди прочего, появился новый артефакт fragment-compose. Основной его задачей является поддержание проектов, которые находятся в процессе миграции с "Compose на фрагментах" на "full Compose" архитектуру.
На данный момент единственной его фичей является extension метод content, который избавляет от необходимости создавать ComposeView и выставлять нужный ViewCompositionStrategy.
Fragment Compose Artifact
В результате последнего обновления Jetpack библиотек, среди прочего, появился новый артефакт fragment-compose. Основной его задачей является поддержание проектов, которые находятся в процессе миграции с "Compose на фрагментах" на "full Compose" архитектуру.
На данный момент единственной его фичей является extension метод content, который избавляет от необходимости создавать ComposeView и выставлять нужный ViewCompositionStrategy.
#News #Multiplatform #Release #Compose
📣 🆕 Релиз Compose Multiplatform 1.6.0-beta02
Из основных изменений:
Common
▫️Добавлена поддержка декорирования текста через PlatformTextStyle. (Подробнее)
iOS
▫️Добавлена возможность регулировать прозрачность для Compose View. (Подробнее)
▫️Overscroll эффект теперь больше похож на нативный в iOS. (Подробнее)
▫️Исправления z-order в UIKitView. (Подробнее)
▫️Добавлена возможность выделения текста внутри Selection Container мультитапом. (Подробнее)
Desktop
▫️Шрифты Arial и Consolas добавлены в качестве запасных для избежания крашей на Linux-системах. (Подробнее)
Web
▫️Добавлена возможность использовать кастомные префиксы в StyleSheet. (Подробнее)
Подробнее о релизе 👉 тут
📣 🆕 Релиз Compose Multiplatform 1.6.0-beta02
Из основных изменений:
Common
▫️Добавлена поддержка декорирования текста через PlatformTextStyle. (Подробнее)
iOS
▫️Добавлена возможность регулировать прозрачность для Compose View. (Подробнее)
▫️Overscroll эффект теперь больше похож на нативный в iOS. (Подробнее)
▫️Исправления z-order в UIKitView. (Подробнее)
▫️Добавлена возможность выделения текста внутри Selection Container мультитапом. (Подробнее)
Desktop
▫️Шрифты Arial и Consolas добавлены в качестве запасных для избежания крашей на Linux-системах. (Подробнее)
Web
▫️Добавлена возможность использовать кастомные префиксы в StyleSheet. (Подробнее)
Подробнее о релизе 👉 тут
#Release #Compose #Changelog
📣 🆕 Релиз Compose библиотек 1.7.0-alpha01 — 1.7.0-alpha03
Из основных изменений:
▫️Новый Modifier.animateContentSize с новым alignment параметром. (Подробнее)
▫️BasicTextField2 перемещен в пакет androidx.compose.foundation.text. (Подробнее)
▫️HorizontalPager, VerticalPager и PagerState теперь stable. (Подробнее)
▫️Исправлен баг Modifier.animateContentSize со сбросом состояния при использовании в LazyList. (Подробнее)
▫️Представлен Modifier.receiveContent, позволяющий работать с Rich-контентом внутри BasicTextField2. 🔥 (Подробнее)
Также Compose Compiler и Compose Material3 обновлены до версии 1.5.10 и 1.3.0-alpha01 соответственно.
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler
📣 🆕 Релиз Compose библиотек 1.7.0-alpha01 — 1.7.0-alpha03
Из основных изменений:
▫️Новый Modifier.animateContentSize с новым alignment параметром. (Подробнее)
▫️BasicTextField2 перемещен в пакет androidx.compose.foundation.text. (Подробнее)
▫️HorizontalPager, VerticalPager и PagerState теперь stable. (Подробнее)
▫️Исправлен баг Modifier.animateContentSize со сбросом состояния при использовании в LazyList. (Подробнее)
▫️Представлен Modifier.receiveContent, позволяющий работать с Rich-контентом внутри BasicTextField2. 🔥 (Подробнее)
Также Compose Compiler и Compose Material3 обновлены до версии 1.5.10 и 1.3.0-alpha01 соответственно.
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler
#Article #Medium #Recomposition
Jetpack Compose: Strong Skipping Mode Explained
Начиная с версии 1.5.4+ Compose компилятора, в Compose появился Strong skipping mode — новая экспериментальная фича, предназначенная для еще большей оптимизации количества рекомпозиций. Подробнее — в сегодняшней статье.
Зеркало статьи 👉 тут
Jetpack Compose: Strong Skipping Mode Explained
Начиная с версии 1.5.4+ Compose компилятора, в Compose появился Strong skipping mode — новая экспериментальная фича, предназначенная для еще большей оптимизации количества рекомпозиций. Подробнее — в сегодняшней статье.
Зеркало статьи 👉 тут
#Article #Habr #UI #Compose
Ликбез по вложенной прокрутке в Jetpack Compose
Как понятно из названия, статья рассказывает о том, кто такой этот ваш nested scrolling, а также как реализовать систему вложенной прокрутки в Compose.
Ликбез по вложенной прокрутке в Jetpack Compose
Как понятно из названия, статья рассказывает о том, кто такой этот ваш nested scrolling, а также как реализовать систему вложенной прокрутки в Compose.
Всем привет! На канале давненько не было активности. Будем считать, что он был в отпуске.🌴
Однако теперь всё позади, и Mobile Compose возвращается в привычный ритм.💪
Спасибо всем за поддержку, и за то, что за этот месяц канал не только не потерял в аудитории, но и наоборот, приобрел новых членов сообщества.
За месяц произошло немало — 3 полноценных релиза библиотек, а также (!!!) появление нового и долгожданного Shared Element Transition API 🔥. Обо всем этом поговорив в ближайшее время.
▫️ Mobile Compose в Telegram
▫️ Наш чат в Telegram
▫️ Mobile Compose в LinkedIn
© Григорьев Дмитрий
Однако теперь всё позади, и Mobile Compose возвращается в привычный ритм.💪
Спасибо всем за поддержку, и за то, что за этот месяц канал не только не потерял в аудитории, но и наоборот, приобрел новых членов сообщества.
За месяц произошло немало — 3 полноценных релиза библиотек, а также (!!!) появление нового и долгожданного Shared Element Transition API 🔥. Обо всем этом поговорив в ближайшее время.
▫️ Mobile Compose в Telegram
▫️ Наш чат в Telegram
▫️ Mobile Compose в LinkedIn
© Григорьев Дмитрий
This media is not supported in your browser
VIEW IN TELEGRAM
#Release #Animation #UI #News
Shared Element Transition в каждый дом 🔥
Начиная с версии 1.7.0-alpha07, в Compose появилась одна из самых долгожданных и востребованных функций — Shared Element Transition. Кто не в курсе — она позволяет сделать бесшовную анимацию перехода между двумя UI блоками (или экранами) при помощи одного общего UI-элемента.
Официальной документации пока не завезли, но больше примеров использования от Google можно найти тут👇
Shared Element Transition в каждый дом 🔥
Начиная с версии 1.7.0-alpha07, в Compose появилась одна из самых долгожданных и востребованных функций — Shared Element Transition. Кто не в курсе — она позволяет сделать бесшовную анимацию перехода между двумя UI блоками (или экранами) при помощи одного общего UI-элемента.
Официальной документации пока не завезли, но больше примеров использования от Google можно найти тут👇
#Предложка #Libs #Compose
Compose Color Preview
Наверняка вы замечали, что при работе с Compose Multiplatform в IntelliJ IDEA нет привычных превью цветов в панели слева. Одним из решений этой проблемы является Compose Color Preview — плагин, автором которого является один из подписчиков канала. Однозначно лайк 👍
Compose Color Preview
Наверняка вы замечали, что при работе с Compose Multiplatform в IntelliJ IDEA нет привычных превью цветов в панели слева. Одним из решений этой проблемы является Compose Color Preview — плагин, автором которого является один из подписчиков канала. Однозначно лайк 👍
#Article #Habr #UI #Compose
Jetpack Compose для ленивых 🫠
Достаточно интересная статья, в которой автор разбирает несколько нестандартных кейсов при создании экрана, где Lazy-списки из Compose могут существенно сэкономить время и нервы разработчика.
🔗 Читать статью
Jetpack Compose для ленивых 🫠
Достаточно интересная статья, в которой автор разбирает несколько нестандартных кейсов при создании экрана, где Lazy-списки из Compose могут существенно сэкономить время и нервы разработчика.
🔗 Читать статью
#Release #Compose #Changelog
📣 🆕 Релиз Compose библиотек 1.7.0-alpha07 — 1.7.0-alpha08 [Часть 1]
🗣 За последний месяц вышло несколько значимых релизов, все изменения которых не получается даже уместить в один пост, поэтому их будет два. 🙃
Из основных изменений:
▫️Представлено долгожданное Shared Element Transition API. 🔥 (Подробнее)
▫️AnimatedVisibilityScope.transition и Modifier.animateEnterExit теперь stable. (Подробнее)
▫️Проделаны существенные изменения в анимации элементов — на смену деприкейтнутому модификатору Modifier.animateItemPlacement() пришел новый Modifier.animateItem() (подробнее разберем отдельно в одном из следующих постов). (Подробнее тут и тут)
▫️ClickableText помечен как deprecated. Теперь для текстовых ссылок используем LinkAnnotation в AnnotatedString. (Подробнее)
▫️LookaheadScope API теперь больше не экспериментальное, а теперь stable. (Подробнее)
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler
📣 🆕 Релиз Compose библиотек 1.7.0-alpha07 — 1.7.0-alpha08 [Часть 1]
🗣 За последний месяц вышло несколько значимых релизов, все изменения которых не получается даже уместить в один пост, поэтому их будет два. 🙃
Из основных изменений:
▫️Представлено долгожданное Shared Element Transition API. 🔥 (Подробнее)
▫️AnimatedVisibilityScope.transition и Modifier.animateEnterExit теперь stable. (Подробнее)
▫️Проделаны существенные изменения в анимации элементов — на смену деприкейтнутому модификатору Modifier.animateItemPlacement() пришел новый Modifier.animateItem() (подробнее разберем отдельно в одном из следующих постов). (Подробнее тут и тут)
▫️ClickableText помечен как deprecated. Теперь для текстовых ссылок используем LinkAnnotation в AnnotatedString. (Подробнее)
▫️LookaheadScope API теперь больше не экспериментальное, а теперь stable. (Подробнее)
Подробнее о релизе:
🔸Animation
🔸Foundation
🔸Material
🔸Runtime
🔸UI
🔸Material3
🔸Compiler