ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

Mobile Compose

Mobile Compose

前往频道在 Telegram

Твой главный путеводитель в мир Jetpack Compose и Compose Multiplatform. Android XR: @android_xr Личный блог: @grigorievdy_blog Автор: @grigorievdy Поддержать канал: https://t.me/mobile_compose?boost

显示更多
2 943
订阅者
无数据24 小时
-17 天
-930 天
帖子存档
#Article #Medium Passing multi typed data between screens with Jetpack Compose navigation component. Третья и последняя статья из серии, посвященной навигации в Jetpack Compose. Как уже известно, все объекты, которые можно передать между экранами, по-умолчанию являются String-типа. Однако, зачастую, нам необходимо передать объект другого примитивного типа (передача Parcelable в данный момент недоступна) и именно о том, как правильно это сделать, рассказывает автор данного материала.

#Article #Medium Passing string typed data with Jetpack Compose navigation component В одном из предыдущих постов публиковалась статья о том, как добавить навигацию между вкладками вашего приложения используя compose-navigation. Однако мало какая навигация обходится без передачи между экранами дополнительных параметров. В Jetpack Compose все такие объекты по-умолчанию String-типа. В статье описывается как передавать и получать объекты такого типа между экранами.

#Article #Medium StaggeredVerticalGrid of Android Jetpack Compose В предыдущих публикациях мы уже разбирали различные реализации списков в Jetpack Compose (статьи про LazyColumnFor и LazyGridFor). Однако помимо этого, существует еще один вид списка, появляющийся в приложениях реже других, но правильное и уместное использование которого может значительно украсить ваше приложение. И имя этому списку — StaggeredVerticalGrid. Автор статьи предлагает свою реализацию этого компонента с примером использования и описанием внутреннего устройства. Весьма неплохое решение пока не появился официальный компонент в foundation-библиотеке.

​​Друзья, у меня есть хорошая новость! Кто еще не в курсе, Александр Горшков (автор канала Android Live) позвал меня в гости на свой Youtube-канал, где мы в прямом эфире напишем небольшое мобильное приложение на Jetpack Compose, а вы сможете задать интересующие вас вопросы. ▫️Что? — На встрече разберем такие аспекты как работа со списком, навигацией, анимацией и много чего еще. ▫️Где? — Youtube-канал Android Live (ссылка появится немного позже) ▫️Когда? — 21 декабря в 18:30 по МСК

#Release #Alpha Релиз Jetpack Compose 1.0.0-alpha09 Некоторые из изменений, пришедших с новым минорным обновлением: ▫️LazyColumnFor и LazyRowFor теперь deprecated, вместо них надо использовать LazyColumn и LazyRow ▫️Добавлен LazyVerticalGrid 🔥 ▫️В конструктор текстовых полей добавлен параметр InteractionState (для работы с состояниями Dragged, Pressed и Focused) ▫️Modifier.focusObserver теперь deprecated, вместо этого надо использовать Modifier.onFocusChanged или Modifier.onFocusEvent ▫️Modifier.offset теперь возвращает в лямбде IntOffset вместо Float Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha04. Изменений на этот раз довольно мало, в основном исправление существующих проблем: ▫️Обновлены свойства CombinedLoadStates.refresh, CombinedLoadStates.prepend и CombinedLoadStates.append применимо к переходу из состояния Loading в состояние NotLoading ▫️По навигации существенных изменений нет P.S. Также важно, что для перехода на alpha09 необходимо поднять версию Kotlin compiler до 1.4.21. По заявлению разработчиков это последний релиз в уходящем года и новый стоят ожидать уже в январе.

#Article #Medium RecyclerView and LazyColumnFor in Jetpack Compose Большинство мобильных приложений так или иначе работают со списками данных. В одном из прошлых постов рассказывалось как реализовать Grid-список при помощи LazyGridFor(). На этот раз поговорим о более часто используемом виде списка — линейном, который представлен в Jetpack Compose функциями LazyColumnFor() и LazyRowFor() в зависимости от необходимой ориентации списка. В статье также затрагиваются такие темы как работа с несколькими видами ViewType, а также обработка таких кейсов как ItemDecoration и Workaround.

