#Article #Medium #DesignSystem
Building a Design System implementation using Jetpack Compose — Part2 (Component)
Вторая часть статьи о построении дизайн-системы в вашем приложении, используя декларативный подход. Кто не видел первую часть — она тут.
P.S. Также в подборку полезных материалов от Jetpack Compose добавил еще один ресурс — Jetpack Compose Awesome.
Building a Design System implementation using Jetpack Compose — Part2 (Component)
Вторая часть статьи о построении дизайн-системы в вашем приложении, используя декларативный подход. Кто не видел первую часть — она тут.
P.S. Также в подборку полезных материалов от Jetpack Compose добавил еще один ресурс — Jetpack Compose Awesome.
Medium
Building a Design System implementation using Jetpack Compose — Part2 (Component)
Part 1
#Article #Medium #Architecture
Android Jetpack Compose — Create a Component-Based Architecture
Архитектура - один из важнейших аспектов разработки качественного мобильного приложения. Уделив должное внимание качеству кода, масштабируемости системы, а также выбору надежных технологий, можно избежать большинства проблем в будущем. В статье рассматривается вариант создания приложения при помощи Jetpack Compose и компонентной архитектуры, с выделением самостоятельных переиспользуемых компонентов, называемых UIComponents.
Android Jetpack Compose — Create a Component-Based Architecture
Архитектура - один из важнейших аспектов разработки качественного мобильного приложения. Уделив должное внимание качеству кода, масштабируемости системы, а также выбору надежных технологий, можно избежать большинства проблем в будущем. В статье рассматривается вариант создания приложения при помощи Jetpack Compose и компонентной архитектуры, с выделением самостоятельных переиспользуемых компонентов, называемых UIComponents.
Medium
Android Jetpack Compose — Create a Component-Based Architecture
A different way to think of your UI and its subsequent classes
#Release #Alpha #Changelog
Релиз Jetpack Compose 1.0.0-alpha10
Некоторые из изменений, пришедших с новым обновлением:
▫️Добавлен экспериментальный метод stickyHeader для списков LazyColumn и LazyRow
▫️FlowRow и FlowRow теперь deprecated
▫️В конструктор текстовых полей добавлены параметры enabled и readOnly для реализации “неактивного” поля
▫️TestUiDispatcher теперь deprecated, вместо этого использовать Dispatchers.Main
▫️Метод animate() заменён на animateAsState(), который теперь возвращает State<T> вместо T
Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha05, однако существенных изменений в новых версиях библиотек нет.
Релиз Jetpack Compose 1.0.0-alpha10
Некоторые из изменений, пришедших с новым обновлением:
▫️Добавлен экспериментальный метод stickyHeader для списков LazyColumn и LazyRow
▫️FlowRow и FlowRow теперь deprecated
▫️В конструктор текстовых полей добавлены параметры enabled и readOnly для реализации “неактивного” поля
▫️TestUiDispatcher теперь deprecated, вместо этого использовать Dispatchers.Main
▫️Метод animate() заменён на animateAsState(), который теперь возвращает State<T> вместо T
Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha05, однако существенных изменений в новых версиях библиотек нет.
Android Developers
Recent Release Notes | Android Developers
#Article #Medium #UI
Expandable lists in Jetpack Compose
Интересная статья, в которой автор рассказывает как можно реализовать двухуровневый список, в котором каждый элемент при нажатии раскрывается и отображает собственный вложенный список. Всё это работает через ViewModel и StateFlow, а также украшено интересной анимацией сворачивания/разворачивания карточки.
Expandable lists in Jetpack Compose
Интересная статья, в которой автор рассказывает как можно реализовать двухуровневый список, в котором каждый элемент при нажатии раскрывается и отображает собственный вложенный список. Всё это работает через ViewModel и StateFlow, а также украшено интересной анимацией сворачивания/разворачивания карточки.
Medium
Expandable lists in Jetpack Compose
Expandable views are a common way to hide details of a visualised data structures. Let’s take a look at how the following can be achieved…
#Article #Medium
How to Handle User Interactions With Component-Based Architecture and Jetpack Compose
Недавно здесь был пост со статьей про компонентную архитектуру, основной идеей которой является выделение самостоятельных переиспользуемых компонентов, называемых UIComponents. Однако такой подход имеет один минус - любой UIComponent в чистом виде является статичным и не способен обрабатывать действия пользователя (например, клик). В качестве решения этой проблемы автор предлагает использовать интерфейс UIDelegate. Подробнее в сегодняшнем материале.
How to Handle User Interactions With Component-Based Architecture and Jetpack Compose
Недавно здесь был пост со статьей про компонентную архитектуру, основной идеей которой является выделение самостоятельных переиспользуемых компонентов, называемых UIComponents. Однако такой подход имеет один минус - любой UIComponent в чистом виде является статичным и не способен обрабатывать действия пользователя (например, клик). В качестве решения этой проблемы автор предлагает использовать интерфейс UIDelegate. Подробнее в сегодняшнем материале.
#Article #Medium
Infinite Lists With Paging 3 in Jetpack Compose
Пагинация является важным элементом мобильного приложения, когда дело касается работы с различными списками данных. Она позоляет создать эффект “бесконечного списка”, благодаря своевременной подгрузке данных с источника. В Jetpack Compose для этих целей даже существует специальное дополнение — paging-compose. О том, как правильно реализовать “бесконечный список” при помощи paging-compose и рассказывает автор в сегодняшней статье.
Infinite Lists With Paging 3 in Jetpack Compose
Пагинация является важным элементом мобильного приложения, когда дело касается работы с различными списками данных. Она позоляет создать эффект “бесконечного списка”, благодаря своевременной подгрузке данных с источника. В Jetpack Compose для этих целей даже существует специальное дополнение — paging-compose. О том, как правильно реализовать “бесконечный список” при помощи paging-compose и рассказывает автор в сегодняшней статье.
Medium
Infinite Lists With Paging 3 in Jetpack Compose
In this article you will learn how to do pagination with Paging 3 library in Jetpack Compose.
#Article #Medium #Navigation
Android Then and Now: Navigation
Новая статья из серии сравнений различных компонентов Android-разработки "Тогда и Сейчас". На этот раз автор разбирает как изменилась навигационная архитектура мобильных приложений, Среди прочего, автор рассматривает и Single-View подход, который активно используется в Jetpack Compose.
Android Then and Now: Navigation
Новая статья из серии сравнений различных компонентов Android-разработки "Тогда и Сейчас". На этот раз автор разбирает как изменилась навигационная архитектура мобильных приложений, Среди прочего, автор рассматривает и Single-View подход, который активно используется в Jetpack Compose.
Medium
Android Then and Now: Navigation
Android Development has changed a lot over the years. Let’s look back at how things were, and explore what’s changed! Today: Navigation.
#Release #Alpha #Changelog
Релиз Jetpack Compose 1.0.0-alpha11
Некоторые из изменений, пришедших с новым большим обновлением:
▫️Переходы (transitions), основанные на transitionDefinition<>, теперь deprecated.
▫️Метод animateAsState() заменён на более конкретные методы animateFloatAsState(), animateDpAsState(), animateOffsetAsState() и т.д.
▫️Методы items(items: List) and itemsIndexed(items: List) для списков теперь являются extension-функциями, поэтому после миграции на alpha11 придётся их импортировать вручную.
▫️В конструктор Image и Icon добавлен обязательный параметр contentDescription.
▫️ScrollableColumn/Row теперь deprecated. Вместо них рекомендуется использовать LazyColumn и LazyRow.
▫️WithConstraints переименован в BoxWithConstraints и перемещён в пакет foundation.layout.
▫️У BasicTextField появился параметр decorationBox, который позволяет добавить различные декорации к текстовому полю (такие как иконка, заголовок, плейсхолдер и т.д.).
▫️Surface теперь может иметь несколько вложенных потомков.
Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha06.
Изменений на этот раз довольно мало, в основном исправление существующих проблем:
▫️По пагинации существенных изменений нет.
▫️Для NavController добавлен extension-метод getBackStackEntry(route: String).
P.S. Также важно, что для перехода на alpha11 необходимо поднять версию Kotlin compiler до 1.4.21-2.
P.S.S. Мы преодолели отметку в 400! Спасибо всем, двигаемся дальше.
Релиз Jetpack Compose 1.0.0-alpha11
Некоторые из изменений, пришедших с новым большим обновлением:
▫️Переходы (transitions), основанные на transitionDefinition<>, теперь deprecated.
▫️Метод animateAsState() заменён на более конкретные методы animateFloatAsState(), animateDpAsState(), animateOffsetAsState() и т.д.
▫️Методы items(items: List) and itemsIndexed(items: List) для списков теперь являются extension-функциями, поэтому после миграции на alpha11 придётся их импортировать вручную.
▫️В конструктор Image и Icon добавлен обязательный параметр contentDescription.
▫️ScrollableColumn/Row теперь deprecated. Вместо них рекомендуется использовать LazyColumn и LazyRow.
▫️WithConstraints переименован в BoxWithConstraints и перемещён в пакет foundation.layout.
▫️У BasicTextField появился параметр decorationBox, который позволяет добавить различные декорации к текстовому полю (такие как иконка, заголовок, плейсхолдер и т.д.).
▫️Surface теперь может иметь несколько вложенных потомков.
Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha06.
Изменений на этот раз довольно мало, в основном исправление существующих проблем:
▫️По пагинации существенных изменений нет.
▫️Для NavController добавлен extension-метод getBackStackEntry(route: String).
P.S. Также важно, что для перехода на alpha11 необходимо поднять версию Kotlin compiler до 1.4.21-2.
P.S.S. Мы преодолели отметку в 400! Спасибо всем, двигаемся дальше.
Android Developers
Recent Release Notes | Android Developers
#Article #Medium
Jetpack Compose Image Content ScaleType Fully Illustrated
При работе с изображением нередко встает вопрос о его размещении внутри какой-либо другой формы. В традиционном Android UI-фреймворке мы имеем параметр android:scaleType, предлагающий различные режимы масштабирования, которые можно применить к изображению в зависимости от размера представления, в которое оно будет помещено. В Jetpack Compose для решения этого вопроса используются сразу два параметра — alignment и contentScale. Подробнее о том, в каких случаях нужно использовать те или иные значения параметров, автор рассказывает в сегодняшней статье.
Jetpack Compose Image Content ScaleType Fully Illustrated
При работе с изображением нередко встает вопрос о его размещении внутри какой-либо другой формы. В традиционном Android UI-фреймворке мы имеем параметр android:scaleType, предлагающий различные режимы масштабирования, которые можно применить к изображению в зависимости от размера представления, в которое оно будет помещено. В Jetpack Compose для решения этого вопроса используются сразу два параметра — alignment и contentScale. Подробнее о том, в каких случаях нужно использовать те или иные значения параметров, автор рассказывает в сегодняшней статье.
Medium
Jetpack Compose Image Content ScaleType Fully Illustrated
Easily determine which image scale type you need
#Release #Alpha #Changelog
Релиз Jetpack Compose 1.0.0-alpha12
Некоторые из изменений, пришедших с новым обновлением:
▫️AnimatedValue/Float теперь deprecated. Вместо этого теперь стоит использовать Animatable. (Подробнее)
▫️Для LazyColumn/LazyRow добавлены настраиваемые ключи для более эффективной работы с изменяемыми данными списка. (Подробнее)
▫️tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter и pressIndicaitonGestureFilter теперь deprecated. Доступ к жестам можно теперь получить при помощи Modifier.pointerInput и функции detectTapGestures. (Подробнее)
▫️ConstraintLayout вынесли в отдельное API, которое теперь нужно подключать отдельно к проекту. (Подробнее)
▫️Для Tab и BottomNavigationItem добавлен параметр enabled для обработки случая, когда компонент не должен реагировать на нажатия. (Подробнее)
▫️Блок ComponentActivity.setContent перенесен из пакета androidx.compose.ui.platform в androidx.activity.compose. (Подробнее)
Обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha07.
Помимо этого, было добавлено еще дополнение для работы с ViewModel — lifecycle-viewmodel-compose
Некоторые из изменений, коснувшихся дополнений:
▫️navigation-compose теперь зависит от lifecycle-viewmodel-compose для обеспечения поддержки viewModel() composable-destinations. (Подробнее)
▫️NavHost теперь использует LocalOnBackPressedDispatcherOwner из зависимости Activity-Compose для получения OnBackPressedDispatcher. (Подробнее)
P.S. Также важно, что для перехода на alpha12 необходимо поднять версию Kotlin compiler до 1.4.30, а также подключить зависимость androidx.activity:activity-compose:1.3.0-alpha02.
Релиз Jetpack Compose 1.0.0-alpha12
Некоторые из изменений, пришедших с новым обновлением:
▫️AnimatedValue/Float теперь deprecated. Вместо этого теперь стоит использовать Animatable. (Подробнее)
▫️Для LazyColumn/LazyRow добавлены настраиваемые ключи для более эффективной работы с изменяемыми данными списка. (Подробнее)
▫️tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter и pressIndicaitonGestureFilter теперь deprecated. Доступ к жестам можно теперь получить при помощи Modifier.pointerInput и функции detectTapGestures. (Подробнее)
▫️ConstraintLayout вынесли в отдельное API, которое теперь нужно подключать отдельно к проекту. (Подробнее)
▫️Для Tab и BottomNavigationItem добавлен параметр enabled для обработки случая, когда компонент не должен реагировать на нажатия. (Подробнее)
▫️Блок ComponentActivity.setContent перенесен из пакета androidx.compose.ui.platform в androidx.activity.compose. (Подробнее)
Обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha07.
Помимо этого, было добавлено еще дополнение для работы с ViewModel — lifecycle-viewmodel-compose
Некоторые из изменений, коснувшихся дополнений:
▫️navigation-compose теперь зависит от lifecycle-viewmodel-compose для обеспечения поддержки viewModel() composable-destinations. (Подробнее)
▫️NavHost теперь использует LocalOnBackPressedDispatcherOwner из зависимости Activity-Compose для получения OnBackPressedDispatcher. (Подробнее)
P.S. Также важно, что для перехода на alpha12 необходимо поднять версию Kotlin compiler до 1.4.30, а также подключить зависимость androidx.activity:activity-compose:1.3.0-alpha02.
Android Developers
Recent Release Notes | Android Developers
Друзья! В последней публикации о новом релизе я решил добавить ссылки на PR в AOSP для каждого описанного изменения. Это может быть полезно тем, кто хочет воочию разобраться с тем, как то или иное изменение было реализовано. Как вам такая идея? Продолжать это в последующих релизах или оставить лишь краткое описание (как было раньше)?
#Article #Medium
Getting our apps ready for Jetpack Compose
Пока активно развивающийся Jetpack Compose близится к бета релизу, все больше разработчиков начинают задумываться о переводе своих уже существующих проектов на новый фреймворк. О том, как подготовиться к такому переходу “с минимальными потерями” рассказывает Android GDE Joe Birch в своей новой статье.
Getting our apps ready for Jetpack Compose
Пока активно развивающийся Jetpack Compose близится к бета релизу, все больше разработчиков начинают задумываться о переводе своих уже существующих проектов на новый фреймворк. О том, как подготовиться к такому переходу “с минимальными потерями” рассказывает Android GDE Joe Birch в своей новой статье.
Medium
Getting our apps ready for Jetpack Compose
Since the announcement of Jetpack Compose, followed by the developer and alpha releases of the framework, excitement has been building…
#Links #Release
Announcing #TheAndroidShow: Jetpack Compose!
Как говорится, дождались 🔥!
Спустя почти полгода после перехода Jetpack Compose в статус alpha и выпуска 12 релизов обновлений, Google готов анонсировать beta релиз фреймворка на специально организованном мероприятии TheAndroidShow. Помимо анонса беты, нас ждут новости прямиком от разработчиков JC, ну и конечно же, надеемся на то, что нам назовут более-менее точную дату стабильного релиза.
▫️ Когда? — 24 февраля в 20:00
А для тех, кто по каким-либо причинам не сможет посмотреть шоу, я в любом случае устрою “разбор полётов” после мероприятия, где постараюсь осветить главные моменты🙂.
Announcing #TheAndroidShow: Jetpack Compose!
Как говорится, дождались 🔥!
Спустя почти полгода после перехода Jetpack Compose в статус alpha и выпуска 12 релизов обновлений, Google готов анонсировать beta релиз фреймворка на специально организованном мероприятии TheAndroidShow. Помимо анонса беты, нас ждут новости прямиком от разработчиков JC, ну и конечно же, надеемся на то, что нам назовут более-менее точную дату стабильного релиза.
▫️ Когда? — 24 февраля в 20:00
А для тех, кто по каким-либо причинам не сможет посмотреть шоу, я в любом случае устрою “разбор полётов” после мероприятия, где постараюсь осветить главные моменты🙂.
YouTube
Announcing #TheAndroidShow: Jetpack Compose!
Join us on February 24 at 9AM PT for #TheAndroidShow, where we'll give you a behind the scenes look at Jetpack Compose, Android's modern toolkit for building native UI.
Tweet us your burning question on Jetpack Compose using #TheAndroidShow. We've assembled…
Tweet us your burning question on Jetpack Compose using #TheAndroidShow. We've assembled…
#Links #Release
#TheAndroidShow: Jetpack Compose Livestream
Напоминаю, что сегодня, уже через 2 часа, начнётся TheAndroidShow, на котором нам должны представить бету, а также рассказать о дальнейших планах развития Jetpack Compose.
Ссылка на трансляцию тут
#TheAndroidShow: Jetpack Compose Livestream
Напоминаю, что сегодня, уже через 2 часа, начнётся TheAndroidShow, на котором нам должны представить бету, а также рассказать о дальнейших планах развития Jetpack Compose.
Ссылка на трансляцию тут
YouTube
#TheAndroidShow: Jetpack Compose Livestream
Join us on February 24 at 9AM PT for #TheAndroidShow, where we'll give you a behind the scenes look at Jetpack Compose, Android's modern toolkit for building native UI.
Tweet us your burning question on Jetpack Compose using #TheAndroidShow. We've assembled…
Tweet us your burning question on Jetpack Compose using #TheAndroidShow. We've assembled…
#Links #Release #Beta
Обзор TheAndroidShow
Как и обещал, “разбор полётов” вчерашней конференции. В целом TheAndroidShow прошло неплохо, хотя именно новых каких-то вещей показано почти не было. Было много рассказов о том, как поменяет жизнь в лучшую сторону использование нового фреймворка, ответы на несколько вопросов из твиттера, а также мелкие подробности по поводу будущего JC.
Основные выводы шоу:
▫️ API теперь стабильное, никаких больше кардинальных изменений от релиза к релизу
▫️ При этом разработчики настаивают на том, что это всё-таки не Stable релиз, поэтому баги никто не отменял (именно над их устранением и будет работать команда до Stable)
▫️ Завезли новые решения для анимаций, которые решили показать прямо на шоу.
▫️ По Stable пока ничего не понятно, но, вроде как без изменений, ориентир на лето 2021.
P.S. Ну а ближайшее время ждите дайджест с изменениям в бете 😉
Обзор TheAndroidShow
Как и обещал, “разбор полётов” вчерашней конференции. В целом TheAndroidShow прошло неплохо, хотя именно новых каких-то вещей показано почти не было. Было много рассказов о том, как поменяет жизнь в лучшую сторону использование нового фреймворка, ответы на несколько вопросов из твиттера, а также мелкие подробности по поводу будущего JC.
Основные выводы шоу:
▫️ API теперь стабильное, никаких больше кардинальных изменений от релиза к релизу
▫️ При этом разработчики настаивают на том, что это всё-таки не Stable релиз, поэтому баги никто не отменял (именно над их устранением и будет работать команда до Stable)
▫️ Завезли новые решения для анимаций, которые решили показать прямо на шоу.
▫️ По Stable пока ничего не понятно, но, вроде как без изменений, ориентир на лето 2021.
P.S. Ну а ближайшее время ждите дайджест с изменениям в бете 😉
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta01
Некоторые из изменений, пришедших с обновлением до беты:
▫️Важно!🔥 Modifier.width/height/size были переименованы в Modifier.requiredWidth/requiredHeight/requiredSize, а Modifier.preferredWidth/preferredHeight/preferredSize, наоборот, переименованы в Modifier.width/height/size. При миграции на бету обязательно нужно на это обратить внимание. (Подробнее)
▫️Modifier.zoomable() заменён на Modifier.transformable() с новой функциональностью. (Подробнее)
▫️Теперь поля ввода сами обрабатывают фокус, а значит (в теории) никаких больше костылей с открытием клавиатуры. (Подробнее)
▫️Добавлен новый LocalSoftwareKeyboardController вместо существующего SoftwareKeyboardController. (Подробнее)
▫️Добавлен интерфейс TextFieldColors для представления различных цветов текста внутри полей ввода. (Подробнее)
▫️Для кликабельных элементов (кнопок, или использующих Modifier.clickable()) вместо передачи interactionState = remember { InteractionState() } необходимо теперь использовать interactionSource = remember { MutableInteractionSource() } для обработки различных взаимодействий с компонентов. (Подробнее)
▫️Стандартный метод setContent() из compose:ui окончательно удалён. Вместо него нужно использовать аналогичный, получаемый из зависимости activity-compose. То же самое касается и viewModel() с LocalViewModelStoreOwner — для их использования теперь подключаем lifecycle-viewmodel-compose. (Подробнее)
▫️Если у вас есть векторная анимация, написанная внутри XML, этот ресурс теперь можно импортировать с помощью функции animatedVectorResource(). (Подробнее)
▫️А также большое количество мелких Material API изменений. (Подробнее)
Новое обновление коснулось и дополнений, связанных с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha08, однако существенных изменений в них практически нет.
Важно также помнить, что для перехода на beta01 необходимо поднять версию Kotlin compiler до 1.4.30, а также использовать свежую версию Android Studio Arctic Fox Canary 8 (2020.3.1.8).
P.S. Нас уже больше 500! Спасибо всем, чем больше нас — тем быстрее будет развиваться комьюнити, а вместе с ним и разработка Jetpack Compose.
P.S.S. Также напомню, что у нас еще есть свой чат-канал, в котором вы можете задать интересующий вопрос по JC 🙂.
Релиз Jetpack Compose 1.0.0-beta01
Некоторые из изменений, пришедших с обновлением до беты:
▫️Важно!🔥 Modifier.width/height/size были переименованы в Modifier.requiredWidth/requiredHeight/requiredSize, а Modifier.preferredWidth/preferredHeight/preferredSize, наоборот, переименованы в Modifier.width/height/size. При миграции на бету обязательно нужно на это обратить внимание. (Подробнее)
▫️Modifier.zoomable() заменён на Modifier.transformable() с новой функциональностью. (Подробнее)
▫️Теперь поля ввода сами обрабатывают фокус, а значит (в теории) никаких больше костылей с открытием клавиатуры. (Подробнее)
▫️Добавлен новый LocalSoftwareKeyboardController вместо существующего SoftwareKeyboardController. (Подробнее)
▫️Добавлен интерфейс TextFieldColors для представления различных цветов текста внутри полей ввода. (Подробнее)
▫️Для кликабельных элементов (кнопок, или использующих Modifier.clickable()) вместо передачи interactionState = remember { InteractionState() } необходимо теперь использовать interactionSource = remember { MutableInteractionSource() } для обработки различных взаимодействий с компонентов. (Подробнее)
▫️Стандартный метод setContent() из compose:ui окончательно удалён. Вместо него нужно использовать аналогичный, получаемый из зависимости activity-compose. То же самое касается и viewModel() с LocalViewModelStoreOwner — для их использования теперь подключаем lifecycle-viewmodel-compose. (Подробнее)
▫️Если у вас есть векторная анимация, написанная внутри XML, этот ресурс теперь можно импортировать с помощью функции animatedVectorResource(). (Подробнее)
▫️А также большое количество мелких Material API изменений. (Подробнее)
Новое обновление коснулось и дополнений, связанных с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha08, однако существенных изменений в них практически нет.
Важно также помнить, что для перехода на beta01 необходимо поднять версию Kotlin compiler до 1.4.30, а также использовать свежую версию Android Studio Arctic Fox Canary 8 (2020.3.1.8).
P.S. Нас уже больше 500! Спасибо всем, чем больше нас — тем быстрее будет развиваться комьюнити, а вместе с ним и разработка Jetpack Compose.
P.S.S. Также напомню, что у нас еще есть свой чат-канал, в котором вы можете задать интересующий вопрос по JC 🙂.
Android Developers
Recent Release Notes | Android Developers
#Beta #TheAndroidShow #Video #Youtube
Android Developers: Jetpack Compose screencasts
Помимо проведённого TheAndroidShow, на Youtube канале Android Developers появилось много обучающих видео, посвященных новому фреймворку. Это одинаково хорошо как для только начинающих своё знакомство с JC, так и для тех, кто уже активно использует его в своих проектах. Я решил собрать все туториалы в одном месте:
▫️ Jetpack Compose: Beta overview — общий обзор возможностей Jetpack Compose в разрезе новой беты.
▫️ Jetpack Compose: State — обучающий ролик о работе с одной из главных фич JC - состоянием.
▫️ Jetpack Compose: Accessibility — обучающий ролик о добавлении в ваш проект специальных возможностей, таких как озвучка текста или contentDescription изображений при помощи TalkBack.
▫️ Jetpack Compose: Lists — обучающий ролик о работе со списком данных в вашем приложении.
▫️ Jetpack Compose: Animation — обучающий ролик о работе c различными видами анимаций при помощи нового API.
▫️ Jetpack Compose: Testing — обучающий ролик о правильном написании тестов для проверки корректности работы вашего приложения.
P.S. В след за “легкой эйфорией”, появившейся после презентации беты на шоу, пришла более суровая реальность миграции всех проектов с alpha12, что оказалось немного сложнее, чем переход между двумя альфа-релизами. А если и у вас возникали подобные проблемы — всегда можно задать вопрос в нашем чат-канале.
Android Developers: Jetpack Compose screencasts
Помимо проведённого TheAndroidShow, на Youtube канале Android Developers появилось много обучающих видео, посвященных новому фреймворку. Это одинаково хорошо как для только начинающих своё знакомство с JC, так и для тех, кто уже активно использует его в своих проектах. Я решил собрать все туториалы в одном месте:
▫️ Jetpack Compose: Beta overview — общий обзор возможностей Jetpack Compose в разрезе новой беты.
▫️ Jetpack Compose: State — обучающий ролик о работе с одной из главных фич JC - состоянием.
▫️ Jetpack Compose: Accessibility — обучающий ролик о добавлении в ваш проект специальных возможностей, таких как озвучка текста или contentDescription изображений при помощи TalkBack.
▫️ Jetpack Compose: Lists — обучающий ролик о работе со списком данных в вашем приложении.
▫️ Jetpack Compose: Animation — обучающий ролик о работе c различными видами анимаций при помощи нового API.
▫️ Jetpack Compose: Testing — обучающий ролик о правильном написании тестов для проверки корректности работы вашего приложения.
P.S. В след за “легкой эйфорией”, появившейся после презентации беты на шоу, пришла более суровая реальность миграции всех проектов с alpha12, что оказалось немного сложнее, чем переход между двумя альфа-релизами. А если и у вас возникали подобные проблемы — всегда можно задать вопрос в нашем чат-канале.
#Article #Medium
Architecture in Jetpack Compose — MVP, MVVM, & MVI
Интересная статья, разбирающая извечный вопрос “Какую архитектуру использовать для presentation-слоя приложения?” в контексте приложения на Jetpack Compose.
А какой архитектурный подход нравится больше вам?
Architecture in Jetpack Compose — MVP, MVVM, & MVI
Интересная статья, разбирающая извечный вопрос “Какую архитектуру использовать для presentation-слоя приложения?” в контексте приложения на Jetpack Compose.
А какой архитектурный подход нравится больше вам?
Medium
Architecture in Jetpack Compose — MVP, MVVM, & MVI
This articles an experiment at how the architecture patterns we’re all familiar with transfer to compose.
#Article #Medium #Recomposition
How To Understand Composables & Recomposition: A Beginners Guide To Jetpack Compose
Неплохая статья, покрывающая основные фундаментальные концепции и термины, относящиеся к Jetpack Compose. Для лучшего восприятия материала, автор старается использовать как можно меньше незнакомых терминов, а также рассматривать новые концепции в сравнении с уже имеющимися решениями в традиционном UI-фреймворке.
How To Understand Composables & Recomposition: A Beginners Guide To Jetpack Compose
Неплохая статья, покрывающая основные фундаментальные концепции и термины, относящиеся к Jetpack Compose. Для лучшего восприятия материала, автор старается использовать как можно меньше незнакомых терминов, а также рассматривать новые концепции в сравнении с уже имеющимися решениями в традиционном UI-фреймворке.
Medium
How To Understand Composables & Recomposition: A Beginners Guide To Jetpack Compose
The purpose of this article is to explain a few fundamental concepts and terms regrading the Jetpack Compose UI Library on Android. I…
#Release #Beta #Changelog
Релиз Jetpack Compose 1.0.0-beta02
Некоторые из изменений, пришедших с новым минорным бета обновлением:
▫️Небольшие изменения, связанные с выравниванием контента внутри AppBar и BottomAppBar. (Подробнее)
▫️Оптимизировали логику измерения LazyColumn, что позволило улучшить производительность списка примерно на 35%. (Подробнее)
▫️Добавлено дополнение hilt-navigation-compose с новым API для работы с viewmodel. (Подробнее)
▫️Исправлена проблема, возникавшая при сохранении состояния через rememberSaveable внутри NavHost destination. (Подробнее)
Новое обновление коснулось и дополнения, связанного с навигацией — navigation-compose было обновлено до версии 1.0.0-alpha09, основным изменением которой является то, что LocalViewModelStoreOwner.current теперь возвращает ViewModelStoreOwner? для точного определения, доступен ли ViewModelStoreOwner в текущей композиции.
Важно также помнить, что для перехода на beta02 необходимо поднять версию Kotlin compiler до 1.4.31.
Релиз Jetpack Compose 1.0.0-beta02
Некоторые из изменений, пришедших с новым минорным бета обновлением:
▫️Небольшие изменения, связанные с выравниванием контента внутри AppBar и BottomAppBar. (Подробнее)
▫️Оптимизировали логику измерения LazyColumn, что позволило улучшить производительность списка примерно на 35%. (Подробнее)
▫️Добавлено дополнение hilt-navigation-compose с новым API для работы с viewmodel. (Подробнее)
▫️Исправлена проблема, возникавшая при сохранении состояния через rememberSaveable внутри NavHost destination. (Подробнее)
Новое обновление коснулось и дополнения, связанного с навигацией — navigation-compose было обновлено до версии 1.0.0-alpha09, основным изменением которой является то, что LocalViewModelStoreOwner.current теперь возвращает ViewModelStoreOwner? для точного определения, доступен ли ViewModelStoreOwner в текущей композиции.
Важно также помнить, что для перехода на beta02 необходимо поднять версию Kotlin compiler до 1.4.31.
Android Developers
Recent Release Notes | Android Developers