Я написал много приложений iOS, которые общались с бэкэнд. Почти каждый раз я использовал HTTP-кеш для кэширования запросов и анализа данных ответа (JSON) в объекты objective-C. Для этого нового проекта мне интересно, будет ли подход Core Data иметь смысл.
Вот что я подумал:
Клиент iOS делает запрос на сервер и анализирует объекты с моделей JSON на CoreData.
Каждый раз, когда мне нужен новый объект, вместо того, чтобы напрямую загружать сервер, я разбираю CoreData, чтобы узнать, сделал ли я этот запрос уже. Если этот объект существует и не истек, я использую извлеченный объект.
Однако, если объект не существует или истек (для этого будет применяться некоторая логика кэширования), я бы взял объект с сервера и обновил CoreData соответственно.
Я думаю, что такая архитектура может помочь в следующем: 1. Избегайте ненужных запросов к серверу 2. Разрешить полную поддержку автономного просмотра (вы все равно можете создавать реляционные запросы с помощью DataCore RDBMS)
Теперь вот мой вопрос к SO Gods:
- Я знаю, что этот вид требует вторичного кодирования бэкэнд-логики (Server + CoreData), но является ли это излишним?
- Любое ограничение, которое у меня есть под оценкой?
- Любая другая идея?