При использовании #ViewModel и #LiveData из #Android Architecture Component натыкаюсь на то, что при переходе вперед-назад и наличии некого стейт объекта во ViewModel возникают ошибки.
А именно, например, есть Onboarding, который собирает последовательно ряд данных и использует одну ViewModel. При переходе взад-вперед по экранам может случится так, что значение в LiveData уже было, а на него завязан переход дальше. Получается "зацикливание".
Для таких случаев, когда нужно интерпретировать значение в LiveData как одноразовое событие нашел простую библиотечку: https://github.com/hadilq/LiveEvent
Больше о процессе создания LiveEvent можно почитать от автора в статье: https://proandroiddev.com/livedata-with-single-events-2395dea972a8
А именно, например, есть Onboarding, который собирает последовательно ряд данных и использует одну ViewModel. При переходе взад-вперед по экранам может случится так, что значение в LiveData уже было, а на него завязан переход дальше. Получается "зацикливание".
Для таких случаев, когда нужно интерпретировать значение в LiveData как одноразовое событие нашел простую библиотечку: https://github.com/hadilq/LiveEvent
Больше о процессе создания LiveEvent можно почитать от автора в статье: https://proandroiddev.com/livedata-with-single-events-2395dea972a8
GitHub
GitHub - hadilq/LiveEvent: This library holds a class to handle single live events in Android MVVM architectural pattern. http…
This library holds a class to handle single live events in Android MVVM architectural pattern. https://proandroiddev.com/livedata-with-single-events-2395dea972a8 - GitHub - hadilq/LiveEvent: This l...
#Android, в плане архитектуры, со временем менялся. Тут и #MVP с #Moxy, и свои реализации #MVC и т.д.
С #Android #Jetpack и #Kotlin постепенно вырисовывается путь, который Google считает верным при построении приложения. А именно мультимодульные MVVM проекты.
#ViewModel отвечает за логику и жизненный цикл бизнес сущностей. UI как обычно может быть пересоздан, а через liveData все вернется как было.
На глаза попалась интересная статья с примерами от А до Тестов: https://proandroiddev.com/android-architecture-d7405db1361c
Но не забываем, что многомодульность сделана не для того, чтобы усложнить жизнь разработчику. Она может быть полезна например для dynamic features: https://developer.android.com/guide/app-bundle/dynamic-delivery
С #Android #Jetpack и #Kotlin постепенно вырисовывается путь, который Google считает верным при построении приложения. А именно мультимодульные MVVM проекты.
#ViewModel отвечает за логику и жизненный цикл бизнес сущностей. UI как обычно может быть пересоздан, а через liveData все вернется как было.
На глаза попалась интересная статья с примерами от А до Тестов: https://proandroiddev.com/android-architecture-d7405db1361c
Но не забываем, что многомодульность сделана не для того, чтобы усложнить жизнь разработчику. Она может быть полезна например для dynamic features: https://developer.android.com/guide/app-bundle/dynamic-delivery
Medium
Android Architecture 🏗
A Journey Looking For The Perfect Design
При использовании #ViewModel и #LiveData время от времени всплывает проблема, когда в LiveData хочется запулить объект ровно один раз. Например это может быть сообщение об ошибке. Зачем его показывать и\или обрабатывать несколько раз?
Для этого есть замечательная небольшая надстройка LiveEvent. Он позволяет решить ровно эту проблему по сути одной строчкой кода. LiveEvent дальше возвращается как LiveData и можно с ней работать и быть уверенным, что результат доставить исключительно 1 раз. Удобно. https://bit.ly/2Egn3UV
Для этого есть замечательная небольшая надстройка LiveEvent. Он позволяет решить ровно эту проблему по сути одной строчкой кода. LiveEvent дальше возвращается как LiveData и можно с ней работать и быть уверенным, что результат доставить исключительно 1 раз. Удобно. https://bit.ly/2Egn3UV
Medium
LiveData with single events
You may searched for SingleLiveEvent in the Internet to find a good solution for a LiveData that send events once. There are multiple…
#Google в последнее время знатно радует разработчиков плюшками из #Android #Jetpack. К примеру те же #ViewModel и #LiveData - лично я уже слабо представляю как можно писать приложение без них 🙈
Вы ведь в курсе про эти два божественных компонента? Если вдруг нет, в кратце написал про них статью. https://bit.ly/3i8tUhv
Вы ведь в курсе про эти два божественных компонента? Если вдруг нет, в кратце написал про них статью. https://bit.ly/3i8tUhv
Блог Android разработчика
ViewModel и LiveData. Примеры использования.
Архитектура Android приложений подразумевает сохранение и восстановление состояния Activity. В этом помогают ViewModel и LiveData. Два мощных компонента, которые являются частью Android Jetpack. Жизненный цикл Activity Давайте для начала совсем чуть-чуть…