Core Data vs SwiftData
Apple'ın eski savaşçısı Core Data ile WWDC 2023'te tanıtılan modern SwiftData karşılaşıyor. Persistence katmanı seçiminde doğru karar hangisi?
Apple'ın modern declarative persistence framework
Battle-tested SQLite wrapper for Swift
import SwiftData
@Model
class Todo {
@Attribute(.unique) var id: UUID
var title: String
var isDone: Bool
var createdAt: Date
init(title: String) {
self.id = UUID()
self.title = title
self.isDone = false
self.createdAt = .now
}
}
// In SwiftUI view
@Query(sort: \.createdAt, order: .reverse) var todos: [Todo]import GRDB
struct Todo: Codable, FetchableRecord, PersistableRecord {
var id: UUID
var title: String
var isDone: Bool
}
let todos = try dbQueue.read { db in
try Todo
.filter(Column("isDone") == false)
.order(Column("createdAt").desc)
.fetchAll(db)
}Yeni iOS 17+ app, SwiftUI-heavy, standart CRUD → SwiftData. Performance kritik, complex query, iOS 13+ support → GRDB. Legacy projelerde Core Data → GRDB migrate, yeni projelerde SwiftData default.
Ücretsiz Danışmanlık AlEvet, legacy support için. Yeni projeler için SwiftData veya GRDB. Core Data'nın kendi zorlukları (NSManagedObjectContext etc.) SwiftData'da abstract edildi.