Core Data vs SwiftData
Apples altbewährter Core Data trifft auf das moderne, auf der WWDC 2023 vorgestellte SwiftData. Welche Persistenzschicht ist die richtige Wahl?
Apples modernes deklaratives Persistenz-Framework
Bewährter SQLite-Wrapper für Swift
| Kategorie | SwiftData | GRDB |
|---|---|---|
| Performance | 7/10 | 10/10 |
| Erlernbarkeit | 9/10 | 7/10 |
| Ökosystem | 8/10 | 8/10 |
| Community | 7/10 | 8/10 |
| Arbeitsmarkt | 8/10 | 7/10 |
| Zukunftssicherheit | 9/10 | 8/10 |
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 einer 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)
}Neue iOS-17+-App, SwiftUI-lastig, Standard-CRUD → SwiftData. Performance-kritisch, komplexe Abfragen, Unterstützung ab iOS 13 → GRDB. In Legacy-Projekten von Core Data → zu GRDB migrieren, in neuen Projekten SwiftData als Standard.
Kostenlose Beratung erhaltenJa, für Legacy-Support. Für neue Projekte SwiftData oder GRDB. Die eigenen Schwierigkeiten von Core Data (NSManagedObjectContext usw.) wurden in SwiftData abstrahiert.