SwiftConfig

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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
SwiftConfig resolve esses problemas fornecendo uma API estritamente tipada e suporte a múltiplas fontes de dados.

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) // localhost

Quando 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.

Recommendations