2013-10-09 3 views
1

У меня есть приложение, для которого требуется база данных около 400 000 записей данных, которые время от времени меняются (например, один раз в месяц). Общий размер этих данных составляет около 20 МБ. Мы хотим, чтобы позволить пользователю:Обработка больших данных на iOS

  • загрузить все данные сразу в автономном режиме
  • загрузки отдельных данных по требованию и кэшировать их на стороне клиента в автономном режиме
  • проверку на достоверность отдельных наборов данных
  • построить индекс для того, чтобы быстро найти с помощью данных

Что лучше практик, чтобы справиться с этими требованиями на прошивке?

  1. Есть ли существующие рамки, которые заботятся об этих требованиях?
  2. Какова будет рекомендованная технология для этих требований? Как SQLite или что-то в этом роде.

ответ

3

Вы должны отправить копию своей базы данных с приложением. Вы действительно не хотите, чтобы каждый пользователь должен был дождаться загрузки 20 МБ, прежде чем они смогут использовать ваше приложение.

Что касается редких обновлений, укажите конечную точку API, которую приложение может вызывать с параметром даты и возвращать все новые/обновленные записи с предоставленной даты. Также укажите конечную точку, которая возвращает дату последнего изменения в основную базу данных. Затем вы можете использовать эту дату для проверки достоверности данных на устройстве (при условии, что данные устройства считываются только).

Основные параметры хранения для iOS - SQLite или Core Data. Что касается фреймворков, которые позаботятся о синхронизации для вас, TICoreDataSync является опцией, если вы выберете Core Data на устройстве.

+1

Я думаю, что стоит отметить, что SQLite и Core Data не являются взаимоисключающими, поскольку Core Data - это графический объект и структура сохранения, которые могут использовать (не обязательно) SQLite в качестве своего постоянного хранилища. –

+0

Звучит неплохо! Существуют ли альтернативы SQLite или Core Data? – Chris

+0

Если вы ищете решение NoSQL, [TouchDB] (http://labs.couchbase.com/TouchDB-iOS/) подходит для этого счета. – neilco

Смежные вопросы