O ecossistema Swift acaba de receber um importante incremento com o lançamento do Swift 6.4, atualmente disponível em versão beta no Xcode 27. Esta atualização traz uma série de refinamentos na linguagem, melhorias na interoperabilidade com C e avanços significativos na experiência de testes automatizados, visando simplificar o dia a dia dos desenvolvedores que trabalham com o ecossistema Apple.
Entre as mudanças mais aguardadas está a capacidade de expor funções escritas em Swift diretamente para C através do novo atributo @C.
Este recurso funciona de forma análoga ao já conhecido @objc, permitindo que tipos compatíveis com C, como inteiros, ponteiros e enums, sejam trafegados sem atritos entre as linguagens, com o compilador atuando para evitar incompatibilidades de tipos.
Melhorias na sintaxe e segurança de concorrência
O Swift 6.4 introduz ajustes semânticos que visam reduzir a verbosidade do código. Agora, é possível remover parênteses desnecessários em expressões de tipo e utilizar o novo inicializador membro implícito.
Quando uma estrutura contém propriedades privadas e internas, o compilador gera automaticamente dois inicializadores, otimizando o processo de inicialização de structs.
No campo da concorrência, o defer agora suporta a execução de tarefas assíncronas utilizando await. Além disso, o novo atributo ~Sendable permite marcar explicitamente tipos que não devem estar em conformidade com o protocolo, enquanto o weak let facilita a definição de classes como Sendable, mesmo que contenham propriedades do tipo weak var, oferecendo mais controle sobre o estado compartilhado.
Evolução no ecossistema de testes
Um dos pontos críticos da atualização é a melhoria na interoperabilidade entre o Swift Testing e o XCTest. Desenvolvedores agora podem reportar falhas de asserção do XCTest como problemas dentro do novo framework de testes da Apple, facilitando migrações graduais sem perda de cobertura.
O novo Test.cancel API também permite o cancelamento dinâmico de execuções de testes, incluindo casos parametrizados.
Destaque técnico: O Swift 6.4 introduz o identificador anyAppleOS, que simplifica drasticamente as verificações de disponibilidade de plataforma, reduzindo a necessidade de escrever listas extensas de sistemas operacionais em atributos @available.
Performance e diagnósticos
O compilador recebeu o novo atributo @diagnose, oferecendo um controle granular sobre os avisos do compilador.
É possível, por exemplo, silenciar avisos de depreciação ou promover advertências a erros em níveis de função individual.
Além disso, o pacote Foundation continua sua migração para Swift puro, resultando em operações de dados mais rápidas e menor consumo de memória, com destaque para o novo ProgressManager, focado em relatórios de progresso estruturados e type-safe.
O que é o novo atributo @C no Swift 6.4?
O atributo @C permite exportar funções Swift diretamente para o código C, facilitando a interoperabilidade sem a necessidade de camadas intermediárias complexas, suportando tipos de dados nativos de C.
O Swift 6.4 resolve problemas com testes legados?
Sim, ao permitir que asserções do XCTest sejam interpretadas como problemas pelo framework Swift Testing, ele preserva a cobertura de testes durante a migração para a nova biblioteca.
Como funciona o novo controle de avisos (@diagnose)?
O @diagnose permite silenciar, promover a erro ou baixar a severidade de avisos do compilador em níveis de função, dando ao desenvolvedor maior controle sobre o pipeline de compilação.
O que muda na inicialização de estruturas?
O compilador agora gera automaticamente dois inicializadores para structs com misturas de propriedades privadas e internas, economizando código repetitivo.
Quais os ganhos de performance no Foundation?
A migração de código Objective-C para Swift puro no Foundation trouxe operações mais rápidas, melhor bridging com NSData e implementação unificada de tipos de URL, reduzindo o uso de memória.