Was ist SwiftyConfig?
SwiftyConfig ist eine leichtgewichtige Bibliothek zur Verwaltung von Konfigurationen für iOS/macOS-Apps in Swift. Sie bietet eine benutzerfreundliche Oberfläche zum Lesen von Einstellungen aus .plist-, .json- oder .yaml-Dateien und unterstützt auch die Arbeit mit Umgebungsvariablen. Die Bibliothek prüft automatisch Datentypen, unterstützt verschachtelte Strukturen und ermöglicht die Angabe von Standardwerten.
Wozu braucht man SwiftyConfig?
Bei der App-Entwicklung besteht oft die Notwendigkeit, Umgebungseinstellungen (API-Schlüssel, Server-URLs, Feature-Flags) getrennt vom Code zu speichern. SwiftyConfig löst dieses Problem, indem es Folgendes bietet:
- Typsicherheit — der Compiler prüft die Konfigurationstypen bereits zur Build-Zeit.
- Flexibilität — Unterstützung mehrerer Dateiformate und Datenquellen.
- Einfachheit — minimaler Code für Initialisierung und Zugriff auf Einstellungen.
Installation
Fügen Sie in Package.swift hinzu:
.package(url: "https://github.com/example/SwiftyConfig.git", from: "1.0.0")Oder über CocoaPods:
pod 'SwiftyConfig'Hauptfunktionen
- Automatische Erkennung von Konfigurationen — sucht nach
Config.plist-Dateien im Bundle. - Unterstützung verschachtelter Schlüssel — Zugriff über Punktnotation:
config["server.host"]. - Typisierte Getter —
string(forKey:),int(forKey:),bool(forKey:)und andere. - Standardwerte — wenn ein Schlüssel fehlt, wird ein festgelegter Wert zurückgegeben.
- Caching — einmaliges Lesen der Datei mit anschließendem Zwischenspeichern im Arbeitsspeicher.
Codebeispiel
import SwiftyConfig
// Initialisierung (lädt automatisch Config.plist)let config = try SwiftyConfig()
// Werte lesenlet apiKey: String = config.string(forKey: "api.key") ?? ""let maxRetries: Int = config.int(forKey: "network.maxRetries") ?? 3let isDebugMode: Bool = config.bool(forKey: "debug.enabled") ?? false
// Oder mit Punktnotationif let host = config["server.host"] as? String { print("Server host: \\(host)")}
// Für macOS kann die Unterstützung von Umgebungsvariablen hinzugefügt werden:let envConfig = SwiftyConfig(environment: ProcessInfo.processInfo.environment)print(envConfig.string(forKey: "DATABASE_URL") ?? "default")Wann sollte man SwiftyConfig verwenden?
Die Bibliothek eignet sich ideal für:
- Multi-Umgebungs-Apps — dev/staging/prod mit unterschiedlichen Konfigurationen.
- Feature Toggles — schnelles Ein-/Ausschalten von Funktionen ohne Neubuild.
- Builds für mehrere Targets — iOS, macOS, watchOS mit gemeinsamen Einstellungen.
- Open-Source-Projekte — bei denen echte Schlüssel verborgen und in eine separate Datei ausgelagert werden müssen.
SwiftyConfig ist eine minimalistische, aber leistungsstarke Lösung zur Konfiguration von Swift-Apps, die die Wartung und Skalierung des Codes vereinfacht.
Auch in der Bibliothek
Accompanist für Kotlin: Komplettguide mit Beispielen
Kotlin Symbol Processing (KSP) für Kotlin: Komplettguide mit Beispielen