#Material #AndroidX #Design
Upgrading to Material Components
На Google I/O 2018 было представлено обновление Material Design или его вторая версия. В рамках нее произошло обновление концепции дизайна и UI элементов, даже библиотке с дизайном поменяла пакет и стала
👉 TextInputLayout: OutlinedBox и FilledBox
👉 Material Button: filled, text, elevated
👉 Chips: Filter, Choice, Action
👉 Bottom App Bar
👉 Backdrop Menu
Для тех кому интересно узнать больше о Material Design 2.0 рекомендую изучить официальную документацию и пройти Codelab "Material Advanced Components"
Upgrading to Material Components
На Google I/O 2018 было представлено обновление Material Design или его вторая версия. В рамках нее произошло обновление концепции дизайна и UI элементов, даже библиотке с дизайном поменяла пакет и стала
com.google.android.material:material. В статье рассказывается о том как интегрировать новую библиотеку к себе в проект (придется мигрировать на AndroidX) и немного об обновленных компонентах:👉 TextInputLayout: OutlinedBox и FilledBox
👉 Material Button: filled, text, elevated
👉 Chips: Filter, Choice, Action
👉 Bottom App Bar
👉 Backdrop Menu
Для тех кому интересно узнать больше о Material Design 2.0 рекомендую изучить официальную документацию и пройти Codelab "Material Advanced Components"
Medium
Upgrading to Material Components
Material Components (part of Android Jetpack) bring redesign for well known UI elements and even add new ones to the entire collection. In…
👍1
#Workmanager #ArchComponents #RxJava
How to use WorkManager with RxJava
Для всех тех кто уже начал использовать WorkManager и любит RxJava. В статье вы можете найти рецепт, как подружить эти 2 библиотеки больше чем это умеет
Библиотека позволит вам получать обновления статуса выполнения задач или данные в виде
How to use WorkManager with RxJava
Для всех тех кто уже начал использовать WorkManager и любит RxJava. В статье вы можете найти рецепт, как подружить эти 2 библиотеки больше чем это умеет
androidx.work:work-rxjava2, а также результат приготовления этого рецепта в виде библиотеки RxWorkManagerObservers.Библиотека позволит вам получать обновления статуса выполнения задач или данные в виде
Observable.Medium
How to use WorkManager with RxJava
Work manager is one of the Android Architecture Components. It allows running a deferrable background work which will be executed even…
👍1
#Fragment #BestPractices
Android Fragments Common Queries & Common Mistakes
В современной Android разработки при работе с UI и не только приходится сталкиваться с Fragment API. Оно не является простым и вызывает множество вопросов. В статье автор раскрывает основные из них:
👉 Разница между
👉 Взаимодействие между parent и child
👉 Разница между
👉 Разница между add и replace в
👉 Слушатели, BroadcastReceiver-ы и утечка памяти в
👉 Использование
👉 Разница между
👉 Работа с меню в
👉 В каких случаях
👉
👉 Для передачи аргументов при создании
👉 Организации навигации по back стеку
Android Fragments Common Queries & Common Mistakes
В современной Android разработки при работе с UI и не только приходится сталкиваться с Fragment API. Оно не является простым и вызывает множество вопросов. В статье автор раскрывает основные из них:
👉 Разница между
Fragment.getSupportFragmentManager() и Fragment.getChildFragmentManager()👉 Взаимодействие между parent и child
Fragment-ами👉 Разница между
FragmentStateAdapter and FragmentPagerAdapter в ViewPager и когда какой использовать👉 Разница между add и replace в
FragmentTransaction👉 Слушатели, BroadcastReceiver-ы и утечка памяти в
Fragment👉 Использование
BottomBarNavigation и NavigationDrawer с Fragment (отсылка к библиотеки FragNav)👉 Разница между
FragmentTransaction.commit() and FragmentTransaction.commitAllowingStateLoss()👉 Работа с меню в
Fragment👉 В каких случаях
getContext(), getActivity() и getView() возвращают null👉
onActivityResult() не вызывается во вложенных (child) Fragment👉 Для передачи аргументов при создании
e надо использовать Bundle👉 Организации навигации по back стеку
👍1
Какую тему вы предпочитаете в IDE при написании кода?
Final Results
73%
Темную
25%
Светлую
1%
Не пишу код
👍1
Android Broadcast
#Course Android Architecture Masterclass video course Курс по архитектуре Android приложений, написанию чистого кода и разработке поддерживаемых приложений. Курс стоит $12. Курс состоит из следующих частей: 1️⃣ MVx архитектурные паттерны 2️⃣ MVx в Android…
Я зафакапил сроки, так как сейчас активно провожу время за подготовкой к Mobius и окончанием School.kt (это уже закончилось). Скоро отпуск и там я точно посмотрю этот онлайн курс.
👍1
#GDGMinsk #Meetup
Сегодня, 23 апреля, сообщество GDG Minsk проводит очередной митап по мобильной тематике!
В программе:
🤖 Что может сделать мобильный разработчик в одиночку с помощью Firebase
Константин Конопко@Keeple.app
🤖 Частые ошибки и общий workflow локализации мобильных приложений
Александр Маркевич, Localization team lead, Flo Health Inc
🤖 Безопасность Android приложений
Дмитрий Лукьяненко, Исследователь безопасности Android приложений
В своем докладе Дмитрий расскажет о том, какие проблемы могут возникнуть с защитой данных пользователя, а так же с выполнением несанкционированных действий от его имени.
Регистрация участников с 18.30, начало докладов в 19.00.
Место проведения: SPACE (ул. Октябрьская 16/4).
Сегодня, 23 апреля, сообщество GDG Minsk проводит очередной митап по мобильной тематике!
В программе:
🤖 Что может сделать мобильный разработчик в одиночку с помощью Firebase
Константин Конопко@Keeple.app
🤖 Частые ошибки и общий workflow локализации мобильных приложений
Александр Маркевич, Localization team lead, Flo Health Inc
🤖 Безопасность Android приложений
Дмитрий Лукьяненко, Исследователь безопасности Android приложений
В своем докладе Дмитрий расскажет о том, какие проблемы могут возникнуть с защитой данных пользователя, а так же с выполнением несанкционированных действий от его имени.
Регистрация участников с 18.30, начало докладов в 19.00.
Место проведения: SPACE (ул. Октябрьская 16/4).
👍1
#Tests #Performance
Deep Dive into writing Performance Tests with @JankTest
Тестовая библиотека AndroidX, содержит в себе компонент
Библиотека позволяет производить тест UI на ожидаемое количество кадров. Например, вы можете проверить что при скроллинге списка fps не опускается ниже заданного значения.
Также можно написать свой собственный монитор, который будет проверять производительность UI, как это вам былы бы необходимо.
Deep Dive into writing Performance Tests with @JankTest
Тестовая библиотека AndroidX, содержит в себе компонент
androidx.test.janktesthelper:janktesthelper, который предназначен для тестирования производительности UI. Библиотека позволяет производить тест UI на ожидаемое количество кадров. Например, вы можете проверить что при скроллинге списка fps не опускается ниже заданного значения.
Также можно написать свой собственный монитор, который будет проверять производительность UI, как это вам былы бы необходимо.
Medium
Deep Dive into writing Performance Tests with @JankTest
Android provides us with a jank test helper library to execute performance tests. Find out how to use that library and improve it!
👍1
Какое Dependency Injection (DI) решение вы используете в проектах?
Final Results
60%
Dagger 2
19%
Koin
2%
Kodein
0%
Dagger 1
3%
Собственное
10%
Не использую DI
6%
Другая библиотека
0%
У меня больше одного DI в проекте
#Animation
Lottie 3.0.0 released
Для всех любителей анимаций Lottie - это то, что "доктор прописал". Библиотека позволяет запускать анимации из Adobe After Effects и отображать их нативно на мобильных платформах и Web.
Вышел новый мажорный релиз этой библиотеки 3.0, который привнес следующие изменения:
👉 Поддержка новых эффектов
👉 Улучшение производительности
👉 Исправление багов
👉 Улучшение расхода памяти
Замечание: Сразу вышел релиз 3.0.1, исправляющий незначительные баги
Lottie 3.0.0 released
Для всех любителей анимаций Lottie - это то, что "доктор прописал". Библиотека позволяет запускать анимации из Adobe After Effects и отображать их нативно на мобильных платформах и Web.
Вышел новый мажорный релиз этой библиотеки 3.0, который привнес следующие изменения:
👉 Поддержка новых эффектов
👉 Улучшение производительности
👉 Исправление багов
👉 Улучшение расхода памяти
Замечание: Сразу вышел релиз 3.0.1, исправляющий незначительные баги
GitHub
GitHub - airbnb/lottie-android: Render After Effects animations natively on Android and iOS, Web, and React Native
Render After Effects animations natively on Android and iOS, Web, and React Native - airbnb/lottie-android
👍1
#Performance #UI
Facebook Litho Lessons
Facebook Litho - это библиотека, которая позволяет повысить производительность вашего UI, за счет удаления вложенности, делая структуру виджетов плоскими. Для этого используется свой собственный декларативный способ описания UI.
По ссылке вы найдете несколько видео, общей продолжительностью 16 минут, раскрывающих работу с функционалом библиотеки (не базовыми вещами).
Facebook Litho Lessons
Facebook Litho - это библиотека, которая позволяет повысить производительность вашего UI, за счет удаления вложенности, делая структуру виджетов плоскими. Для этого используется свой собственный декларативный способ описания UI.
По ссылке вы найдете несколько видео, общей продолжительностью 16 минут, раскрывающих работу с функционалом библиотеки (не базовыми вещами).
👍1
#AndroidQ #ScopedStorage #BestPractices
Android Q Scoped Storage: Best Practices and Updates
Следующей релиз Android (Q), направлен на улучшение безопасности пользователей. Частью этих улучшения стали новые ограничения на работу с файлами - Scoped Storage.
Изменения направлены на ограничение работы с файлами, созданными другими приложения и обеспечением механизма для пользователя, позволяющим контролировать возможности по доступу к файлам приложениями.
Для всех тех Android приложения, кто всегда был хорошим и жил по рекомендуемым правилам для работы с файлами, эффекта новых изменений не будет вовсе, либо он будет минимальным.
Для остальных - придется вносить правки в свою работу с файлами, но разработчики Android ОС предоставляют рекомендации, который вы можете найти в статье.
Android Q Scoped Storage: Best Practices and Updates
Следующей релиз Android (Q), направлен на улучшение безопасности пользователей. Частью этих улучшения стали новые ограничения на работу с файлами - Scoped Storage.
Изменения направлены на ограничение работы с файлами, созданными другими приложения и обеспечением механизма для пользователя, позволяющим контролировать возможности по доступу к файлам приложениями.
Для всех тех Android приложения, кто всегда был хорошим и жил по рекомендуемым правилам для работы с файлами, эффекта новых изменений не будет вовсе, либо он будет минимальным.
Для остальных - придется вносить правки в свою работу с файлами, но разработчики Android ОС предоставляют рекомендации, который вы можете найти в статье.
Android Developers Blog
Android Q Scoped Storage: Best Practices and Updates
Application Sandboxing is a core part of Android’s design, isolating apps from each other. In Android Q, taking the same fundamental principle from Application Sandboxing, we introduced Scoped Storage.
👍1
#Optimizations #AndroidGo #Memory #Yandex
Приложение в памяти на практике: наш опыт оптимизации Яндекс.Лончер
Продолжительность: 21:28 + 6:16 (QA)
В докладе рассматриваются следующие вопросы:
👉 Яндекс.Лончер: особенности приложения и почему необходимо его оптимизировать по потреблению памяти. 👉 Особенности работы на Android Go edition
👉 Как измерять расход памяти приложением? Android Studio Profiler, Memory Analyzer (MAT), dumpsys meminfo
👉 Уменьшение потребления памяти приложением: от простых (отказ от Enum-ов) к сложным (lazy inflate и программное создание View)
👉 Мониторинг расхода памяти: Android Lint, тестирование расхода на устройствах/эмуляторах
Также доклад доступен в виде статьи.
Приложение в памяти на практике: наш опыт оптимизации Яндекс.Лончер
Продолжительность: 21:28 + 6:16 (QA)
В докладе рассматриваются следующие вопросы:
👉 Яндекс.Лончер: особенности приложения и почему необходимо его оптимизировать по потреблению памяти. 👉 Особенности работы на Android Go edition
👉 Как измерять расход памяти приложением? Android Studio Profiler, Memory Analyzer (MAT), dumpsys meminfo
👉 Уменьшение потребления памяти приложением: от простых (отказ от Enum-ов) к сложным (lazy inflate и программное создание View)
👉 Мониторинг расхода памяти: Android Lint, тестирование расхода на устройствах/эмуляторах
Также доклад доступен в виде статьи.
YouTube
Droid Party: Яндекс.Телефон - Запись трансляции
Android-митап с командой Яндекс.Телефона.
Программа:
2:52 – Приложение в памяти на практике: наш опыт оптимизации
30:54 – Секреты API Android-устройств
1:20:21 – Как мы интегрировали голосового помощника Алису в Яндекс.Телефон
1:51:12 – Модификация системных…
Программа:
2:52 – Приложение в памяти на практике: наш опыт оптимизации
30:54 – Секреты API Android-устройств
1:20:21 – Как мы интегрировали голосового помощника Алису в Яндекс.Телефон
1:51:12 – Модификация системных…
👍1
#Fragmentation #Yandex #AIDL #AOSP
Секреты API Android-устройств
Продолжительность: 26:36 + 4:13 (QA)
👉 Виды фрагментации Android: по версии API, по версии Android ОС (Phone, Wear, Auto, TV), по производителям
👉 Строение AOSP, встраивание эксклюзивного API производителей устройств (вендоры) в сборку Android
👉 Взаимодействие с API вендоров по средствам AIDL
Секреты API Android-устройств
Продолжительность: 26:36 + 4:13 (QA)
👉 Виды фрагментации Android: по версии API, по версии Android ОС (Phone, Wear, Auto, TV), по производителям
👉 Строение AOSP, встраивание эксклюзивного API производителей устройств (вендоры) в сборку Android
👉 Взаимодействие с API вендоров по средствам AIDL
YouTube
Droid Party: Яндекс.Телефон - Запись трансляции
Android-митап с командой Яндекс.Телефона.
Программа:
2:52 – Приложение в памяти на практике: наш опыт оптимизации
30:54 – Секреты API Android-устройств
1:20:21 – Как мы интегрировали голосового помощника Алису в Яндекс.Телефон
1:51:12 – Модификация системных…
Программа:
2:52 – Приложение в памяти на практике: наш опыт оптимизации
30:54 – Секреты API Android-устройств
1:20:21 – Как мы интегрировали голосового помощника Алису в Яндекс.Телефон
1:51:12 – Модификация системных…
👍1
Какую версию Android Studio вы используете сейчас?
Final Results
8%
3.5 Canary
76%
3.4 (последняя стабильная)
15%
3.3
0%
3.2
0%
3.1
1%
Не использую Android Studio
1%
Не пишу под Android
#NullSafety #Rave #Uber
How Uber Engineering Verifies Data at Runtime with the Annotations You Already Use
Сталкивались ли вы с проблемой, что данные, присылаемые сервером, отличается от ожидаемых вами в описанных вами моделей (классов)? Например, поле которое у вас объявлено как
Не будьте уверены в своем сервере на 100%, так как может что-то поменяться в любой момент и вы начнете ловить странные баги из-за изменений возможных значений в полях. Как итог - трата большого количества времени на поиск проблемы.
Для того чтобы избежать такого рода проблем, в Uber разработали библиотеку Rave. Она генерирует класс, который на основе аннотаций модели, позволяет проверять, что все данные соответствуют вашим ожиданиям, а в противном случае выбрасывает исключение.
Поддерживаются следующие аннотации:
👉
👉TypeDef аннотации:
👉Аннотации ограничений на значения:
👉 Собственные аннотации @MustBeFalse и @MustBeTrue, которыми могут быть аннотированы методы, проверяющие более сложные условия для данных внутри модели.
Валидация кода выглядет следующим образом:
Rave эффективна для интеграции с библиотеками, которые предоставляют сериализованые данные (например JSON), а вы их на стороне клиента парсите в объекты языка. Яркий пример REST сервис, с которым вся работа в Android приложения осуществляется на основе библиотеки Retrofit, причем уже есть готовый конвертер - RaveConverterFactory.
How Uber Engineering Verifies Data at Runtime with the Annotations You Already Use
Сталкивались ли вы с проблемой, что данные, присылаемые сервером, отличается от ожидаемых вами в описанных вами моделей (классов)? Например, поле которое у вас объявлено как
@NonNull вдруг пришло null? Или значение одного из полей моделей должно быть в пределах от 0 до 1, но сервер прислал 1.5?Не будьте уверены в своем сервере на 100%, так как может что-то поменяться в любой момент и вы начнете ловить странные баги из-за изменений возможных значений в полях. Как итог - трата большого количества времени на поиск проблемы.
Для того чтобы избежать такого рода проблем, в Uber разработали библиотеку Rave. Она генерирует класс, который на основе аннотаций модели, позволяет проверять, что все данные соответствуют вашим ожиданиям, а в противном случае выбрасывает исключение.
Поддерживаются следующие аннотации:
👉
@NonNull и @Nullable👉TypeDef аннотации:
@StringDef, @IntDef и @LongDef👉Аннотации ограничений на значения:
@IntRange, @FloatRange, @Size и др.👉 Собственные аннотации @MustBeFalse и @MustBeTrue, которыми могут быть аннотированы методы, проверяющие более сложные условия для данных внутри модели.
Валидация кода выглядет следующим образом:
void validateMyModel(SimpleModel myModel) { try { Rave.getInstance().validate(myModel); } catch (UnsupportedObjectException e) { // handle unsupported error case. } catch (RaveException e) { // handle rave validation error. }}Rave эффективна для интеграции с библиотеками, которые предоставляют сериализованые данные (например JSON), а вы их на стороне клиента парсите в объекты языка. Яркий пример REST сервис, с которым вся работа в Android приложения осуществляется на основе библиотеки Retrofit, причем уже есть готовый конвертер - RaveConverterFactory.
#Kotlin #Conference
Kotlin Night Kyiv 2019
1 июня в Киеве пройдет крупнейшая в Украине конференция по Kotlin и технологиям, связанным с этим языком программирования.
В рамках конференции будет 3 потока:
👉 General
👉 Android
👉 Backend
В рамках конференции я выступлю с докладом о том как добиться полной гармонии при разработке приложений под Android с использованием корутин.
👉 Купить билет 👈 Скидка 10% по промокоду Rozov10
До конца апреля еще есть возможность купить билеты по сниженной цене (1500 UAH ~ 57 $ ~ 3700 RUB)
Kotlin Night Kyiv 2019
1 июня в Киеве пройдет крупнейшая в Украине конференция по Kotlin и технологиям, связанным с этим языком программирования.
В рамках конференции будет 3 потока:
👉 General
👉 Android
👉 Backend
В рамках конференции я выступлю с докладом о том как добиться полной гармонии при разработке приложений под Android с использованием корутин.
👉 Купить билет 👈 Скидка 10% по промокоду Rozov10
До конца апреля еще есть возможность купить билеты по сниженной цене (1500 UAH ~ 57 $ ~ 3700 RUB)
👍1
#Network #Library
netWatch
Небольшая библиотека, которая проверяет наличие доступа в интернет. Именно интернет, а не наличие Wi-Fi или мобильной сети.
Библиотека имеет следующие функции:
👉 Уведомление об изменение состояния подключения к интернету
👉 Отображение системного кастомизуремого уведомления при измненения состояния подключения к интернету
👉 Делать ping по указанному IP адресу, чтобы проверить возможность подключения
netWatch
Небольшая библиотека, которая проверяет наличие доступа в интернет. Именно интернет, а не наличие Wi-Fi или мобильной сети.
Библиотека имеет следующие функции:
👉 Уведомление об изменение состояния подключения к интернету
👉 Отображение системного кастомизуремого уведомления при измненения состояния подключения к интернету
👉 Делать ping по указанному IP адресу, чтобы проверить возможность подключения
GitHub
GitHub - thesiamak/netWatch: Simple Android library to notify Android device network changes and react properly.
Simple Android library to notify Android device network changes and react properly. - GitHub - thesiamak/netWatch: Simple Android library to notify Android device network changes and react properly.
👍1
#Mobius #Conference
22-23 мая в Санкт-Петербурге состоится международная конференция по мобильной разработке — Mobius 2019 Piter!
В центре внимания инженерные подходы в iOS и Android-разработке. Приходите обсудить Java, Kotlin, Swift и другие технологии, инструменты, фреймворки, архитектуру и не только!
Спикеры этой конференции:
👉 Йонатан Левин - Android GDE и основатель Android Academy
👉Андрей Бреслав - отец языка Kotlin, который будет говорить не о Kotlin 😔
👉Corey Latislaw - Android GDE, техлид TAB/The App Business и экс-тимлид Capital One, XfinityTV and Pinterest.
👉Hannes Dorfmann - автор MVP-библиотеки Mosby
👉Денис Неклюдов - GDE по Android, Pay и IoT и ведущий Android Dev Podcast;
👉Константин Цховребов - Android-архитектор в Redmadrobot, автор библиотеки Cicerone.
👉 Кирилл Розов - тимлид в EPAM, автор канала Android Broadcast
Завтра (1 мая) повышается цена на билеты. По промокоду AndroidBroadcastPromo вы получите скидку.
👉👉👉Купить билет 👈👈👈
22-23 мая в Санкт-Петербурге состоится международная конференция по мобильной разработке — Mobius 2019 Piter!
В центре внимания инженерные подходы в iOS и Android-разработке. Приходите обсудить Java, Kotlin, Swift и другие технологии, инструменты, фреймворки, архитектуру и не только!
Спикеры этой конференции:
👉 Йонатан Левин - Android GDE и основатель Android Academy
👉Андрей Бреслав - отец языка Kotlin, который будет говорить не о Kotlin 😔
👉Corey Latislaw - Android GDE, техлид TAB/The App Business и экс-тимлид Capital One, XfinityTV and Pinterest.
👉Hannes Dorfmann - автор MVP-библиотеки Mosby
👉Денис Неклюдов - GDE по Android, Pay и IoT и ведущий Android Dev Podcast;
👉Константин Цховребов - Android-архитектор в Redmadrobot, автор библиотеки Cicerone.
👉 Кирилл Розов - тимлид в EPAM, автор канала Android Broadcast
Завтра (1 мая) повышается цена на билеты. По промокоду AndroidBroadcastPromo вы получите скидку.
👉👉👉Купить билет 👈👈👈
Mobius 2026 Spring. Конференция по мобильной разработке
Mobius 2026 Spring | Конференция по мобильной разработке
Mobius 2026 Spring. Единственная в России профильная IT-конференция для разработчиков мобильных приложений. Android, iOS, Flutter, Kotlin Multiplatform, кроссплатформенная разработка — в десятках докладов, воркшопов и дискуссий.
👍1
#Architecture
Bohemian Wrapsody
Стоит ли оборачивать сторонние библиотеки своими собственными интерфейсами? Это может принести несколько положительных аспектов для вашего проекта:
1️⃣ Независимость от стороннего API
2️⃣ Модуляризация проекта
3️⃣ Скорость сборки и параллельная компиляция модулей независимо
4️⃣ Сторонние зависимости будут объявлены только в модулях где они используются, а не все в модули вашего приложения
5️⃣ Возможность добавления нового функционала в своем API-обертке поверх сторонней библиотеки
В статье рассматриваются подходы как стоит делать такие обертки и каких ошибок не допустить.
Bohemian Wrapsody
Стоит ли оборачивать сторонние библиотеки своими собственными интерфейсами? Это может принести несколько положительных аспектов для вашего проекта:
1️⃣ Независимость от стороннего API
2️⃣ Модуляризация проекта
3️⃣ Скорость сборки и параллельная компиляция модулей независимо
4️⃣ Сторонние зависимости будут объявлены только в модулях где они используются, а не все в модули вашего приложения
5️⃣ Возможность добавления нового функционала в своем API-обертке поверх сторонней библиотеки
В статье рассматриваются подходы как стоит делать такие обертки и каких ошибок не допустить.
Medium
Bohemian Wrapsody
“Wrapping third-party APIs is a best practice.” — Robert C. Martin
👍1
Оборачиваете ли вы сторонние библиотеки в свое собственное API?
Final Results
15%
Все что получается
23%
Только слой модели
62%
Нет
👍1
#Material #Animation #Transition
Playing with Material Design Transitions
Реализация красивых анимаций на Android не так проста 😔. Все разработчики надеяться, что с приходом MotionLayout, все изменится. Пока этого не произошло - смотрите руководство о том, как сделать красивую анимацию перехода.
Также в статье рассматривается сделать красивую анимацию на основе AnimatedVectorDrawable с помощью утилиты Shape Shifter.
👉 APK с реализацией анимации
👉 Исходный код
Playing with Material Design Transitions
Реализация красивых анимаций на Android не так проста 😔. Все разработчики надеяться, что с приходом MotionLayout, все изменится. Пока этого не произошло - смотрите руководство о том, как сделать красивую анимацию перехода.
Также в статье рассматривается сделать красивую анимацию на основе AnimatedVectorDrawable с помощью утилиты Shape Shifter.
👉 APK с реализацией анимации
👉 Исходный код
👍1