Início tecnologia

Swift 6.4 unifica builds no Windows, Linux e macOS

Na prática, o Swift 6.4 faz com que o mesmo comando de compilação possa ser usado por quem desenvolve no Windows, no Linux ou no macOS. O Swift Build passa a ser o motor padrão do Swift Package Manager, a ferramenta que baixa dependências, verifica o projeto, compila o código e executa os testes. Em vez de manter caminhos diferentes para cada sistema, o desenvolvedor passa a trabalhar com uma base mais uniforme.

Card sobre o lançamento do Swift 6.4 em uma publicação na internet
Reprodução da internet

A mudança aproxima o fluxo usado no terminal e no Xcode, a IDE da Apple. Também há suporte ao processo pelo VS Code, por meio da extensão do Swift disponível no Open VSX Registry. Isso interessa principalmente a equipes que precisam manter o mesmo projeto em mais de um sistema operacional ou executar builds em ambientes diferentes de desenvolvimento e integração contínua.

O que muda no Swift Package Manager

O Swift Package Manager, conhecido como SwiftPM, gerencia dependências e etapas de compilação de projetos Swift. Com o Swift 6.4, o Swift Build substitui o antigo motor nativo como opção padrão. A documentação oficial informa que os artefatos podem ser gravados em outro local e recomenda usar o comando swift build --show-bin-path para descobrir o caminho correto.

A adoção também altera alguns detalhes do processo. O Swift Build cria um executor de testes para cada alvo de teste do pacote, enquanto o motor anterior usava um executor único. A ferramenta ainda aplica regras de recursos compatíveis com o xcodebuild em projetos voltados às plataformas da Apple e pode gerar binários universais para arquiteturas como arm64 e x86_64.

Um fluxo mais parecido em diferentes sistemas

A principal consequência é operacional. Um time pode preparar o projeto em um Mac, testar no Linux e produzir uma versão para Windows usando a mesma família de comandos do SwiftPM. Isso não elimina as diferenças entre SDKs, compiladores e bibliotecas de cada plataforma, mas reduz a necessidade de adaptar o motor de build para cada ambiente.

A integração com o VS Code amplia esse alcance para editores fora do Xcode. A extensão oferece tarefas de build, navegação de código, testes e depuração. A integração com o Swiftly também ajuda a instalar e selecionar toolchains diretamente no editor, segundo a documentação da Apple.

Interoperabilidade e WebAssembly

O Swift 6.4 também avança na comunicação com outras linguagens. O suporte a C e C++ permite trabalhar com tipos e estruturas desses ecossistemas com menos código de adaptação. No Swift-Java, a atualização inclui chamadas a funções assíncronas e que lançam erros a partir do Java, além de melhorias para uso com Kotlin e Android.

No navegador, o Swift pode ser compilado para WebAssembly. As melhorias no JavaScriptKit tornam a ponte entre Swift e JavaScript mais segura e rápida. A Apple cita medições de até 40 vezes mais velocidade em uma forma de interoperabilidade segura, mas esse número é um resultado de benchmark específico, não uma promessa para qualquer aplicação.

Há cuidados na migração

A troca do motor não significa que todo projeto antigo funcionará sem ajustes. A documentação do Swift lista diferenças de comportamento e problemas conhecidos, inclusive casos envolvendo projetos com swift-java e plugins de build. Se um pacote apresentar erro no Swift Build, o desenvolvedor ainda pode voltar temporariamente ao motor anterior com --build-system native.

A versão 6.4 também adiciona a geração de SBOM, documento que lista as dependências usadas por um aplicativo nos formatos SPDX ou CycloneDX. Para equipes que precisam auditar bibliotecas e acompanhar riscos de segurança, essa informação passa a fazer parte do próprio fluxo do Swift Package Manager.

O Swift 6.4 está disponível na página oficial de instalação do projeto. A atualização torna o processo de build mais coerente entre plataformas e reforça a tentativa de levar o Swift para além do desenvolvimento de aplicativos da Apple.

Leia também: pnpm 12 troca o motor para Rust e acelera em 90%.

Fonte: documentação oficial do Swift Package Manager, Apple Developer e The Register.