Shoebox / Библиотечные приложения с автосохранением и версии в OS X Lion

У нас есть приложение в стиле обувной коробки, которое мы хотим сделать в Lion первоклассным гражданином. Это означает, среди прочего, интеграцию автосохранения и версий. В настоящее время у нас нет модели, ориентированной на документы, и мы просто используем простой стек Core Data.

UIPersistentDocument предоставляет действительно простой способ интеграции как автосохранения, так и версий, и я вижу два варианта, из которых мы можем выбрать для интеграции новые API:

  1. «Abuse» NSPersistentDocument для нашего приложения в стиле обувной коробки. Технически это было бы приложение на основе документов, но пользовательский интерфейс все равно был бы той же библиотекой, подобной iPhoto. Концептуально это не имеет большого смысла, но мы получили бы много функций бесплатно.
  2. Сохраните текущий простой стек основных данных и реализуйте автосохранение и версии вручную.

Я слышал противоречивые мнения от представителей Apple по поводу подход, который мы должны использовать, и было бы здорово прояснить ситуацию, прежде чем мы начнем нашу реализацию. Хотя я считаю, что 1. не следует использовать, это тоже очень заманчиво, потому что мы получаем много бесплатно. Я даже не смог найти достаточную документацию по ручной реализации автосохранения и версий в приложении Core Data.

Я бы действительно использовал 1., но вижу некоторые проблемы:

  • Я беспокоюсь о файловой системе -уровневые конфликты при использовании версий и только одного файла базы данных. Мне не удалось найти никакой документации по этой теме.
  • Меня беспокоят проблемы с производительностью в Версиях при просмотре «пространства».
  • Мы не можем принудительно применить только один экземпляр открытой базы данных, поскольку Версии должны открыть несколько экземпляров. Меня беспокоят побочные эффекты и проблемы с параллелизмом. Концептуально это выглядит как взлом, и я не люблю его.

Если бы мы хотели только интегрировать синхронизацию iCloud, я бы определенно не думал об использовании ориентированной на документы модели для нашего приложения, потому что Core Data поддерживает это напрямую. Меня больше всего беспокоят накладные расходы на разработчика, которые могут возникнуть, если мы будем придерживаться нашей нынешней парадигмы, не основанной на документах.

Есть ли у вас какие-либо советы или идеи, как приложения для обуви должны быть интегрированы в новый мир Lion?

8
задан Rafael Bugajewski 31 July 2011 в 12:31
поделиться