Какой лучший подход iCloud для моего приложения заметок iOS с текстом, фото, аудио и рисованием заметок. Стоит ли выбирать хранилище документов или CloudKit?

Я разрабатываю приложение для заметок iOS, где пользователь может добавлять изображения, текст, аудио и заметки для рисования. Я хочу реализовать синхронизацию iCloud между несколькими устройствами. Какой из трех вариантов (значение ключа, хранилище документов, CloudKit) какой выбрать? Я хотел бы также реализовать обмен заметками (совместная работа) среди пользователей. Я использую основные данные в качестве моей базы данных в настоящее время.

1 ответ

ИМХО, CloudKit это единственное мнение:)

У меня есть приложение для заметок с именем marknote, И в начале я использовал хранилище документов iCloud. Это работало когда-то, но не стабильно. Хуже всего то, что когда и какие документы можно синхронизировать, вы не можете контролировать, вместо этого они зависят от службы демонов Apple. Это становится еще хуже, когда ваши документы немного больше, например, несколько мегабайт. Так что после некоторых сражений я перешел на CloudKit. Как уже указывал @maxim-volgin, реализация синхронизации CloudKit сложна, но надежна. И вся головная боль просто прошла после перехода на CloudKit.

Хранение значения ключа не подлежит сомнению, поскольку оно слишком ограничено для вашей цели, хранение документов рекомендуется только тогда, когда вам нужно обрабатывать и хранить документ в целом. Поскольку вы уже используете CoreData для локального хранения имеет смысл использовать только обычные CloudKit с ним для облачного хранения и обмена.

Синхронизация CoreData а также CloudKit может быть жестким. Я лично использую комбо RxCoreData а также RxCloudKit библиотеки, которые обеспечивают некоторое облегчение в синхронизации и некоторый синтаксический сахар тоже.

Слово заранее об ограничениях уникальности: для CoreDataвы определяете их на основе ключа (ей) или хеша всех значений, для CloudKit это возможно (и также необходимо) для CKRecord ключ, насколько мне известно. Поэтому лучше всего позаботиться об этом с самого начала.

Другие вопросы по тегам