SwiftConfig

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

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
SwiftConfig résout ces problèmes en fournissant une API strictement typée et la prise en charge de plusieurs sources de données.

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) // localhost

Quand 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.

Recommendations