Создание приложения с использованием архитектуры, рекомендованной Google, кажется хорошим способом разделения и модульности приложения. При этом я часто сталкиваюсь с тем фактом, что при кэшировании данных, поступающих из API, может возникнуть необходимость в использовании различных моделей для удаленных и локальных источников данных. (Я нашел комментарий здесь от swankjesse, в котором говорится то же самое).
Различные модели выглядят хорошо, но наличие сложных моделей с несколькими уровнями вложенности, похоже, является проблемой в заднице (отображение локальных и удаленных моделей в общую сущность data layer
).
Другим аргументом может быть то, что при запросе данных из сети API может ответить пагинацией отображения JSON и другим содержимым внутри (что требуется ViewModel
(просто пример) для загрузки большего количества данных).
Наличие Repository
с локальными и удаленными источниками данных выглядит как-то разрушено (локальный отвечает списком объектов, удаленный - классом, содержащим список объектов).
Все примеры приложений, которые я видел, демонстрируют использование простых POJO (что в производственном коде почти никогда не реалистично).
Есть идеи по решению этой архитектурной головоломки?