Лента должна открываться без интернета: как правильно устроить хранение
Сейчас экран ленты работает так: при открытии идёт запрос в API, при ошибке сети показывается заглушка «нет интернета».
Задача от продакта: лента должна открываться и в офлайне, показывая последние загруженные данные, а при появлении сети — обновляться.
Какое решение соответствует задаче?
- Держать последний ответ в статическом поле, живущем всё время работы процесса — этого достаточно для офлайна
- Включить кеширование на уровне HTTP-клиента и считать задачу закрытой — офлайн заработает сам, клиент отдаст последний ответ из кеша
- Складывать JSON-ответы целиком в настройки приложения и парсить их при каждом открытии экрана
- Сохранять ответы в локальную базу и всегда отрисовывать экран из неё, а сеть считать фоновой синхронизацией, которая обновляет базу
