#Article #Medium #Animation
Easing in to Easing Curves in Jetpack Compose
В прошлом дайджесте я писал про новый набор Easing-функций для работы с анимациями, который добавили в одном из последних бета-релизов, а уже спустя несколько дней, от ребят из Google появилась подробная статья с примерами о том, как правильно их использовать.
Easing in to Easing Curves in Jetpack Compose
В прошлом дайджесте я писал про новый набор Easing-функций для работы с анимациями, который добавили в одном из последних бета-релизов, а уже спустя несколько дней, от ребят из Google появилась подробная статья с примерами о том, как правильно их использовать.
Medium
Easing in to Easing Curves in Jetpack Compose 🎢
Learn how to create and use custom easing functions in Compose
🔥3
#Release #RC #Changelog
Релизы Jetpack Compose 1.2.0-rc01 – 1.2.0-rc02
Очередной дайджест по основным изменениям двух последних RC релизов фреймворка, среди которых:
▫️Easing-функции, добавленные недавно, теперь не экспериментальные. (Подробнее)
▫️Представлен экспериментальный OverscrollEffect, позволяющий создавать собственные эффекты прокрутки.
▫️Новые функции (withKeysDown, withKeysToggled и др.) добавлены в KeyInjectionScope для инжекта нажатий клавиш в тот момент, когда другие клавиши уже удерживаются нажатыми. (Подробнее)
▫️Функция runComposeUiTestWithoutActivity переименована в runEmptyComposeUiTest. (Подробнее)
▫️Добавлено новое API checkScrollableContainerConstraints, позволяющее ограничивать использование вложенных scrollable-контейнеров. Может пригодиться при работе с LazyLayout. (Подробнее)
Новое обновление коснулось и различных дополнений, а именно:
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.0.0-rc02
Релизы Jetpack Compose 1.2.0-rc01 – 1.2.0-rc02
Очередной дайджест по основным изменениям двух последних RC релизов фреймворка, среди которых:
▫️Easing-функции, добавленные недавно, теперь не экспериментальные. (Подробнее)
▫️Представлен экспериментальный OverscrollEffect, позволяющий создавать собственные эффекты прокрутки.
▫️Новые функции (withKeysDown, withKeysToggled и др.) добавлены в KeyInjectionScope для инжекта нажатий клавиш в тот момент, когда другие клавиши уже удерживаются нажатыми. (Подробнее)
▫️Функция runComposeUiTestWithoutActivity переименована в runEmptyComposeUiTest. (Подробнее)
▫️Добавлено новое API checkScrollableContainerConstraints, позволяющее ограничивать использование вложенных scrollable-контейнеров. Может пригодиться при работе с LazyLayout. (Подробнее)
Новое обновление коснулось и различных дополнений, а именно:
▫️Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версии 1.0.0-rc02
Android Developers
Recent Release Notes | Android Developers
👍5👎1
#Article #Medium
Avoid Race Conditions in StateFlow
В настоящее время, когда Compose набирает обороты, одним из наиболее популярных решений при выборе архитектурного подхода является MVI + StateFlow. В статье автор рассказывает о том, как при таком решении можно получить Race condition, а также что нужно делать, чтобы это избежать.
Avoid Race Conditions in StateFlow
В настоящее время, когда Compose набирает обороты, одним из наиболее популярных решений при выборе архитектурного подхода является MVI + StateFlow. В статье автор рассказывает о том, как при таком решении можно получить Race condition, а также что нужно делать, чтобы это избежать.
Medium
Avoid Race Conditions in StateFlow
Nowadays, when everyone is trying out the great Jetpack Compose, it is most likely that you will use the MVI architectural pattern and…
👍8👎2
#Article #Blog #Google
Independent versioning of Jetpack Compose libraries 🔥
Начиная с последнего релиза Jetpack Compose (29 июня) команда разработки фреймворка переходит к схеме независимого версионирования, благодаря чему каждая библиотека теперь будет развиваться отдельно и иметь свой собственный релизный цикл.
К примеру:
▫️Compose Compiler ➡️ получила обновление до версии 1.2.0 (stable) с поддержкой Kotlin 1.7.0
▫️Compose Animation/Foundation/Material/Runwww.tgoop.com/UI ➡️ получили сразу по два обновления — 1.2.0-rc03 и 1.3.0-alpha01
P.S. Также совсем скоро на канале выйдет дайджест в обновленном формате, в котором рассмотрим, какие изменения принесли вышедшие релизы.
Independent versioning of Jetpack Compose libraries 🔥
Начиная с последнего релиза Jetpack Compose (29 июня) команда разработки фреймворка переходит к схеме независимого версионирования, благодаря чему каждая библиотека теперь будет развиваться отдельно и иметь свой собственный релизный цикл.
К примеру:
▫️Compose Compiler ➡️ получила обновление до версии 1.2.0 (stable) с поддержкой Kotlin 1.7.0
▫️Compose Animation/Foundation/Material/Runwww.tgoop.com/UI ➡️ получили сразу по два обновления — 1.2.0-rc03 и 1.3.0-alpha01
P.S. Также совсем скоро на канале выйдет дайджест в обновленном формате, в котором рассмотрим, какие изменения принесли вышедшие релизы.
Android Developers Blog
Independent versioning of Jetpack Compose libraries
Posted by Jolanda Verhoef , Android Developer Relations Engineer Starting today, the various Jetpack Compose libraries will mo...
🔥6👍1
#Video #Youtube #JetpackCompose
Positional memoization, или Как работает одна из главных концепций Jetpack Compose
На YouTube канале Mobius начали публиковать первые записи докладов с прошедшей конференции, среди которых появился и мой, в котором я рассказываю о том, как устроена одна из ключевых концепций Jetpack Compose — позиционная мемоизация. Приятного просмотра!
Positional memoization, или Как работает одна из главных концепций Jetpack Compose
На YouTube канале Mobius начали публиковать первые записи докладов с прошедшей конференции, среди которых появился и мой, в котором я рассказываю о том, как устроена одна из ключевых концепций Jetpack Compose — позиционная мемоизация. Приятного просмотра!
YouTube
Дмитрий Григорьев — Positional memoization. Как работает одна из главных концепций Jetpack Compose
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://www.tgoop.com/mobile_compose, и на YouTube…
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://www.tgoop.com/mobile_compose, и на YouTube…
👍13🔥6👎1
#Article #Medium
A better way to pass Data from Api to Composable
Автор статьи поднимает такую тему, как передача данных, полученных из API, в Composable функции, а также объясняет, почему это плохая практика, и предлагает свой подход к решению этого вопроса.
A better way to pass Data from Api to Composable
Автор статьи поднимает такую тему, как передача данных, полученных из API, в Composable функции, а также объясняет, почему это плохая практика, и предлагает свой подход к решению этого вопроса.
Medium
A better way to pass Data from Api to Composable - Jetpack Compose
Give an immunity booster does to our composables!
👎6👍3
#Article #Medium
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
👍6❤2🔥2🤔2
#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
#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/Runwww.tgoop.com/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/Runwww.tgoop.com/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
Compose Release Digest (29.06 — 04.08)
Традиционный дайджест (в обновленном формате) по основным изменениям последних релизов библиотек фреймворка, среди которых:
🔹RC/Stable🔹
🔸🔸Compose Compiler (1.2.0)
▫️ Добавлена поддержка версий Kotlin 1.7.0
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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/Runwww.tgoop.com/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
#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 #Medium #Performance
Comparing Jetpack Compose performance with XML
Статья с сравнением производительности Compose и XML-based экранов на основе таких показателей, как количество задержек отдельных кадров, а также скорость загрузки всей страницы. Материал особенно будет полезен для тех, кто собирается попробовать Jetpack Compose в production коде, но хотел бы для начала изучить результаты benchmark-ов.
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
#Article #Medium #Performance #Recomposition
Optimizing Recomposition in Jetpack Compose: Stability System
Одной из ключевых особенностей Compose является Умная рекомпозиция (Smart recomposition), которая заключается в пропуске рекомпозиции для тех Composable функций, у которых значения входных параметров не изменились и являются стабильными.
В этом смысле, стабильность является достаточно важной концепцией, потому как именно она гарантирует, что Compose Runtime сможет безопасно считывать и сравнивать эти входные данные, чтобы, при необходимости, пропустить рекомпозицию.
Подробнее о том, что же всё-таки такое “стабильность” и “stability system” в Compose — в сегодняшней статье.
Optimizing Recomposition in Jetpack Compose: Stability System
Одной из ключевых особенностей Compose является Умная рекомпозиция (Smart recomposition), которая заключается в пропуске рекомпозиции для тех Composable функций, у которых значения входных параметров не изменились и являются стабильными.
В этом смысле, стабильность является достаточно важной концепцией, потому как именно она гарантирует, что Compose Runtime сможет безопасно считывать и сравнивать эти входные данные, чтобы, при необходимости, пропустить рекомпозицию.
Подробнее о том, что же всё-таки такое “стабильность” и “stability system” в Compose — в сегодняшней статье.
👍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
#Release #Compose #Changelog
Compose Release Digest (05.08 — 12.09)
После небольшого перерыва возвращаемся с традиционным дайджестом по основным изменениям последних релизов библиотек фреймворка, среди которых:
🔹RC/Stable🔹
🔸🔸Compose Compiler (1.3.0 — 1.3.1)
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.2.1)
▫️ Несколько минорных изменений по сравнению с 1.2.0
🔹Alpha/Beta🔹
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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
Compose Release Digest (05.08 — 12.09)
После небольшого перерыва возвращаемся с традиционным дайджестом по основным изменениям последних релизов библиотек фреймворка, среди которых:
🔹RC/Stable🔹
🔸🔸Compose Compiler (1.3.0 — 1.3.1)
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.2.1)
▫️ Несколько минорных изменений по сравнению с 1.2.0
🔹Alpha/Beta🔹
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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
#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
#Article #Medium
Building A Jetpack Compose Window With AbstractComposeView
Бывают кейсы, когда нужно открыть Composable контент поверх Android View (при постепенной интеграции Compose в существующий проект), и для этого не подойдут Dialog или Popup. В таком случае автор статьи предлагает использовать кастомное решение, основанное на AbstractComposeView и называет его "Jetpack Compose Window".
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
#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/Runwww.tgoop.com/UI (1.3.0-rc01)
▫️Добавлен новый API Hyphens для поддержки автоматических переносов при работе с текстом. (Подробнее)
▫️Улучшены Snapping-анимации. (Подробнее)
▫️Исправлена утечка памяти у LazyColumn из-за невызова метода onModifierLocalsUpdated. (Подробнее)
🔹Alpha/Beta🔹
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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
Compose Release Digest (13.09 — 12.10)
Традиционный дайджест по основным изменениям последних релизов библиотек фреймворка, среди которых:
🔹RC/Stable🔹
🔸🔸Compose Compiler (1.3.2)
▫️Добавлена поддержка версий Kotlin 1.7.20
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/UI (1.3.0-rc01)
▫️Добавлен новый API Hyphens для поддержки автоматических переносов при работе с текстом. (Подробнее)
▫️Улучшены Snapping-анимации. (Подробнее)
▫️Исправлена утечка памяти у LazyColumn из-за невызова метода onModifierLocalsUpdated. (Подробнее)
🔹Alpha/Beta🔹
🔸🔸Compose Animation/Foundation/Material/Runwww.tgoop.com/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