API и сохранять их в свою бд, как распределять в репозиториях локальные запросы и от API?
Что ты имеешь в виду под "распределять локальные запросы и от апи"?
Вот у меня есть функции в репозиториях. Допустим, для получения обьектов: fun getObjects... Они возвращают объекты дергая сервер. И есть fun getDBObjects... Это те объекты, котооые уже есть у меня в бд.
ну и вызывай их когда надо, проверяй актуальность данных и погнал вызывать только названия сделай понятнее типа getDataFromNetwork и тп
Норм, что я эти функции в одном репозитории записал?
Мы у себя делаем так. Есть один метод у репозитория getObjects(needUpdate: Boolean): Flow<List<Object>> он возвращает флоу далее читает из базы, и отправляет во флоу локальные данные затем если нужно идет в сеть, получает новые данные, их кладет в базу, база уведомляет об обновлениях по флоу
Да норм, это ответственность репозиториев ходить в сеть и локальный storage
"затем если нужно" - если бд вернет пустой ответ?
да, лично я делаю репо под каждый тип данных (например посты и юзеры – 2 разных репо)
ну выведешь значит пустой список, пока обновление идет. Если идет обновление, можно еще загрузчик показать, чтобы обозначить что текущие данные могут скоро обновиться
Обсуждают сегодня