SwiftConfig: Gestión de configuración de aplicaciones en Swift

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca SwiftConfig para la gestión de configuración de aplicaciones iOS/macOS

SwiftConfig es una biblioteca ligera en lenguaje Swift, diseñada para la gestión cómoda de configuraciones en aplicaciones iOS y macOS. Permite separar la configuración (claves de API, endpoints URL, flags de funcionalidades) del código, almacenándola en archivos estructurados (JSON, YAML, plist) o variables de entorno.

¿Para qué sirve SwiftConfig?

En las aplicaciones modernas, a menudo es necesario cambiar el comportamiento sin recompilar: cambiar entre servidores de staging/production, realizar pruebas A/B, modificar tiempos de espera. El almacenamiento manual de configuraciones en UserDefaults o el código duro provoca errores y complica el mantenimiento. SwiftConfig resuelve estos problemas proporcionando:

  • Acceso type-safe a los valores mediante enum y Codable
  • Soporte para múltiples fuentes (archivos, env, UserDefaults)
  • Actualización automática al modificar archivos (por ejemplo, para SwiftUI previews)
  • Validación del esquema de configuración al iniciar

Instalación

Añada la biblioteca a través de Swift Package Manager en Xcode:

File → Add Packages → introduzca la URL del repositorio de SwiftConfig

O añádala en Package.swift:

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

Funciones principales

  • Multiformato: detección automática del formato del archivo (json, yaml, plist)
  • Environment overlay: los valores de las variables de entorno tienen prioridad sobre los archivos
  • Almacenamiento en caché: el análisis se realiza una vez, luego los datos se almacenan en memoria
  • Basado en protocolos: usted define un protocolo con requisitos, la biblioteca genera la implementación

Ejemplo de código en Swift (iOS/macOS)

import SwiftConfig

// Definimos la estructura de configuraciónstruct AppConfig: Codable { let apiURL: String let timeout: Double let isFeatureXEnabled: Bool}

// Cargamos la configuración desde el archivo config.jsonlet configManager = try ConfigManager<AppConfig>(source: .file("config"))

// Usamos en el códigolet url = URL(string: configManager.current.apiURL)!let session = URLSession(configuration: .default)session.configuration.timeoutIntervalForRequest = configManager.current.timeout

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

¿Cuándo usar SwiftConfig?

  • En proyectos multi-environment (dev/staging/prod)
  • Cuando sea necesario cambiar el comportamiento de la aplicación sin redeploy
  • Para trabajar con feature toggles
  • En bibliotecas y frameworks donde se requiera configuración a través de archivos de configuración

La biblioteca es especialmente útil para pipelines de CI/CD, donde las variables de entorno se sustituyen dinámicamente en la etapa de compilación. SwiftConfig es compatible con iOS 15+, macOS 12+ y es totalmente compatible con SwiftUI y Combine.

Recommendations