SwiftConfig : Gestion de configuration pour applications Swift
SwiftConfig est une bibliothèque légère pour Swift (iOS/macOS), conçue pour la gestion centralisée des paramètres d'application. Elle permet de charger, parser et accéder aux données de configuration à partir de fichiers JSON, YAML ou plist, et prend également en charge les variables d'environnement. La bibliothèque est particulièrement utile pour les projets nécessitant une configuration flexible du comportement de l'application sans recompilation (par exemple, basculement entre serveurs staging/production).
Pourquoi SwiftConfig ?
Dans le développement standard sous iOS/macOS, on utilise souvent UserDefaults, Info.plist ou des constantes codées en dur. Cela entraîne des problèmes :
- Mélange du code et de la configuration
- Absence de typage (toutes les valeurs sont des chaînes)
- Difficulté à basculer entre environnements
Installation
Ajoutez SwiftConfig via Swift Package Manager dans Xcode :
// Package.swift ou via le menu Xcode : File > Add Packages....package(url: "https://github.com/example/SwiftConfig", from: "1.0.0")Ou via CocoaPods :
pod 'SwiftConfig', '~> 1.0'Fonctionnalités principales
- Formats supportés : JSON, YAML, plist, .env
- Accès typé : conversion automatique en Int, Bool, URL, Date
- Clés hiérarchiques : accès aux champs imbriqués via le point (exemple : "database.host")
- Variables d'environnement : priorité des variables d'environnement sur les paramètres de fichier
- Mise en cache : chargement unique avec possibilité de mise à jour forcée
Exemple de code
import SwiftConfig
// Définir la structure de configurationstruct AppConfig: Codable { let apiURL: URL let timeout: Double let features: [String: Bool]}
// Chargement depuis le fichier config.jsonlet config = try SwiftConfig.load( from: "config", // nom du fichier sans extension type: .json, as: AppConfig.self)
// Utilisationprint(config.apiURL) // https://api.example.comprint(config.timeout) // 30.0print(config.features["darkMode"]) // true
// Accès aux champs imbriqués sans décodagelet host: String = try SwiftConfig.value(for: "database.host")print(host) // localhostQuand utiliser SwiftConfig ?
Il est recommandé de l'utiliser dans les scénarios suivants :
- Applications avec plusieurs environnements (development, staging, production)
- Projets où les paramètres changent fréquemment (tests A/B, feature flags)
- Développement en équipe (fichier de configuration unique dans le dépôt)
- Utilitaires en console ou applications Swift serveur (Vapor, Kitura)
La bibliothèque n'est pas adaptée au stockage de données utilisateur (utilisez UserDefaults ou CoreData).
Conclusion
SwiftConfig simplifie la gestion de la configuration, rendant le code plus propre et plus maintenable. Grâce au typage strict, vous évitez les erreurs d'exécution, et la prise en charge de plusieurs formats permet d'intégrer facilement la bibliothèque dans un projet existant.
Aussi dans la bibliothèque
Quartz.NET pour C# (.NET) : guide complet avec exemples
Migrations de bases de données en TypeScript : TypeORM, Prisma et Drizzle
Cryptographie en PHP : chiffrement et hachage (guide pratique)
Programmation réactive en C++ : bibliothèques RxCpp et Boost.Signals2
Bibliothèque standard JavaScript (Node.js) : aperçu complet