SwiftConfig: Gerenciamento de configuração de aplicativos em Swift
SwiftConfig é uma biblioteca leve para Swift (iOS/macOS), projetada para o gerenciamento centralizado das configurações do aplicativo. Ela permite carregar, analisar e acessar dados de configuração de arquivos JSON, YAML ou plist, além de suportar variáveis de ambiente. A biblioteca é especialmente útil para projetos que exigem configuração flexível do comportamento do aplicativo sem recompilação (por exemplo, alternância entre servidores staging/production).
Por que usar SwiftConfig?
No desenvolvimento padrão para iOS/macOS, frequentemente se usa UserDefaults, Info.plist ou constantes codificadas diretamente. Isso leva a problemas:
- Mistura de código e configuração
- Falta de tipagem (todos os valores são strings)
- Dificuldade em alternar entre ambientes
Instalação
Adicione SwiftConfig através do Swift Package Manager no Xcode:
// Package.swift ou através do menu Xcode: File > Add Packages....package(url: "https://github.com/example/SwiftConfig", from: "1.0.0")Ou através do CocoaPods:
pod 'SwiftConfig', '~> 1.0'Funções principais
- Suporte a formatos: JSON, YAML, plist, .env
- Acesso tipado: conversão automática para Int, Bool, URL, Date
- Chaves hierárquicas: acesso a campos aninhados através de ponto (exemplo: "database.host")
- Variáveis de ambiente: prioridade das variáveis de ambiente sobre as configurações de arquivo
- Cache: carregamento único com possibilidade de atualização forçada
Exemplo de código
import SwiftConfig
// Definindo a estrutura de configuraçãostruct AppConfig: Codable { let apiURL: URL let timeout: Double let features: [String: Bool]}
// Carregamento do arquivo config.jsonlet config = try SwiftConfig.load( from: "config", // nome do arquivo sem extensão type: .json, as: AppConfig.self)
// Usoprint(config.apiURL) // https://api.example.comprint(config.timeout) // 30.0print(config.features["darkMode"]) // true
// Acesso a campos aninhados sem decodificaçãolet host: String = try SwiftConfig.value(for: "database.host")print(host) // localhostQuando usar SwiftConfig?
Recomenda-se aplicar nos seguintes cenários:
- Aplicativos com múltiplos ambientes (development, staging, production)
- Projetos onde as configurações mudam com frequência (testes A/B, feature flags)
- Desenvolvimento em equipe (arquivo de configuração único no repositório)
- Utilitários de console ou aplicativos Swift para servidor (Vapor, Kitura)
A biblioteca não é adequada para armazenar dados do usuário (use UserDefaults ou CoreData).
Conclusão
SwiftConfig simplifica o gerenciamento de configuração, tornando o código mais limpo e sustentável. Graças à tipagem estrita, você evita erros em tempo de execução, e o suporte a múltiplos formatos permite integrar facilmente a biblioteca em um projeto existente.
Também na biblioteca
Internacionalização (i18n) em TypeScript: biblioteca i18next
Geolocalização e mapas em Kotlin: visão geral de bibliotecas e ferramentas
Chai para JavaScript (Node.js): guia completo com exemplos
Framework CLI para Swift: criação de utilitários de console no iOS/macOS