SwiftConfig

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

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

SwiftConfig es una biblioteca ligera para Swift (iOS/macOS), diseñada para la gestión centralizada de la configuración de aplicaciones. Permite cargar, analizar y acceder a datos de configuración desde archivos JSON, YAML o plist, además de soportar variables de entorno. La biblioteca es especialmente útil para proyectos que requieren una configuración flexible del comportamiento de la aplicación sin necesidad de recompilación (por ejemplo, cambiar entre servidores de staging/production).

¿Por qué es necesaria SwiftConfig?

En el desarrollo estándar para iOS/macOS, a menudo se utilizan UserDefaults, Info.plist o constantes hardcodeadas. Esto genera problemas:

  • Mezcla de código y configuración
  • Falta de tipado (todos los valores son cadenas)
  • Dificultad para cambiar entre entornos
SwiftConfig resuelve estos problemas proporcionando una API fuertemente tipada y soporte para múltiples fuentes de datos.

Instalación

Agregue SwiftConfig a través de Swift Package Manager en Xcode:

// Package.swift o mediante el menú de Xcode: File > Add Packages....package(url: "https://github.com/example/SwiftConfig", from: "1.0.0")

O mediante CocoaPods:

pod 'SwiftConfig', '~> 1.0'

Funciones principales

  • Soporte de formatos: JSON, YAML, plist, .env
  • Acceso tipado: conversión automática a Int, Bool, URL, Date
  • Claves jerárquicas: acceso a campos anidados mediante punto (por ejemplo, "database.host")
  • Variables de entorno: prioridad de las variables de entorno sobre la configuración de archivos
  • Caché: carga única con posibilidad de actualización forzada

Ejemplo de código

import SwiftConfig

// Definimos la estructura de configuraciónstruct AppConfig: Codable { let apiURL: URL let timeout: Double let features: [String: Bool]}

// Carga desde el archivo config.jsonlet config = try SwiftConfig.load( from: "config", // nombre del archivo sin extensión type: .json, as: AppConfig.self)

// Usoprint(config.apiURL) // https://api.example.comprint(config.timeout) // 30.0print(config.features["darkMode"]) // true

// Acceso a campos anidados sin decodificaciónlet host: String = try SwiftConfig.value(for: "database.host")print(host) // localhost

¿Cuándo usar SwiftConfig?

Se recomienda su uso en los siguientes escenarios:

  • Aplicaciones con múltiples entornos (development, staging, production)
  • Proyectos donde la configuración cambia con frecuencia (pruebas A/B, feature flags)
  • Desarrollo en equipo (archivo de configuración único en el repositorio)
  • Utilidades de consola o aplicaciones Swift del lado del servidor (Vapor, Kitura)

La biblioteca no es adecuada para almacenar datos de usuario (use UserDefaults o CoreData).

Conclusión

SwiftConfig simplifica la gestión de configuración, haciendo que el código sea más limpio y mantenible. Gracias al tipado estricto, se evitan errores en tiempo de ejecución, y el soporte de múltiples formatos permite integrar fácilmente la biblioteca en un proyecto existente.

Recommendations