Postado por Ting-Yuan Huang, engenheiro de software, e David Winer, gerente de produtos
É com prazer que anunciamos hoje a versão alfa do Kotlin Symbol Processing (KSP), uma ferramenta novíssima para a criação de plug-ins de compilador leves no Kotlin. O KSP oferece funcionalidade similar à do KAPT, mas é até duas vezes mais rápido, dá acesso direto a recursos de compilador do Kotlin e está sendo desenvolvido pensando na compatibilidade com várias plataformas.
O KSP é compatível com o Kotlin versão 1.4.30 e posteriores. Você pode conferir o código-fonte aberto e a documentação no repositório do KSP no GitHub.
A principal solicitação que recebemos dos desenvolvedores do Kotlin é o aumento da velocidade de compilação. Muitos desenvolvedores iteram e implantam apps dezenas de vezes por dia. Portanto, ter que ficar esperando por uma compilação lenta pode consumir muito tempo. Um dos maiores desafios da compilação de código do Kotlin é que o Kotlin não tem um sistema nativo de processamento de anotações. Os processadores de anotações como o Room são muito usados no Android e dependem da compatibilidade com o processamento de anotações do Java por meio da ferramenta de processamento de anotações do Kotlin (KAPT). Mas a execução da KAPT pode ser lenta, já que requer a geração de stubs Java intermediários que podem, então, ser ingeridos pelo sistema de processamento de anotações do Java.
Ao projetar o KSP, pensamos em como seria o processamento de anotações para o Kotlin se o criássemos a partir do zero. O KSP oferece uma API poderosa, porém simples, para a análise direta do código do Kotlin, reduzindo drasticamente a sobrecarga da velocidade de compilação imposta pela geração de stubs do KAPT. Na verdade, as comparações iniciais com a biblioteca do Room mostram que o KSP é aproximadamente duas vezes mais rápido do que a KAPT.
Para ver como é o KSP em ação, faça o download do projeto playground do KSP no GitHub. Nele, você encontrará:
test-processor
workload
Toda a lógica de implementação do builder está em test-processor — para o consumidor (workload), a única diferença entre o uso da KAPT e do KSP é uma mudança em duas linhas do arquivo de compilação:
Esse é o objetivo do KSP: a maioria dos desenvolvedores de apps Android não precisa se preocupar com as partes internas do KSP. A não ser por essa mudança de uma linha, uma biblioteca que dá suporte ao KSP se parece exatamente com um processador de anotações normal, só que duas vezes mais rápida. Dito isso, o uso da KAPT e do KSP no mesmo módulo provavelmente reduzirá a velocidade de compilação no princípio. Portanto, durante esse período Alfa, é melhor usar o KSP e a KAPT em módulos separados.
À medida que mais processadores de anotações adotarem o KSP, esperamos que mais módulos serão capazes de usar o KSP como um substituto direto da KAPT. Por enquanto, você pode conferir quais processadores de anotações oferecem suporte ao KSP nesta tabela. Se uma biblioteca com suporte ao KSP ou em fase de implementação do suporte não estiver nessa tabela, envie uma solicitação com sua sugestão!
Se você for o autor de uma biblioteca que atualmente usa o processamento de anotações, pode obter mais informações sobre como tornar sua biblioteca compatível com o KSP nos guias de início rápido e LEIA-ME.
Para autores de bibliotecas, agora que o KSP está na versão Alfa, é um ótimo momento para começar a analisá-lo mais de perto e nos enviar seu feedback sobre a API usando o Issue Tracker do KSP. Além disso, periodicamente postamos atualizações da versão no canal #ksp do Kotlin no Slack. Desde a prévia para desenvolvedores no último mês de junho, já fechamos mais de 100 bugs e problemas, dezenas deles relatados pela sensacional comunidade de desenvolvedores de bibliotecas do Kotlin.
Java é marca registrada da Oracle e/ou de suas afiliadas.
Postar um comentário
Nenhum comentário :
Postar um comentário