#Links #Github #Codelabs #Medium На данные момент существует большое количество источников, позволяющих детально рассмотреть основные Composable-функции для формирования UI с примерами их использования. Большим плюсом таковых является поддержание актуальности документации и примеров, что весьма немаловажно когда продукт находится в Alpha-статусе. Решил собрать в рамках одного поста все полезные источники: ▫️ Google codelabs - официальные кодлабы от Google ▫️ Jetpack Compose Playground - отличный источник с большим количеством разделов, гайдов и примеров ▫️ Learn Jetpack Compose By Example - в дополнение к предыдущему, содержит много ответов на часто возникающие вопросы у начинающих. ▫️ Which Compose API to use? - интересный сервис, позволяющий по выбранному компоненту из классического UI-фреймворка получить эквивалентный ему в Jetpack Compose, а также посмотреть примеры его использования ▫️ Jetpack Compose Awesome - как и Playground, содержит в себе много полезных ссылок по Jetpack Compose. P.S. Если есть интересные источники, которых нет в этом списке, пишите в наш чат-канал😉.

#Article #Medium Android Jetpack Compose: Remember Made Easy Совсем недавно на канале выходил пост о рекомпозиции в Jetpack Compose при помощи mutableStateOf(). В качестве продолжения, в этой статье автор решил рассмотреть другую немаловажную концепцию в работе со State — remember.

#Release #Alpha Релиз Jetpack Compose 1.0.0-alpha08 Некоторые из изменений, пришедших с новым обновлением: ▫️Убран параметр maxLines у CoreTextField. Для этих целей теперь нужно использовать BasicTextField. Также в BasicTextField, TextField and OutlinedTextField добавлен параметр singeLine. ▫️Добавлен детектор таких мультитач-жестов, как rotation, zoom и panning. ▫️AbsoluteArrangement заменен на Arrangement.Absolute. ▫️Modifier.drawOpacity и Modifier.drawShadow переименованы в Modifier.alpha и Modifier.shadow соответственно. ▫️Новое API для запуска анимаций из корутин и многое другое. Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha03. Изменений на этот раз довольно мало, в основном исправление существующих проблем: ▫️Исправлена проблема, при которой popBackStack() и navigateUp() не работали после смены конфигурации или пересоздания процесса приложения ▫️Исправлена навигация по вложенному графу внутри NavHost P.S. Также важно, что для перехода на alpha08 необходимо поднять версию Kotlin compiler до 1.4.20

#Article #Medium Android Jetpack Compose: Recomposition Made Easy Автор статьи рассказывает о рекомпозиции — свойстве Jetpack Compose, позволяющем перерисовывать UI-компоненты без необходимости вызова самих Composable-функций. Всё это решается при помощи mutableStateOf().

#Article #Medium Jetpack Compose Interop Part 2: Using Compose in Traditional Android Views and Layouts with ComposeView Продолжение предыдущей статьи о возможности обратной совместимости между Jetpack Compose и традиционным UI-фреймворком. На этот раз автор статьи рассказывает о возможностях ComposeView и AbstractComposeView, позволяющих "встраивать" Composable-код в XML-вёрстку.

#Article #Medium Jetpack Compose Interop Part 1: Using Traditional Views and Layouts in Compose with AndroidView Интероперабельность - одно из важнейших преимуществ Jetpack Compose, обеспечивающее обратную совместимость между классическим и Composable кодом. Это позволяет без особого труда комбинировать оба подхода в рамках одного проекта, что важно, если необходимо внедрить JC в уже существующее приложение. В статье рассказывается о возможностях использования функции AndroidView, позволяющей размещать классические UI-компоненты внутри Composable-функций.

