SwiftConfig: Konfigurationsverwaltung für Swift-Apps

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Bibliothek SwiftConfig zur Konfigurationsverwaltung von iOS/macOS-Apps

SwiftConfig ist eine leichtgewichtige Bibliothek in der Sprache Swift, die für die bequeme Verwaltung von Konfigurationen in iOS- und macOS-Apps entwickelt wurde. Sie ermöglicht es, Einstellungen (API-Schlüssel, URL-Endpunkte, Feature-Flags) vom Code zu trennen, indem sie in strukturierten Dateien (JSON, YAML, plist) oder Umgebungsvariablen gespeichert werden.

Wozu braucht man SwiftConfig?

In modernen Apps muss das Verhalten oft ohne Neukompilierung geändert werden: Umschalten zwischen Staging/Production-Servern, A/B-Tests, Ändern von Timeouts. Die manuelle Speicherung von Konfigurationen in UserDefaults oder Hardcoding führt zu Fehlern und erschwert die Wartung. SwiftConfig löst diese Probleme, indem es Folgendes bereitstellt:

  • Typsicheren Zugriff auf Werte über enum und Codable
  • Unterstützung mehrerer Quellen (Dateien, env, UserDefaults)
  • Automatische Aktualisierung bei Dateiänderungen (z. B. für SwiftUI Previews)
  • Validierung des Konfigurationsschemas beim Start

Installation

Fügen Sie die Bibliothek über den Swift Package Manager in Xcode hinzu:

File → Add Packages → geben Sie die URL des SwiftConfig-Repositorys ein

Oder fügen Sie sie in Package.swift hinzu:

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

Hauptfunktionen

  • Multiformat: automatische Erkennung des Dateiformats (json, yaml, plist)
  • Environment Overlay: Werte aus Umgebungsvariablen haben Vorrang vor Dateien
  • Caching: Das Parsing erfolgt einmal, danach werden die Daten im Speicher gehalten
  • Protokollbasiert: Sie definieren ein Protokoll mit Anforderungen, die Bibliothek generiert die Implementierung

Codebeispiel in Swift (iOS/macOS)

import SwiftConfig

// Definieren der Konfigurationsstrukturstruct AppConfig: Codable { let apiURL: String let timeout: Double let isFeatureXEnabled: Bool}

// Laden der Konfiguration aus der Datei config.jsonlet configManager = try ConfigManager<AppConfig>(source: .file("config"))

// Verwendung im Codelet url = URL(string: configManager.current.apiURL)!let session = URLSession(configuration: .default)session.configuration.timeoutIntervalForRequest = configManager.current.timeout

// Für SwiftUI kann @Published verwendet werdenclass SettingsViewModel: ObservableObject { @Published var config: AppConfig init() { self.config = try! ConfigManager<AppConfig>(source: .file("config")).current }}

Wann sollte man SwiftConfig verwenden?

  • In Multi-Environment-Projekten (dev/staging/prod)
  • Wenn das App-Verhalten ohne erneuten Deployment geändert werden muss
  • Für die Arbeit mit Feature Toggles
  • In Bibliotheken und Frameworks, die eine Konfiguration über Konfigurationsdateien erfordern

Die Bibliothek ist besonders nützlich für CI/CD-Pipelines, bei denen Umgebungsvariablen dynamisch während der Build-Phase eingesetzt werden. SwiftConfig unterstützt iOS 15+, macOS 12+ und ist vollständig kompatibel mit SwiftUI und Combine.

Empfehlungen