Core Data vs SwiftData
El veterano Core Data de Apple se enfrenta al moderno SwiftData, presentado en la WWDC 2023. ¿Cuál es la decisión correcta al elegir la capa de persistencia?
El framework de persistencia declarativo moderno de Apple
Wrapper de SQLite probado en batalla para Swift
| Categoría | SwiftData | GRDB |
|---|---|---|
| Rendimiento | 7/10 | 10/10 |
| Facilidad de aprendizaje | 9/10 | 7/10 |
| Ecosistema | 8/10 | 8/10 |
| Comunidad | 7/10 | 8/10 |
| Mercado laboral | 8/10 | 7/10 |
| A prueba de futuro | 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
}
}
// En una vista SwiftUI
@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)
}App iOS 17+ nueva, con mucho SwiftUI, CRUD estándar → SwiftData. Rendimiento crítico, consultas complejas, soporte para iOS 13+ → GRDB. En proyectos heredados, migra de Core Data a GRDB; en proyectos nuevos, SwiftData por defecto.
Solicita una consultoría gratuitaSí, para soporte heredado. Para proyectos nuevos, SwiftData o GRDB. Las dificultades propias de Core Data (NSManagedObjectContext, etc.) se abstraen en SwiftData.