ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

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 Architecture in Jetpack Compose — MVP, MVVM, & MVI Интересная статья, разбирающая извечный вопрос “Какую архитектуру использовать для presentation-слоя приложения?” в контексте приложения на Jetpack Compose. А какой архитектурный подход нравится больше вам?

#Beta #TheAndroidShow #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, что оказалось немного сложнее, чем переход между двумя альфа-релизами. А если и у вас возникали подобные проблемы — всегда можно задать вопрос в нашем чат-канале.

#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 🙂.

#Links #Release #Beta Обзор TheAndroidShow Как и обещал, “разбор полётов” вчерашней конференции. В целом TheAndroidShow прошл
#Links #Release #Beta Обзор TheAndroidShow Как и обещал, “разбор полётов” вчерашней конференции. В целом TheAndroidShow прошло неплохо, хотя именно новых каких-то вещей показано почти не было. Было много рассказов о том, как поменяет жизнь в лучшую сторону использование нового фреймворка, ответы на несколько вопросов из твиттера, а также мелкие подробности по поводу будущего JC. Основные выводы шоу: ▫️ API теперь стабильное, никаких больше кардинальных изменений от релиза к релизу ▫️ При этом разработчики настаивают на том, что это всё-таки не Stable релиз, поэтому баги никто не отменял (именно над их устранением и будет работать команда до Stable) ▫️ Завезли новые решения для анимаций, которые решили показать прямо на шоу. ▫️ По Stable пока ничего не понятно, но, вроде как без изменений, ориентир на лето 2021. P.S. Ну а ближайшее время ждите дайджест с изменениям в бете 😉

#Links #Release #TheAndroidShow​: Jetpack Compose Livestream Напоминаю, что сегодня, уже через 2 часа, начнётся TheAndroidShow, на котором нам должны представить бету, а также рассказать о дальнейших планах развития Jetpack Compose. Ссылка на трансляцию тут

#Links #Release Announcing #TheAndroidShow​: Jetpack Compose! Как говорится, дождались 🔥! Спустя почти полгода после перехода Jetpack Compose в статус alpha и выпуска 12 релизов обновлений, Google готов анонсировать beta релиз фреймворка на специально организованном мероприятии TheAndroidShow. Помимо анонса беты, нас ждут новости прямиком от разработчиков JC, ну и конечно же, надеемся на то, что нам назовут более-менее точную дату стабильного релиза. ▫️ Когда? — 24 февраля в 20:00 А для тех, кто по каким-либо причинам не сможет посмотреть шоу, я в любом случае устрою “разбор полётов” после мероприятия, где постараюсь осветить главные моменты🙂.

#Article #Medium Getting our apps ready for Jetpack Compose Пока активно развивающийся Jetpack Compose близится к бета релизу, все больше разработчиков начинают задумываться о переводе своих уже существующих проектов на новый фреймворк. О том, как подготовиться к такому переходу “с минимальными потерями” рассказывает Android GDE Joe Birch в своей новой статье.

​​Друзья! В последней публикации о новом релизе я решил добавить ссылки на PR в AOSP для каждого описанного изменения. Это может быть полезно тем, кто хочет воочию разобраться с тем, как то или иное изменение было реализовано. Как вам такая идея? Продолжать это в последующих релизах или оставить лишь краткое описание (как было раньше)?

#Release #Alpha Релиз 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.

#Article #Medium Jetpack Compose Image Content ScaleType Fully Illustrated При работе с изображением нередко встает вопрос о его размещении внутри какой-либо другой формы. В традиционном Android UI-фреймворке мы имеем параметр android:scaleType, предлагающий различные режимы масштабирования, которые можно применить к изображению в зависимости от размера представления, в которое оно будет помещено. В Jetpack Compose для решения этого вопроса используются сразу два параметра — alignment и contentScale. Подробнее о том, в каких случаях нужно использовать те или иные значения параметров, автор рассказывает в сегодняшней статье.

#Release #Alpha Релиз 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? На канале @android_school_ru ты найдёшь современные бесплатные туториалы по Android-разработке,
🚀Программируешь под Android? На канале @android_school_ru ты найдёшь современные бесплатные туториалы по Android-разработке, которые автор публикует каждую неделю Из последних: - Введение в Kotlin Coroutines - Распознавание образов на базе ML Kit и CameraX в Android - WorkManager для управления фоновыми задачами - Реализуем бесконечный список на базе Android Paging Library 3.0 Каждый туториал снабжён пошаговым объяснением и исходным кодом. После прохождения мини-курса получается готовое приложение - отличный способ изучить современные фишки Android. Подпишись на канал @android_school_ru и будь в курсе всех нововведений Android-разработки

#Article #Medium Android Then and Now: Navigation Новая статья из серии сравнений различных компонентов Android-разработки "Тогда и Сейчас". На этот раз автор разбирает как изменилась навигационная архитектура мобильных приложений, Среди прочего, автор рассматривает и Single-View подход, который активно используется в Jetpack Compose.

#Article #Medium Infinite Lists With Paging 3 in Jetpack Compose Пагинация является важным элементом мобильного приложения, когда дело касается работы с различными списками данных. Она позоляет создать эффект “бесконечного списка”, благодаря своевременной подгрузке данных с источника. В Jetpack Compose для этих целей даже существует специальное дополнение — paging-compose. О том, как правильно реализовать “бесконечный список” при помощи paging-compose и рассказывает автор в сегодняшней статье.

#Article #Medium How to Handle User Interactions With Component-Based Architecture and Jetpack Compose Недавно здесь был пост со статьей про компонентную архитектуру, основной идеей которой является выделение самостоятельных переиспользуемых компонентов, называемых UIComponents. Однако такой подход имеет один минус - любой UIComponent в чистом виде является статичным и не способен обрабатывать действия пользователя (например, клик). В качестве решения этой проблемы автор предлагает использовать интерфейс UIDelegate. Подробнее в сегодняшнем материале.

#Article #Medium Expandable lists in Jetpack Compose Интересная статья, в которой автор рассказывает как можно реализовать двухуровневый список, в котором каждый элемент при нажатии раскрывается и отображает собственный вложенный список. Всё это работает через ViewModel и StateFlow, а также украшено интересной анимацией сворачивания/разворачивания карточки.

#Release #Alpha Релиз 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, однако существенных изменений в новых версиях библиотек нет.

#Article #Medium #Architecture Android Jetpack Compose — Create a Component-Based Architecture Архитектура - один из важнейших аспектов разработки качественного мобильного приложения. Уделив должное внимание качеству кода, масштабируемости системы, а также выбору надежных технологий, можно избежать большинства проблем в будущем. В статье рассматривается вариант создания приложения при помощи Jetpack Compose и компонентной архитектуры, с выделением самостоятельных переиспользуемых компонентов, называемых UIComponents.

#Article #Medium #DesignSystem Building a Design System implementation using Jetpack Compose — Part2 (Component) Вторая часть статьи о построении дизайн-системы в вашем приложении, используя декларативный подход. Кто не видел первую часть — она тут. P.S. Также в подборку полезных материалов от Jetpack Compose добавил еще один ресурс — Jetpack Compose Awesome.

​​Друзья, вот и заканчивается 2020 год.🎄 Это был год действительно больших перемен для многих из нас. Работа, различные мероприятия, да и простое общение с теми кто близок — всё перешло в режим online, к чему мы все (не сразу, конечно) адаптировались. Что же касается IT-индустрии, то она всё так же стремительно развивается, а значит в грядущем, 2021 году, всё у нас будет хорошо.👍 За почти три месяца существования канала нас уже почти 400 человек, и я уверен, что это далеко не предел, за что вам, друзья, большое спасибо. Ведь именно вместе мы участвуем в формировании Jetpack Compose сообщества в русскоязычном пространстве.💪 Желаю вам как следует отдохнуть на новогодних праздниках и с новыми силами вернуться уже в наступившем году. Ну и ждём релиза Beta (а быть может и Stable) версии JC в 2021 году 🙂 @Composable fun Greeting(year: Int) { Text(text = "С наступающим $year годом!") }