ch
Feedback
Mobile Compose

Mobile Compose

前往频道在 Telegram

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

显示更多
2 992
订阅者
无数据24 小时
-27
+630
帖子存档
#Article #Medium Exploring Jetpack Compose Canvas: the power of drawing Работа с Canvas является одной из основополагающих в создании собственных UI-компонентов. В сегодняшней статье автор делится своим опытом работы с Canvas при помощи Jetpack Compose. Большая часть примеров кода приведена из проекта автора, созданного в рамках TheAndroidDevChallenge#2.

#Article #Medium Android Jetpack Compose: DecayAnimationSpec Made Easy Продолжаем тему анимаций. На этот раз мы поговорим о Fling-анимациях, которые при работе с Jetpack Compose реализуются при помощи интерфейса DecayAnimationSpec. Подробнее об этом в сегодняшней статье.

#Article #Medium Android Jetpack Compose: Animation Spec Made Easy Грамотное использование интерполяции позволяет задать анимации более реалистичное поведение. При работе с Jetpack Compose наиболее распространенным способом интерполировать анимацию является использование интерфейса AnimationSpec. Что это и как это правильно использовать в своих проектах в сегодняшней статье.

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

sticker.webp0.30 KB

#Article #Medium Jetpack Compose Animations I Одни из наиболее значительных изменений, появившихся с приходом бета-версии, касаются нового API анимации, упрощающего процесс поддержки уже существующих, а также создания новых анимаций. Часть анимаций из нового API с примерами кода и демонстрацией результата показывает автор сегодняшней статьи.

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

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

#Article #Medium Android Jetpack Compose: CompositionLocal Made Easy Совсем недавно здесь была пост о том, как ребята из “Технократии” сделали библиотеку для динамической смены локализации при помощи CompositionLocal. В сегодняшней статье знакомимся поближе с этим инструментом, а также разбираемся в чём же разница между staticCompositionLocalOf и compositionLocalOf.

#Article #Article Dealing with flaky tests in Jetpack Compose Статья рассказывает о том, как работать с так называемыми “Flaky” тестами при покрытии Jetpack Compose кода. В качестве решения проблемы автор предлагает использовать функционал библиотеки Barista. Подробнее в сегодняшней статье.

#Article #Habr CompositionLocal в Jetpack Compose. Что это и как с его помощью реализовать реактивную локализацию приложения Неплохая статья, в которой автор предлагает свою реализацию динамической смены локализации без пересоздания Activity при помощи CompositionLocal. Работает пока что это всё только с локальными строками проекта, однако решение уже рабочее и его можно посмотреть на Github-страничке.

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

#Article #Medium How To Understand Composables & Recomposition: A Beginners Guide To Jetpack Compose Неплохая статья, покрывающая основные фундаментальные концепции и термины, относящиеся к Jetpack Compose. Для лучшего восприятия материала, автор старается использовать как можно меньше незнакомых терминов, а также рассматривать новые концепции в сравнении с уже имеющимися решениями в традиционном UI-фреймворке.

#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 в своей новой статье.