Как обрабатывать несколько сетевых статусов с помощью LiveData на шаблоне MVVM - PullRequest
0 голосов
/ 16 декабря 2018

У меня проблема с шаблоном MVVM и LiveData.У меня есть список вопросов в recyclerView, на которые пользователь может ответить.Я использую Retrofit для соединения с удаленным сервером и локальной базой данных для хранения моих данных на устройстве (я рассматриваю Room, Realm или ObjectBox для хранения данных).Конечно, я пытаюсь реализовать класс Repository, который будет решать, откуда брать данные (удаленный или локальный db).Тем не менее я прочитал много статей о LiveData и обработке состояния сети (загрузка, ошибка и успех), но не могу найти хороший подход к обработке нескольких состояний.Мне нужно обработать статус для: - отправки запроса на множественный ответ (загрузка или просмотр ошибок для каждого элемента в recyclerView) - выборка данных (список вопросов) с удаленного сервера (загрузка или просмотр ошибок в полноэкранном режиме) - загрузка дополнительных данных с удаленного сервера(бесконечная прокрутка с представлением загрузки в нижней части списка или представлением ошибок) - обновление текущих данных (пролистывание списка; снэк-бар после возникновения ошибки) - и т. д.

Я прочитал, например, следующие статьи: https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029

https://proandroiddev.com/concise-error-handling-with-livedata-and-retrofit-15937ceb555b

https://medium.com/@MinaSamy/android-architecture-components-livedata-7717a626b782

https://medium.com/@eric.maxwell/how-to-use-livedata-with-realm-3e57958b5aa1

https://codinginfinite.com/kotlin-coroutine-call-adapter-retrofit/

https://medium.com/stuart-engineering/magic-with-kotlin-rxjava-and-the-repository-pattern-af751a451254

Не могли бы вы дать мне несколько советов о том, как обрабатывать множество сетевых статусов с помощью компонентов LiveData и архитектуры Android?У кого-нибудь есть опыт с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...