Mobile/journal
SwiftData против CoreData
SwiftData против CoreData: что выбирать в новом проекте
← ЖурналMobile6 мин чтения

SwiftData против CoreData: что выбирать в новом проекте

Команда nordiqdev
студия

SwiftData - самая обсуждаемая фича WWDC 2023. Под капотом - обновлённая CoreData, на поверхности - современный Swift API с макросами. Мы попробовали её на одном пилотном проекте и одном переписывании.

Что хорошо

  • Декларативное описание моделей через @Model - сильно меньше boilerplate, чем .xcdatamodeld + NSManagedObject.
  • Натуральная интеграция со SwiftUI через @Query - автообновление списков без лишнего кода.
  • iCloud-синхронизация настраивается в две строки.
  • Schema migrations через типобезопасные версии - выглядит лучше, чем mapping models в CoreData.

Что плохо

  • Только iOS 17+. Для проекта с поддержкой iOS 15–16 - отпадает.
  • Сложные запросы с join по нескольким сущностям - пока не очень.
  • Background context с явным контролем - менее очевидно, чем в CoreData.
  • Edge-cases в миграциях - мы поймали три бага за месяц на пилоте.

Как мы решаем

Новый проект, минимум iOS 17

SwiftData - да. Меньше кода, проще ревью, быстрее разработка. Подводных камней меньше, чем выгод.

Новый проект, нужен iOS 16 и ниже

CoreData. Никакого смысла в backport-обёртках поверх старого фреймворка. Проще писать на нём прямо.

Существующий проект на CoreData

Не мигрировать. SwiftData построена на CoreData - выгоды от перехода маленькие, риски - большие. Подождать минимум года, посмотреть, как выживает технология.

Теги
#swiftdata#coredata#ios 17#swift#ios
Студия nordiqdev

Делаем мобильные приложения, веб-сервисы и AI на заказ

Если задача из текста выглядит знакомой и нужна команда, которая соберёт продукт - расскажите подробнее. Вернёмся в течение 24 часов с разбором.