Основные данные на клиенте (iOS) для кэширования данных с сервера. Стратегия

Я написал много приложений для iOS, которые взаимодействовали с серверной частью. Практически каждый раз я использовал HTTP-кеш для кеширования запросов и анализа данных ответа (JSON) на объекты Objective-C. В этом новом проекте мне интересно, имеет ли смысл подход Core Data.

Вот что я подумал:

Клиент iOS делает запрос к серверу и анализирует объекты из моделей JSON в модели CoreData.

Каждый раз, когда мне нужен новый объект, я анализирую CoreData вместо того, чтобы напрямую получать данные от сервера, чтобы узнать, сделал ли я этот запрос. Если этот объект существует и срок его действия не истек, я использую полученный объект.

Однако, если объект не существует или срок его действия истек (здесь будет применяться некоторая логика кеширования), 1. Избегайте ненужных запросов к серверной части. 2. Разрешите полную поддержку просмотра в автономном режиме (вы все еще можете выполнять реляционные запросы с помощью СУБД DataCore).

Теперь вот мой вопрос к SO Gods:

  1. Я знаю, что для этого требуется кодирование логики серверной части во второй раз (Сервер + CoreData), но не является ли это излишеством?
  2. Какие-либо ограничения, которые я недооценил?
  3. Есть другие идеи?
57
задан Pier-Olivier Thibault 2 February 2011 в 18:56
поделиться