Postado por Ting-Yuan Huang e Jiaxiang Chen, engenheiros de software
O Kotlin Symbol Processing (KSP), nossa nova ferramenta para a criação de plug-ins de compilador leves no Kotlin, agora está na versão estável. O KSP oferece uma funcionalidade similar à do Kotlin Annotation Processing Tool (KAPT). No entanto, ele é duas vezes mais rápido, oferece acesso direto a construções da linguagem Kotlin e dá suporte a destinos multiplataforma.
Nos últimos meses, o KSP passou por 32 versões, com mais de 162 bugs relatados pela comunidade e corrigidos por nossa equipe. Se você estava esperando para adotá-lo, este é momento certo para tentar.
Por que criamos o KSP
Na equipe do Android, perguntamos regularmente aos desenvolvedores: quais são as suas maiores frustrações com os apps de escrita de código hoje? Um dos principais problemas apontados com frequência é a velocidade de compilação. Ao longo dos anos, fizemos melhorias constantes no conjunto de ferramentas de compilação do Android e, hoje, é com grande prazer que anunciamos a adição dessas melhorias com o KSP. O KSP é a próxima geração de processamento de anotações no Kotlin: ele aumentará drasticamente a velocidade de compilação para os desenvolvedores Kotlin e, ao contrário do KAPT, oferece suporte a Kotlin/Native e Kotlin/JS.
"A adição do suporte a KSP ao Room aumentou a velocidade de compilação e também permitiu que o Room entendesse melhor o código do Kotlin, como a nulidade de parâmetros genéricos, o que não era possível com o KAPT. Isso também abre novas possibilidades, como a geração de código do Kotlin, que permitirão ao Room ter uma experiência do usuário melhor com o Kotlin no futuro." - Yigit Boyar, engenheiro de software, Android
Por que o KSP é mais rápido?
O Kotlin Annotation Processing Tool (KAPT) trabalha com a infraestrutura de processamento de anotações do Java para fazer com que a maioria dos processadores de anotações da linguagem Java funcione diretamente no Kotlin. Para isso, o KAPT compila código do Kotlin em stubs Java que retêm as informações tratadas pelos processadores de anotações do Java. No entanto, a criação desses stubs é cara, e requer que o compilador resolva todos os símbolos do programa várias vezes (uma para gerar os stubs e, depois, novamente para executar a compilação propriamente dita).
O KSP abandona o modelo de geração de stubs ao trabalhar como um plug-in de compilador do Kotlin, o que permite que os processadores de anotações leiam e analisem programas e recursos de origem diretamente no Kotlin, em vez de exigir o uso da infraestrutura de processamento de anotações do Java. Isso aumenta significativamente a velocidade de compilação (que foi até duas vezes mais rápida no app Kotlin de teste do Room) e significa que o KSP pode ser utilizado para ambientes não Android e não JVM, como Kotlin/Native e Kotlin/JS.
Como começar
Para começar a usar o KSP, faça o download do projeto playground do KSP do GitHub, que mostra como usar o KSP como processador de anotações e como app/biblioteca de consumo:
- Processador de anotações: uma biblioteca
test-processor
de brinquedo que implementa o padrão de builder como um processador do KSP
- Biblioteca de consumo: um diretório
workload
que mostra como usar o processador do builder em um projeto real do Kotlin
Se você é desenvolvedor de apps, confira a lista de bibliotecas com suporte e o guia de início rápido para a migração de um módulo do KAPT para o KSP.
Como usar o Moshi ou o Room com o KSP
Se você estiver usando o Moshi ou o Room em um projeto, já pode experimentar o KSP fazendo uma correção rápida no arquivo de compilação do módulo. Por exemplo, para usar a versão KSP do Room em um módulo do Gradle, você pode simplesmente substituir o plug-in KAPT pelo KSP e trocar a dependência do KSP:
apply plugin: 'com.google.devtools.ksp'
dependencies {
...
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
ksp "androidx.room:room-compiler:$room_version"
}
Veja mais informações nas notas da versão do Room.
Conclusão
Com a versão 1.0 do KSP, você começará a ver melhorias nos tempos de compilação dos projetos Kotlin ao fazer a migração das bibliotecas baseadas no KAPT. Também atualizamos várias bibliotecas específicas do Android que estão prontas para você experimentá-las hoje mesmo e oferecem melhorias significativas de desempenho.
Um comentário :
Onyx-Circle
Onyx Circle AG brings talents and companies together. Our broad network within the industries makes us a strong partner
when it comes to tracking down and connecting with experts.Digitalization
Digitization is permanently changing all areas of our economy and the relevant labor markets. Methods of networked planning, implementation
and management through the use of software dominate in the areas of construction and real estate management as well as in the industrial
sectors through the increased use of automation.
Postar um comentário