Core Data: особенности использования и синхронизация в iCloud

  • Tutorial
Настал вторник, а значит мы выкладываем очередной доклад с конференции мобильных разработчиков #MBLTDev. Доклад посвящен фреймворку Core Data, работы с которым большинство iOS–разработчиков склоны избегать из-за его сложности.

Руслан Шевчук, iOS–разработчик компании Aviasales, не побоялся разобраться с Core Data и на конференции представил доклад о том, как можно использовать его в iCloud.


Презентация

Руслан рассказал про задачи, которые Core Data решает в приложении Aviasales, его особенности, многопоточность, версионность, синхронизацию, проверку нарушения целостности связей, определение и удаление дубликатов, а также про преимущества Private Queue над Confinement Concurrency.

Предыдущие видеозаписи вы можете найти по ссылкам:
  1. «Автоматическое тестирование Android приложений c любовью»
  2. «Опыт использования MVVM в реальных проектах»
  3. «Реактивное программирование на Swift»

Следующий доклад мы, как обычно, выложим в четверг.
  • +16
  • 8,4k
  • 4
e-Legion
108,00
Лидер мобильной разработки в России
Поделиться публикацией

Комментарии 4

    0
    На своем опыте я убедился в обратном — использовать iCloud Core Data не нужно (я бы даже сказал опасно), так как в нем и по сей день хватает багов.

    Да, после iOS 7 дела стали лучше, но до сих пор в один прекрасный день могут возникнуть проблемы с синхронизацией данных на пустом месте (увеломление didimportubiquitouscontentchanges просто перестает приходить), я уже не говорю про нарушения целостности связей, про которые упоминалось в презентации.

    Вероятно, в Aviasales модель данных хранящихся в iCloud не такая сложная и поэтому это для них это работает (с применением костылей вроде проверки целостности связей).

    Самое печальное, что Apple кажется сама забила на iCloud Core Data. В собственных приложениях она её не использует, а в iOS 8 никаких изменений в ней сделано не было.

    Если необходимо синхронизировать более серьезный набор данных с многочисленными связями, то определенно стоит посмотреть в сторону CloudKit. Фреймворк не идеален, но явно более стабилен. Да и Apple использует его у себя в продуктах.
    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Масштабное обновление iCloud Core Data произошло в 2013 году, а на WWDC 2014 были представлены новые фитчи Core Data. Т


        Всё правильно, на WWDC 2014 обновлений для iCloud Core Data не было, только для самого Core Data. Вместо этого упор был сделан на CloudKit.

        iCloud Core Data это решение для синхронизации состояний хранилищ, а CloudKit это решение для транспортировки данных.


        Согласен, это абсолютно так. Если использовать CloudKit в том плане, в котором я имел ввиду, то это будет выглядеть как локальные данные в Core Data + CloudKit для синхронизации.

        Если бы проблемы были, мы бы о них знали.


        Ребят, если это для вас работает, то супер, честно, я рад за вас :) Просто в моем случае это был неудачный опыт, который включал в себя и отправленные баг репорты в Apple и общение с другими разработчиками, которые, к сожалению, в большинстве своем тоже сталкивались с подобными проблемами.
        0
        Кстати, в отличной YapDatabase скоро будет поддержка CloudKit, выглядит очень многообещающе: github.com/yapstudios/YapDatabase/wiki/YapDatabaseCloudKit.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое