​​LiveData & Flow в MVVM

#статьи #разработка #опрос



Если ваше приложение имеет MVVM архитектуру, то обычно у вас есть какой-то слой данных (например, репозиторий), ViewModel и View (например, Fragment).

При подобном подходе, разработчики чаще всего используют LiveData: это компонент, который подходит для работы в suspend-функциях. Он учитывает жизненный цикл других компонентов приложения (Fragment, Activity, Service). В общем, довольно удобная штука, которая избавляет от головной боли.



Однако, при этом многие забывают о таком компоненте как Flow, который ещё лучше подходит для получения данных с репозитория, особенно в ситуациях, когда получать данные нужно с заданной периодичностью.

Ведь по сути, Flow — реактивный поток данных в coroutine, который может возвращать несколько значений из suspend функции. Также тут можно легко трансформировать данные между различными типами.



Крутая статья, которая рассказывает о том, как использовать Flow в своих приложениях тут, а также вторая часть. Кроме того проект, описанный в статьях, можно использовать как отличный пример использования MVVM.



Очень понравился подход с Flow, думаю о том, чтобы использовать его и в своих проектах.



А используете ли вы LiveData + MVVM в своих приложениях?