Поиск совета по архитектуре приложения для iPhone: управление данными - PullRequest
1 голос
/ 08 октября 2009

Я создал простое приложение для iPhone, которое анализирует данные из удаленного XML-канала, преобразует информацию в объекты (это видео) и отображает видео в стандартном виде таблицы -> подробный вид -> «Воспроизвести видео». "Интерфейс Есть сотни видео, каждое из которых имеет около десяти атрибутов. (Видео никогда не загружается, а передается только с помощью MPMoviePlayerController.) Я полагался на пример приложения Apple SeismicXML для большей части поведения приложения.

Теперь я готов к следующему шагу: сохранение метаданных видео на устройстве, чтобы пользователям не приходилось ждать извлечения и анализа XML при каждом запуске моего приложения. Я планирую использовать Core Data для сохранения моих объектов Video (и их родительских объектов Channel), но для меня все это совершенно ново.

Мой вопрос таков: могут ли люди порекомендовать какой-либо пример приложения или шаблона проектирования для управления этими данными? Я хочу, чтобы приложение автоматически загружало и анализировало XML при запуске, но затем оно должно обновлять данные только тогда, когда пользователь нажимает кнопку «Обновить», или если данные старше, скажем, дня.

Приложениями, моделирующими это поведение, являются NYTimes, AP и многие другие.

Помимо превосходной документации, которую Apple предоставляет для Core Data, есть ли какие-либо ресурсы для разработки приложения для iPhone, которое должно загружать, сохранять и периодически обновлять свои данные?

Спасибо.

Обновление от 12.11.2009: Между образцом кода Apple для TheElements, TopSongs, CoreDataBooks, PhotoLocations, iPhoneCoreDataRecipes и XMLPerformance здесь у меня есть масса возможностей для мельницы. В настоящее время я анализирую образцы и медленно собираю воедино то, что мне нужно.

1 Ответ

2 голосов
/ 20 октября 2009

Похоже, вы нашли все образцы Apple, так что это хорошо.

У прагматичных программистов есть книга о базовых данных , и несколько книг iPhone SDK (включая их) немного касаются базовых данных. Смотри также этот вопрос .

Редактировать: забыл упомянуть Three20 (см. Приложение Facebook, Open Sourced) в качестве примера способа сделать это, кроме Core Data. Вместо того, чтобы восстанавливать загруженные данные в некотором графе объектов, который сохраняется с Core Data, Three20 реализует кэширование на диске и датирование свежести поверх системы загрузки URL. Приложение в основном все еще работает, выполняя вызовы HTTP API и анализируя ответы, но ему не нужно общаться с облаком на каждом экране, что значительно ускоряет процесс. Если вы загружаете эту информацию только для отображения в большом табличном представлении, а не во что-то еще, возможно, эта модель может быть проще.

...