Core Data vs SwiftData
Apple's legacy Core Data versus modern SwiftData: API ergonomics, performance, migration story, and which to pick for new iOS 17+ apps.
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 AlBu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.
Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.
Evet, legacy support için. Yeni projeler için SwiftData veya GRDB. Core Data'nın kendi zorlukları (NSManagedObjectContext etc.) SwiftData'da abstract edildi.