#Article #Habr
CompositionLocal в Jetpack Compose. Что это и как с его помощью реализовать реактивную локализацию приложения
Неплохая статья, в которой автор предлагает свою реализацию динамической смены локализации без пересоздания Activity при помощи CompositionLocal. Работает пока что это всё только с локальными строками проекта, однако решение уже рабочее и его можно посмотреть на Github-страничке.
CompositionLocal в Jetpack Compose. Что это и как с его помощью реализовать реактивную локализацию приложения
Неплохая статья, в которой автор предлагает свою реализацию динамической смены локализации без пересоздания Activity при помощи CompositionLocal. Работает пока что это всё только с локальными строками проекта, однако решение уже рабочее и его можно посмотреть на Github-страничке.
Хабр
CompositionLocal в Jetpack Compose. Что это и как с его помощью реализовать реактивную локализацию приложения
Власть в блоге Технократии переходит андроид-разработчикам. Владислав Титов рассказывает, как добиться непрерывающегося UI при смене локализации. В чем проблема Работа со строковыми...
#Article #Article
Dealing with flaky tests in Jetpack Compose
Статья рассказывает о том, как работать с так называемыми “Flaky” тестами при покрытии Jetpack Compose кода. В качестве решения проблемы автор предлагает использовать функционал библиотеки Barista. Подробнее в сегодняшней статье.
Dealing with flaky tests in Jetpack Compose
Статья рассказывает о том, как работать с так называемыми “Flaky” тестами при покрытии Jetpack Compose кода. В качестве решения проблемы автор предлагает использовать функционал библиотеки Barista. Подробнее в сегодняшней статье.
Medium
Dealing with flaky tests in Jetpack Compose
Sometimes is difficult to avoid flaky UI tests and Jetpack Compose is no exception. However we can use its tools to deal with them…
#Article #Medium
Android Jetpack Compose: CompositionLocal Made Easy
Совсем недавно здесь была пост о том, как ребята из “Технократии” сделали библиотеку для динамической смены локализации при помощи CompositionLocal. В сегодняшней статье знакомимся поближе с этим инструментом, а также разбираемся в чём же разница между staticCompositionLocalOf и compositionLocalOf.
Android Jetpack Compose: CompositionLocal Made Easy
Совсем недавно здесь была пост о том, как ребята из “Технократии” сделали библиотеку для динамической смены локализации при помощи CompositionLocal. В сегодняшней статье знакомимся поближе с этим инструментом, а также разбираемся в чём же разница между staticCompositionLocalOf и compositionLocalOf.
Medium
Android Jetpack Compose: CompositionLocal Made Easy
Make Learning Jetpack Compose Easier
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta03
Некоторые из изменений, пришедших с новым минорным бета обновлением:
▫️DefaultMonotonicFrameClock теперь deprecated. Теперь вызов функций withFrameNanos и Recomposer.runRecomposeAndApplyChanges без использования MonotonicFrameClock будет выбрасывать IllegalStateException. (Подробнее)
▫️Добавлено новое API LeadingIconTab для поддержки отображения табами иконок и текста. (Подробнее)
▫️Добавлены опциональные параметры startX/endX и startY/endY для функций swipeUp/swipeDown/swipeLeft/swipeRight из GestureScope. (Подробнее)
▫️FlingBehavior.performFling() теперь вызывается даже при velocity равной 0. (Подробнее)
Новое обновление получилось довольно компактным, без кардинальных изменений, а также обновлений navigation-compose и paging-compose.
Релиз Jetpack Compose 1.0.0-beta03
Некоторые из изменений, пришедших с новым минорным бета обновлением:
▫️DefaultMonotonicFrameClock теперь deprecated. Теперь вызов функций withFrameNanos и Recomposer.runRecomposeAndApplyChanges без использования MonotonicFrameClock будет выбрасывать IllegalStateException. (Подробнее)
▫️Добавлено новое API LeadingIconTab для поддержки отображения табами иконок и текста. (Подробнее)
▫️Добавлены опциональные параметры startX/endX и startY/endY для функций swipeUp/swipeDown/swipeLeft/swipeRight из GestureScope. (Подробнее)
▫️FlingBehavior.performFling() теперь вызывается даже при velocity равной 0. (Подробнее)
Новое обновление получилось довольно компактным, без кардинальных изменений, а также обновлений navigation-compose и paging-compose.
Android Developers
Recent Release Notes | Android Developers
#Article #Medium
Android Jetpack Compose: Theme Made Easy
С приходом Jetpack Compose у разработчиков появилась возможность более гибко работать с различными цветовыми схемами приложения. В сегодняшней статье автор разбирает как можно добавить в приложение поддержку таких решений, а также их динамическую смену на примере тестового приложения. Помимо этого, разбирается случай добавления собственного аттрибута темы при помощи CompositionLocal.
Android Jetpack Compose: Theme Made Easy
С приходом Jetpack Compose у разработчиков появилась возможность более гибко работать с различными цветовыми схемами приложения. В сегодняшней статье автор разбирает как можно добавить в приложение поддержку таких решений, а также их динамическую смену на примере тестового приложения. Помимо этого, разбирается случай добавления собственного аттрибута темы при помощи CompositionLocal.
Medium
Android Jetpack Compose: Theme Made Easy
Make Learning Jetpack Compose Easier
#Article #Medium #Animation
Jetpack Compose Animations I
Одни из наиболее значительных изменений, появившихся с приходом бета-версии, касаются нового API анимации, упрощающего процесс поддержки уже существующих, а также создания новых анимаций. Часть анимаций из нового API с примерами кода и демонстрацией результата показывает автор сегодняшней статьи.
Jetpack Compose Animations I
Одни из наиболее значительных изменений, появившихся с приходом бета-версии, касаются нового API анимации, упрощающего процесс поддержки уже существующих, а также создания новых анимаций. Часть анимаций из нового API с примерами кода и демонстрацией результата показывает автор сегодняшней статьи.
Medium
Jetpack Compose Animations I
Jetpack Compose has been in beta for a while (yay!), meaning that there’s been a lot of breaking changes in its API. One of the greatest…
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta04
Некоторые из изменений, пришедших с новым бета обновлением:
▫️Методы showSoftwareKeyboard() и hideSoftwareKeyboard() интерфейса SoftwareKeyboardController переименованы в show() и hide() соответственно. (Подробнее)
▫️Добавлен новый тип TextOverflow для текстовых полей — Visible. (Подробнее)
▫️Теперь локальные composable функции (объявленные внутри других аналогичных) не будут игнорироваться при рекомпозиции внешней функции. (Подробнее)
▫️Исправлена проблема rememberSaveable() с восстановлением некорректного значения при работе с полями ввода. (Подробнее)
▫️Добавлено новое LiveRegion API для работы со специальными возможностями Android. (Подробнее)
Новое обновление коснулось и дополнения, связанного с навигацией — navigation-compose было обновлено до версии 1.0.0-alpha10.
Важно также помнить, что для перехода на beta04 необходимо поднять версию Kotlin compiler до 1.4.32.
Релиз Jetpack Compose 1.0.0-beta04
Некоторые из изменений, пришедших с новым бета обновлением:
▫️Методы showSoftwareKeyboard() и hideSoftwareKeyboard() интерфейса SoftwareKeyboardController переименованы в show() и hide() соответственно. (Подробнее)
▫️Добавлен новый тип TextOverflow для текстовых полей — Visible. (Подробнее)
▫️Теперь локальные composable функции (объявленные внутри других аналогичных) не будут игнорироваться при рекомпозиции внешней функции. (Подробнее)
▫️Исправлена проблема rememberSaveable() с восстановлением некорректного значения при работе с полями ввода. (Подробнее)
▫️Добавлено новое LiveRegion API для работы со специальными возможностями Android. (Подробнее)
Новое обновление коснулось и дополнения, связанного с навигацией — navigation-compose было обновлено до версии 1.0.0-alpha10.
Важно также помнить, что для перехода на beta04 необходимо поднять версию Kotlin compiler до 1.4.32.
Android Developers
Recent Release Notes | Android Developers
#Article #Medium #Animation
Android Jetpack Compose: Animation Spec Made Easy
Грамотное использование интерполяции позволяет задать анимации более реалистичное поведение. При работе с Jetpack Compose наиболее распространенным способом интерполировать анимацию является использование интерфейса AnimationSpec. Что это и как это правильно использовать в своих проектах в сегодняшней статье.
Android Jetpack Compose: Animation Spec Made Easy
Грамотное использование интерполяции позволяет задать анимации более реалистичное поведение. При работе с Jetpack Compose наиболее распространенным способом интерполировать анимацию является использование интерфейса AnimationSpec. Что это и как это правильно использовать в своих проектах в сегодняшней статье.
Medium
Android Jetpack Compose: Animation Spec Made Easy
Make Learning Jetpack Compose Easier
#Article #Medium #Animation
Android Jetpack Compose: DecayAnimationSpec Made Easy
Продолжаем тему анимаций. На этот раз мы поговорим о Fling-анимациях, которые при работе с Jetpack Compose реализуются при помощи интерфейса DecayAnimationSpec. Подробнее об этом в сегодняшней статье.
Android Jetpack Compose: DecayAnimationSpec Made Easy
Продолжаем тему анимаций. На этот раз мы поговорим о Fling-анимациях, которые при работе с Jetpack Compose реализуются при помощи интерфейса DecayAnimationSpec. Подробнее об этом в сегодняшней статье.
Medium
Android Jetpack Compose: DecayAnimationSpec Made Easy
Make Learning Jetpack Compose Easy
#Article #Medium #Canvas
Exploring Jetpack Compose Canvas: the power of drawing
Работа с Canvas является одной из основополагающих в создании собственных UI-компонентов. В сегодняшней статье автор делится своим опытом работы с Canvas при помощи Jetpack Compose. Большая часть примеров кода приведена из проекта автора, созданного в рамках TheAndroidDevChallenge#2.
Exploring Jetpack Compose Canvas: the power of drawing
Работа с Canvas является одной из основополагающих в создании собственных UI-компонентов. В сегодняшней статье автор делится своим опытом работы с Canvas при помощи Jetpack Compose. Большая часть примеров кода приведена из проекта автора, созданного в рамках TheAndroidDevChallenge#2.
Medium
Exploring Jetpack Compose Canvas: the power of drawing
In this article, I will share my experience of using Canvas with Jetpack Compose, which is the new UI toolkit made by Google. The Android…
#Youtube #Video
Android Crew LiveCoding: Compose Advanced
Совсем недавно на очередной Podlodka Android Crew была организована livecoding сессия по Jetpack Compose, а вел ее сам разработчик фреймворка из Google (а по совместительству гость нашего канала 🙂) — Андрей Куликов. Целью доклада было сфокусироваться на более продвинутых вариантах использования приложений, а также показать как они реализуются при помощи Jetpack Compose. Рекомендую к просмотру!
Android Crew LiveCoding: Compose Advanced
Совсем недавно на очередной Podlodka Android Crew была организована livecoding сессия по Jetpack Compose, а вел ее сам разработчик фреймворка из Google (а по совместительству гость нашего канала 🙂) — Андрей Куликов. Целью доклада было сфокусироваться на более продвинутых вариантах использования приложений, а также показать как они реализуются при помощи Jetpack Compose. Рекомендую к просмотру!
YouTube
Лайвкодинг: Compose Advanced / Андрей Куликов
Понравилось видео и хочешь узнать что-то еще про Android и Compose? Забирай весь плейлист на https://is.gd/kChYnl или купи билет на следующий сезон конференции https://is.gd/auKynm
Подпишись на канал – каждую неделю мы выкладываем новые видео про то, как…
Подпишись на канал – каждую неделю мы выкладываем новые видео про то, как…
#Article #Blog #Web #Compose
Technology Preview: Jetpack Compose for Web
Команда разработчиков JetBrains несколько дней назад представили технологическое превью Compose for Web — имплементацию известного нам UI-фреймворка для Web разработки. Больше подробностей о новой разработке можно прочитать в блоге компании.
Technology Preview: Jetpack Compose for Web
Команда разработчиков JetBrains несколько дней назад представили технологическое превью Compose for Web — имплементацию известного нам UI-фреймворка для Web разработки. Больше подробностей о новой разработке можно прочитать в блоге компании.
The JetBrains Blog
Technology Preview: Compose for Web | The Kotlin Blog
First came the desktop, now comes the world wide web: Jetpack Compose advances to the browser! Today, we are releasing the first technology preview of Jetpack Compose for Web. While we keep actively d
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta05 & 1.0.0-beta06
Некоторые из изменений, пришедших с последними двумя бета обновлениями:
▫️Добавлены новые CollectionInfo и CollectionItemInfo API для работы с semantics списков. (Подробнее)
▫️Добавлены дефолтные значения (0.dp) для PaddingValues. (Подробнее)
▫️Исправлен баг с некорректным размером Row/Column при использовании weight(fill = false) дочерним элементом. (Подробнее)
▫️Добавлены Font() функции для получения шрифтов из ресурсов, файлов и FileDescriptor. (Подробнее)
▫️Добавлен конструктор TextUnit(value: Float, type: TextUnitType). (Подробнее)
Последние обновления получились без кардинальных изменений и не затронули navigation-compose и paging-compose.
Релиз Jetpack Compose 1.0.0-beta05 & 1.0.0-beta06
Некоторые из изменений, пришедших с последними двумя бета обновлениями:
▫️Добавлены новые CollectionInfo и CollectionItemInfo API для работы с semantics списков. (Подробнее)
▫️Добавлены дефолтные значения (0.dp) для PaddingValues. (Подробнее)
▫️Исправлен баг с некорректным размером Row/Column при использовании weight(fill = false) дочерним элементом. (Подробнее)
▫️Добавлены Font() функции для получения шрифтов из ресурсов, файлов и FileDescriptor. (Подробнее)
▫️Добавлен конструктор TextUnit(value: Float, type: TextUnitType). (Подробнее)
Последние обновления получились без кардинальных изменений и не затронули navigation-compose и paging-compose.
Android Developers
Recent Release Notes | Android Developers
#Article #Medium
Compose CameraX on Android
Jetpack Compose + CameraX = ?
На данный момент официального способа интегрировать CameraX в приложение на компоузе нет. Автор статьи рассказывает как можно обойти это ограничение, предлагая для этого свое решение.
Compose CameraX on Android
Jetpack Compose + CameraX = ?
На данный момент официального способа интегрировать CameraX в приложение на компоузе нет. Автор статьи рассказывает как можно обойти это ограничение, предлагая для этого свое решение.
Medium
Compose CameraX on Android
A common way to use CameraX in Jetpack compose on Android
Друзья, у меня для вас маленькое объявление🔥.
Нас уже почти 600, и это наше общее большое достижение. За чуть больше полугода существования канал вырос до крупнейшего ресурса в Telegram, посвященного Jetpack Compose. Однако на этом мы останавливаться не будем. Отныне тематика канала будет посвящена использованию Compose не только в Android, но и в мобильной (а также кроссплатформенной) разработке в целом.
А для формирования правильной айдентики канала я решил, что теперь он будет называться "Mobile Compose", что наиболее точно будет отражать его контент.
Всем спасибо, двигаемся дальше!🙂
Нас уже почти 600, и это наше общее большое достижение. За чуть больше полугода существования канал вырос до крупнейшего ресурса в Telegram, посвященного Jetpack Compose. Однако на этом мы останавливаться не будем. Отныне тематика канала будет посвящена использованию Compose не только в Android, но и в мобильной (а также кроссплатформенной) разработке в целом.
А для формирования правильной айдентики канала я решил, что теперь он будет называться "Mobile Compose", что наиболее точно будет отражать его контент.
Всем спасибо, двигаемся дальше!🙂
#Conference
SECON'2021
Уже совсем скоро, в конце июня пройдет XII Международная конференция разработчиков ПО SECON'2021, на которой будет куча интересных докладов про мобильную разработку, кроссплатформу, геймдев и многое другое (кстати, я там тоже выступлю с материалом 😉). Ну а для тех, кто захочет отдохнуть между докладами, на территории конференции будет доступно множество активностей (включая Afterparty в конце первого дня).
◽️ Где? — гостиничный комплекс «Арт-Пенза»
◽️ Когда? — 19 и 20 июня
◽️ Подробности? — На официальном сайте мероприятия
SECON'2021
Уже совсем скоро, в конце июня пройдет XII Международная конференция разработчиков ПО SECON'2021, на которой будет куча интересных докладов про мобильную разработку, кроссплатформу, геймдев и многое другое (кстати, я там тоже выступлю с материалом 😉). Ну а для тех, кто захочет отдохнуть между докладами, на территории конференции будет доступно множество активностей (включая Afterparty в конце первого дня).
◽️ Где? — гостиничный комплекс «Арт-Пенза»
◽️ Когда? — 19 и 20 июня
◽️ Подробности? — На официальном сайте мероприятия
#Article #Medium
Wastewater tracking app with HMS ML Kit sound detection and Jetpack Compose
Разнообразие идей применения Jetpack Compose в различных задачах не перестает удивлять. На этот раз автор решил написать приложение для учёта расхода воды при помощи HMS ML Kit и Jetpack Compose. Как и что из этого вышло — в сегодняшней статье.
Wastewater tracking app with HMS ML Kit sound detection and Jetpack Compose
Разнообразие идей применения Jetpack Compose в различных задачах не перестает удивлять. На этот раз автор решил написать приложение для учёта расхода воды при помощи HMS ML Kit и Jetpack Compose. Как и что из этого вышло — в сегодняшней статье.
Medium
Wastewater tracking app with HMS ML Kit sound detection and Jetpack Compose
Water is a finite resource and we should be aware to not waste it.
#compose #desktop #kotlin
Compose for Desktop: Milestone 4 Released
Compose для десктоп продолжает стремительно развиваться и вот уже вчера, ребята из JetBrains представили новое обновление фреймворка — Milestone 4. Новый релиз содержит множество функций, которые упростят разработку десктопных решений, в числе которых:
▫️Новое эксперементальное API для работы с Window, Dialog, MenuBar, и Tray
▫️Добавление поддержки Tooltip при помощи компонента BoxWithTooltip
▫️Улучшения функций работы с текстом и многое другое.
Больше информации в блоге компании.
Compose for Desktop: Milestone 4 Released
Compose для десктоп продолжает стремительно развиваться и вот уже вчера, ребята из JetBrains представили новое обновление фреймворка — Milestone 4. Новый релиз содержит множество функций, которые упростят разработку десктопных решений, в числе которых:
▫️Новое эксперементальное API для работы с Window, Dialog, MenuBar, и Tray
▫️Добавление поддержки Tooltip при помощи компонента BoxWithTooltip
▫️Улучшения функций работы с текстом и многое другое.
Больше информации в блоге компании.
The JetBrains Blog
Compose for Desktop: Milestone 4 Released | The Kotlin Blog
More desktop UI goodies are coming your way! Milestone 4, the latest version of Compose for Desktop, comes packed with features to help you build even better Kotlin desktop applications with modern, d
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta07 & 1.0.0-beta08
Некоторые из изменений, пришедших с последними двумя бета обновлениями:
▫️AnimatedVisibility теперь можно определять при помощи MutableTransitionState, а также отслеживать изменения жизненного цикла анимации извне. (Подробнее)
▫️Теперь функции detectDragGestures(), detectVerticalGestures() и detectHozirontalGestures() самостоятельно отслеживают и используют изменения положения при жестах (без необходимости дополнительно вызывать .consumeAllChanges()). (Подробнее)
▫️Добавлен таймаут при касании clickable и toggleable элементов для предотвращения показа рипл-эффекта при скроллинге. (Подробнее)
▫️Modifier.focusModifier() теперь deprecated и заменен на Modifier.focusTarget(). (Подробнее)
▫️Card и Surface теперь принимают обязательный параметр onClick, куда стоит вынести всю логику из Modifier.clickable (использование которого теперь будет бесполезным). (Подробнее о Card и подробнее о Surface)
▫️Исправлена проблема beta07, при которой список элементов отображался частично после скролла. (Подробнее)
Новое обновление коснулось и различных дополнений, а именно:
▫️lifecycle-viewmodel-compose обновлен до версии 1.0.0-beta08
▫️paging-compose обновлен до версии 1.0.0-alpha10
▫️constraintlayout-compose обновлен до версии 1.0.0-beta07
Релиз Jetpack Compose 1.0.0-beta07 & 1.0.0-beta08
Некоторые из изменений, пришедших с последними двумя бета обновлениями:
▫️AnimatedVisibility теперь можно определять при помощи MutableTransitionState, а также отслеживать изменения жизненного цикла анимации извне. (Подробнее)
▫️Теперь функции detectDragGestures(), detectVerticalGestures() и detectHozirontalGestures() самостоятельно отслеживают и используют изменения положения при жестах (без необходимости дополнительно вызывать .consumeAllChanges()). (Подробнее)
▫️Добавлен таймаут при касании clickable и toggleable элементов для предотвращения показа рипл-эффекта при скроллинге. (Подробнее)
▫️Modifier.focusModifier() теперь deprecated и заменен на Modifier.focusTarget(). (Подробнее)
▫️Card и Surface теперь принимают обязательный параметр onClick, куда стоит вынести всю логику из Modifier.clickable (использование которого теперь будет бесполезным). (Подробнее о Card и подробнее о Surface)
▫️Исправлена проблема beta07, при которой список элементов отображался частично после скролла. (Подробнее)
Новое обновление коснулось и различных дополнений, а именно:
▫️lifecycle-viewmodel-compose обновлен до версии 1.0.0-beta08
▫️paging-compose обновлен до версии 1.0.0-alpha10
▫️constraintlayout-compose обновлен до версии 1.0.0-beta07
Android Developers
Recent Release Notes | Android Developers
#Article #Medium #UI
Creating a segmented progress bar in Jetpack Compose
Обработка и визуализация прогресса выполнения длительной операции является важным правилом при разработке приложения с точки зрения UI/UX. В Jetpack Compose для этих целей у нас есть два вида индикаторов прогресса — CircularProgress и LinearProgress. Автор сегодняшней статьи рассказывает о создании собственной реализации данного компонента - сегментированного прогресса (внешне похожего на тот, что есть в историях Instagram).
Creating a segmented progress bar in Jetpack Compose
Обработка и визуализация прогресса выполнения длительной операции является важным правилом при разработке приложения с точки зрения UI/UX. В Jetpack Compose для этих целей у нас есть два вида индикаторов прогресса — CircularProgress и LinearProgress. Автор сегодняшней статьи рассказывает о создании собственной реализации данного компонента - сегментированного прогресса (внешне похожего на тот, что есть в историях Instagram).
Medium
Creating a segmented progress bar in Jetpack Compose
Introduction