Swift Data pour Swift : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Swift Data : Le nouvel ORM d'Apple pour Swift

1. Qu'est-ce que Swift Data et pourquoi l'utiliser ?

Swift Data est un framework ORM (Object-Relational Mapping) moderne et léger, présenté par Apple lors de la WWDC 2023. Il est conçu pour gérer les données persistantes dans les applications Swift compatibles avec iOS 17+, macOS 14+, tvOS 17+ et watchOS 10+. Swift Data remplace l'ancien Core Data en proposant une approche plus simple, déclarative et type-safe pour la gestion de base de données.

Pourquoi utiliser Swift Data ? Avant tout, pour simplifier considérablement le code. Au lieu de créer manuellement des NSManagedObject, de configurer des contextes et d'écrire des requêtes complexes en Swift, le développeur décrit le modèle de données à l'aide de classes Swift classiques et de macros (@Model, @Attribute, @Relationship). Swift Data génère automatiquement toute la logique sous-jacente : création de tables, gestion des modifications, suivi des dépendances et synchronisation avec l'interface utilisateur via SwiftUI.

L'avantage clé est l'intégration étroite avec SwiftUI. Les modifications des données mettent automatiquement à jour l'interface sans avoir à appeler manuellement objectWillChange.send() ou à recharger les listes. Cela fait de Swift Data le choix idéal pour les nouveaux projets SwiftUI nécessitant un stockage local de données (listes de tâches, notes, paramètres, cache).

2. Installation

Swift Data fait partie de la bibliothèque standard d'Apple à partir d'iOS 17 et macOS 14. Aucune installation séparée via un gestionnaire de paquets (pip, npm, cargo) n'est nécessaire. Il suffit d'importer le framework dans un fichier Swift.

Important : La version de déploiement minimale (Deployment Target) de votre projet doit être iOS 17.0 ou macOS 14.0.

Commande pour ajouter au projet (via Xcode) :

// Swift Data ne nécessite pas d'installation. Il suffit d'importer :
import SwiftData

Si vous utilisez Swift Package Manager (SPM) pour gérer les dépendances, Swift Data n'a pas besoin d'être ajouté comme un paquet séparé — il est intégré au SDK.

3. Démarrage rapide — exemple minimal fonctionnel

Créons une application simple pour stocker une liste de tâches (To-Do).

import SwiftUI
import SwiftData

// 1. Définir le modèle de données
@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. Configurer le conteneur dans l'App
@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .modelContainer(for: TaskItem.self) // Crée automatiquement un conteneur
    }
}

// 3. Utiliser les données dans une View
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("Tâches")
            .toolbar {
                ToolbarItem {
                    Button("Ajouter") {
                        let newTask = TaskItem(title: "Nouvelle tâche \(tasks.count + 1)")
                        context.in                    

Recommendations