Swift Data für Swift: Das komplette Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Swift Data: Der neue ORM von Apple für Swift

1. Was ist Swift Data und warum braucht man es?

Swift Data ist ein modernes, leichtgewichtiges ORM-Framework (Object-Relational Mapping), das Apple auf der WWDC 2023 vorgestellt hat. Es wurde entwickelt, um persistente Daten in Swift-Apps zu verwalten, die iOS 17+, macOS 14+, tvOS 17+ und watchOS 10+ unterstützen. Swift Data löst das veraltete Core Data ab und bietet einen einfacheren, deklarativen und typsicheren Ansatz für die Datenbankverwaltung.

Warum Swift Data? In erster Linie, um den Code erheblich zu vereinfachen. Anstatt manuell NSManagedObject zu erstellen, Kontexte zu konfigurieren und komplexe Abfragen zu schreiben, beschreibt der Entwickler das Datenmodell mit normalen Swift-Klassen und Makros (@Model, @Attribute, @Relationship). Swift Data generiert automatisch die gesamte notwendige Hintergrundlogik: Tabellenerstellung, Änderungsverwaltung, Abhängigkeitsverfolgung und Synchronisierung mit der UI über SwiftUI.

Der entscheidende Vorteil ist die enge Integration mit SwiftUI. Änderungen an den Daten aktualisieren die Benutzeroberfläche automatisch, ohne dass manuell objectWillChange.send() aufgerufen oder Listen neu geladen werden müssen. Das macht Swift Data zur idealen Wahl für neue SwiftUI-Projekte, die lokale Datenspeicherung benötigen (Aufgabenlisten, Notizen, Einstellungen, Cache).

2. Installation

Swift Data ist ab iOS 17 und macOS 14 Teil der Standardbibliothek von Apple. Eine separate Installation über Paketmanager (pip, npm, cargo) ist nicht erforderlich. Für die Nutzung reicht es aus, das Framework in einer Swift-Datei zu importieren.

Wichtig: Das Deployment Target Ihres Projekts muss mindestens iOS 17.0 oder macOS 14.0 betragen.

Befehl zum Hinzufügen zum Projekt (über Xcode):

// Swift Data benötigt keine Installation. Einfach importieren:
import SwiftData

Wenn Sie den Swift Package Manager (SPM) zur Verwaltung von Abhängigkeiten verwenden, muss Swift Data nicht als separates Paket hinzugefügt werden – es ist im SDK integriert.

3. Schnellstart – ein minimales Arbeitsbeispiel

Wir erstellen eine einfache App zum Speichern einer To-Do-Liste.

import SwiftUI
import SwiftData

// 1. Datenmodell definieren
@Model
final class TaskItem {
    var title: String
    var isCompleted: Bool
    var createdAt: Date

    init(title: String, isCompleted: Bool = false) {
        self.title = title
        self.isCompleted = isCompleted
        self.createdAt = Date()
    }
}

// 2. Container in der App konfigurieren
@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .modelContainer(for: TaskItem.self) // Erstellt automatisch einen Container
    }
}

// 3. Daten in der View verwenden
struct ContentView: View {
    @Environment(\.modelContext) private var context
    @Query private var tasks: [TaskItem]

    var body: some View {
        NavigationStack {
            List {
                ForEach(tasks) { task in
                    HStack {
                        Text(task.title)
                        Spacer()
                        if task.isCompleted {
                            Image(systemName: "checkmark")
                        }
                    }
                }
                .onDelete(perform: deleteTasks)
            }
            .navigationTitle("Aufgaben")
            .toolbar {
                ToolbarItem {
                    Button("Hinzufügen") {
                        let newTask = TaskItem(title: "Neue Aufgabe \(tasks.count + 1)")
                        context.in                    

Empfehlungen