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

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

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

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

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

0 голосов
/ 21 ноября 2018

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

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

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

...