Qu'est-ce que Core Data et pourquoi en a-t-on besoin ?
\n\nCore Data n'est pas une bibliothèque au sens traditionnel (comme Alamofire ou SnapKit), mais un framework puissant d'Apple pour gérer le modèle de données et assurer la persistance des données dans les applications iOS, macOS, tvOS et watchOS. Il est intégré au SDK et ne nécessite pas d'installation séparée via des gestionnaires de paquets comme CocoaPods ou Swift Package Manager.
\n\nPourquoi Core Data est-il nécessaire ? Dans le développement moderne d'applications mobiles, il est presque toujours nécessaire de stocker des données localement : qu'il s'agisse d'une liste de tâches, de l'historique des messages, des paramètres utilisateur ou du cache d'actualités. Core Data fournit pour cela une pile complète qui comprend :
\n- \n
- Le modèle de données (NSManagedObjectModel) — la description des entités, de leurs attributs et de leurs relations. \n
- Le contexte (NSManagedObjectContext) — le "brouillon" où vous travaillez avec les objets avant de les sauvegarder. \n
- Le Persistent Store Coordinator — le pont entre le contexte et le stockage physique (SQLite, XML, fichier binaire, etc.). \n
- Le Persistent Container — une enveloppe simplifiée (apparue dans iOS 10) qui regroupe tous les composants. \n
Contrairement à une utilisation simple de SQLite ou de UserDefaults, Core Data gère automatiquement le cycle de vie des objets, prend en charge l'annulation des modifications, le chargement paresseux, la mise en cache, la validation et même l'intégration avec iCloud. Cela en fait un outil indispensable pour toute application sérieuse manipulant des données.
\n\nInstallation de Core Data
\n\nCore Data fait partie des frameworks système d'Apple. Vous n'avez pas besoin d'exécuter pip install ou npm install. Pour l'utiliser, il suffit d'importer le framework dans votre projet.
1. Ajout du framework au projet
\nLors de la création d'un nouveau projet dans Xcode, vous pouvez immédiatement cocher la case "Use Core Data". Si le projet existe déjà, ajoutez le framework manuellement :
\n- \n
- Sélectionnez votre projet dans le navigateur (Project Navigator). \n
- Allez dans l'onglet "General" de votre cible de build (Target). \n
- Faites défiler jusqu'à la section "Frameworks, Libraries, and Embedded Content". \n
- Cliquez sur "+" et sélectionnez
CoreData.framework. \n
2. Création du fichier de modèle de données
\nVous aurez également besoin d'un fichier avec l'extension .xcdatamodeld. Il est généralement créé automatiquement lors de l'activation de Core Data. S'il n'existe pas, créez un nouveau fichier : File → New → File → Core Data → Data Model.
3. Importation dans le code
\nDans les fichiers Swift où vous travaillerez avec Core Data, ajoutez :
\nimport CoreData\n\nL'installation est terminée. Core Data est prêt à être utilisé.
\n\nDémarrage rapide : exemple de code
\n\nConsidérons un exemple très simple : création d'une entité "User" avec les attributs "name" et "age", sauvegarde et lecture des données.
\n\nÉtape 1 : Création du modèle de données
\nOuvrez le fichier .xcdatamodeld. Ajoutez une entité (Entity) nommée "User". Ajoutez les attributs : name (type String) et age (type Int16). Créez une classe pour cette entité : Editor → Create NSManagedObject Subclass. Xcode générera les fichiers User+CoreDataProperties.swift et User+CoreDataClass.swift.
Étape 2 : Configuration du Persistent Container
\nDans AppDelegate (ou dans un gestionnaire séparé), créez le conteneur :
\nimport CoreData\n\nclass PersistenceController {\n static let shared = PersistenceController()\n \n let container: NSPersistentContainer\n \n init() {\n container = NSPersistentContainer(name: "YourModelName") // Nom de votre fichier .xcdatamodeld\n container.loadPersistentStores { (storeDescription, error) in\n if let error = error as NSError? {\n fatalError("Unresolved error \\(error), \\(error.userInfo)")\n }\n }\n }\n \n var cont Aussi dans la bibliothèque
Travailler avec S3 et les stockages cloud en C++ : la bibliothèque AWS SDK pour C++
SFML pour C++ : guide complet avec exemples
Cryptographie dans Node.js : chiffrement et hachage avec crypto
Surveillance des applications Rust : Aperçu des outils et bibliothèques