O que é CSVImporter e para que serve?
CSVImporter é uma biblioteca leve para Swift (iOS/macOS) que simplifica a importação, análise e exportação de arquivos CSV. Ao contrário do Foundation padrão, o CSVImporter fornece ferramentas prontas para processar grandes dados tabulares, detecção automática de delimitadores e trabalho com codificações. A biblioteca é ideal para aplicativos que exigem carregamento de dados de fontes externas: relatórios contábeis, listas de contatos, conjuntos de dados para machine learning ou arquivos de configuração.
Instalação
O CSVImporter é instalado via Swift Package Manager. Adicione a dependência em Package.swift:
.package(url: "https://github.com/Flinesoft/CSVImporter.git", from: "1.9.0")Ou via Xcode: File → Add Packages → cole a URL do repositório.
Funções principais
- Detecção automática de delimitador — suporta vírgulas, ponto e vírgula, tabulações.
- Análise em streaming — processa arquivos de qualquer tamanho sem carregá-los completamente na memória.
- Suporte a codificações — UTF-8, Windows-1251, ISO Latin-1.
- Tipagem flexível — conversão de strings para Int, Double, Date e estruturas personalizadas.
- Exportação — criação de CSV a partir de arrays de dicionários.
Exemplo de código em Swift
import CSVImporter
// Importação de arquivolet path = Bundle.main.path(forResource: "data", ofType: "csv")!let importer = CSVImporter<[String]>(path: path)let records = importer.importRecords { $0 } // [["Name", "Age"], ["Alice", "30"], ...]
// Análise com cabeçalhoslet structured = importer.importRecords { record in return Person(name: record[0], age: Int(record[1]) ?? 0)}
// Exportaçãolet data = [["Name", "Age"], ["Bob", "25"]]let csvString = data.csvString() // "Name,AgeBob,25"try? csvString.write(to: URL(fileURLWithPath: "/tmp/output.csv"), atomically: true, encoding: .utf8)Quando usar CSVImporter?
- Ao trabalhar com dados tabulares do Excel/Google Sheets.
- Em aplicativos para análise financeira, controle de estoque ou manutenção de estatísticas.
- Ao migrar dados entre serviços (por exemplo, importação de contatos de CSV).
- Em utilitários macOS para processamento de logs ou configurações.
A biblioteca é estável, possui 100% de cobertura de testes e é mantida pela comunidade desde 2016. Adequada para iOS 13+, macOS 10.15+.