SwiftConfig: Gestion de configuration d'applications en Swift

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

Bibliothèque SwiftConfig pour la gestion de configuration des applications iOS/macOS

SwiftConfig est une bibliothèque légère en langage Swift, conçue pour faciliter la gestion des configurations dans les applications iOS et macOS. Elle permet de séparer les paramètres (clés API, endpoints URL, flags de fonctionnalités) du code, en les stockant dans des fichiers structurés (JSON, YAML, plist) ou des variables d'environnement.

Pourquoi SwiftConfig est-elle nécessaire ?

Dans les applications modernes, il est souvent nécessaire de modifier le comportement sans recompilation : basculement entre serveurs staging/production, tests A/B, modification des timeouts. Le stockage manuel des configurations dans UserDefaults ou le codage en dur entraîne des erreurs et complique la maintenance. SwiftConfig résout ces problèmes en offrant :

  • Un accès type-safe aux valeurs via enum et Codable
  • La prise en charge de plusieurs sources (fichiers, env, UserDefaults)
  • Une mise à jour automatique lors de la modification des fichiers (par exemple, pour les previews SwiftUI)
  • La validation du schéma de configuration au démarrage

Installation

Ajoutez la bibliothèque via Swift Package Manager dans Xcode :

File → Add Packages → saisissez l'URL du dépôt SwiftConfig

Ou ajoutez-la dans Package.swift :

.package(url: "https://github.com/example/SwiftConfig.git", from: "1.0.0")

Fonctionnalités principales

  • Multi-format : détection automatique du format de fichier (json, yaml, plist)
  • Environment overlay : les valeurs des variables d'environnement ont priorité sur les fichiers
  • Mise en cache : l'analyse est effectuée une fois, puis les données sont stockées en mémoire
  • Basé sur des protocoles : vous définissez un protocole avec des exigences, la bibliothèque génère l'implémentation

Exemple de code en Swift (iOS/macOS)

import SwiftConfig

// Définit la structure de configurationstruct AppConfig: Codable { let apiURL: String let timeout: Double let isFeatureXEnabled: Bool}

// Charge la configuration depuis le fichier config.jsonlet configManager = try ConfigManager<AppConfig>(source: .file("config"))

// Utilisation dans le codelet url = URL(string: configManager.current.apiURL)!let session = URLSession(configuration: .default)session.configuration.timeoutIntervalForRequest = configManager.current.timeout

// Pour SwiftUI, utilisez @Publishedclass SettingsViewModel: ObservableObject { @Published var config: AppConfig init() { self.config = try! ConfigManager<AppConfig>(source: .file("config")).current }}

Quand utiliser SwiftConfig ?

  • Dans les projets multi-environnements (dev/staging/prod)
  • Lorsqu'il est nécessaire de modifier le comportement de l'application sans redéploiement
  • Pour travailler avec des feature toggles
  • Dans les bibliothèques et frameworks nécessitant une configuration via des fichiers de configuration

La bibliothèque est particulièrement utile pour les pipelines CI/CD, où les variables d'environnement sont injectées dynamiquement lors de l'étape de build. SwiftConfig prend en charge iOS 15+, macOS 12+ et est entièrement compatible avec SwiftUI et Combine.

Recommendations