#Article #Navigation Implement Bottom Bar Navigation in Jetpack Compose Bottom Navigation - один из самых популярных паттернов в формировании дизайна Android приложения, который используется практически в каждом большом проекте. С его помощью приложение можно разделить на разные по содержимому контенту и выполняемым функциям секции. Автор статьи предлагает свой вариант реализации навигации через Bottom Navigation при помощи уже известного navigation-compose.

#Article #Animations Jetpack Compose Animations Tutorial: Getting Started Анимация играет далеко не маловажную роль в любом Android приложении. Зачастую именно при помощи красивой и качественно реализованной анимации можно акцентировать внимание пользователя на деталях, или же, наоборот, компенсировать другие недостатки приложения. В Jetpack Compose анимациям уделено особое внимание в виде отдельного API. Именно об этом инструменте и о различных возможностях работы с ним рассказывает автор статьи на примере простой кнопки.

Друзья, в прошлой публикации я решил сделать обзор нового релиза Jetpack Compose с кратким описанием основных изменений. Это полезно при миграции с одной версии на другую, особенно если речь идет об альфе. В связи с тем, что таких релизов планируется еще множество, есть идея выкладывать такие обзоры и дальше. Как вам такая идея? P.S. Также не забывайте о нашем чат-канале, в котором мы можете писать свои предложения. 🙂

#Release #Alpha Релиз Jetpack Compose 1.0.0-alpha07 Некоторые из изменений, пришедших с новым обновлением: ▫️ Добавлена поддержка Modifier.fillParentMaxSize внутри скоупа LazyColumn/Row ▫️ Добавлен BasicTextField на замену BaseTextField и CoreTextField ▫️ foundation.Text теперь deprecated, вместо него нужно использовать material.Text ▫️ Добавлен параметр KeyboardOptions для работы с текстовыми полями (вместо отдельных KeyboardType и ImeAction) и многое другое. Также обновление коснулось и дополнений, связанные с навигацией и пагинацией — navigation-compose и paging-compose были обновлены до версии 1.0.0-alpha02. Краткий список изменений, появившихся с обновлением: ▫️ Добавлен NavOptionsBuilder в качестве опционального параметра для функции .navigate() ▫️ Добавлены функции .popUpTo() и .launchSingleTop(), реализуемы с помощью NavOptions ▫️ Добавлены методы .peek(), .snapshot(), .retry() и .refresh() для LazyPagingItems P.S. Разработчики заявили что уходят на небольшой перерыв в связи с приближающимся праздником Дня благодарения, а поэтому новый релиз стоит ожидать не раньше чем через 3 недели.

#Article #Medium Android Jetpack Compose — Exploring State Based UI Отображение списка данных является неотъемлимой частью большинства мобильных приложений. На данный момент в Jetpack Compose существует возможность создания лишь линейных списков при помощи функций LazyColumnFor() и LazyRowFor(). В качестве решения этой проблемы автор статьи предлагает использовать собственное решение - LazyGridFor() (аналог GridLayoutManager для RecyclerView). Помимо этого, в статье рассматривается пошаговая реализация UI-состояний экрана с таким списком, а также их обработка при помощи StateFlow.

#AndroidBroadcast #Desktop #Youtube Jetpack Compose на Desktop - Android Broadcast В прошлом посте я рассказывал о дебютном релизе Jetpack Compose for Desktop, а уже сегодня, в гости к каналу Android Broadcast пришёл руководитель команды Compose for Desktop в JetBrains — Николай Иготти. Рекомендую к просмотру.

#Links #Desktop #Github Jetpack Compose for Desktop: Milestone 1 Released Сегодня компанией JetBrains был анонсирован первый релиз Jetpack Compose for Desktop, с помощью которого можно декларативно писать приложения для десктопных ОС (поддержка Windows, macOS и Linux). С примерами приложений можно ознакомиться в отдельном репозитории GitHub.

#Links #Github Accompanist by Chris Banes Accompanist - это набор библиотек, содержащий различные полезные утилиты для работы с Jetpack Compose. Проект активно развивается и уже на данном этапе предоставляет функционал для работы с: - Изображениями (используя Glide, Picasso или Coil) - WindowInsets