Anuncio del alfabeto de procesamiento de símbolos de Kotlin (KSP)


Publicado por Ting-Yuan Huang, ingeniero de software e David Winer, Gerente de producto

Imagen de Android

Hoy estamos encantados de anunciar el alfa de Procesamiento de símbolos de Kotlin (KSP), una nueva herramienta para crear complementos de compilador ligeros en Kotlin. KSP ofrece una funcionalidad similar a KAPTSin embargo, es hasta 2 veces más rápido, ofrece acceso directo a las funciones del compilador de Kotlin y fue desarrollado teniendo en cuenta la compatibilidad multiplataforma.

KSP es compatible con Kotlin versión 1.4.30 y posteriores. Puede consultar el código fuente abierto y la documentación en Archivo KSP GitHub.

¿Por qué KSP?

Solicitud no. 1 que escuchamos de los desarrolladores de Kotlin es aumentar la velocidad de construcción. Muchos desarrolladores iteran e implementan aplicaciones docenas de veces al día, por lo que tener que esperar una compilación lenta puede llevar mucho tiempo. Uno de los mayores desafíos con la compilación del código de Kotlin es que Kotlin no tiene un sistema de procesamiento de anotaciones nativo. Procesadores de anotaciones como Habitación son ubicuos en Android y dependen de la compatibilidad del procesamiento de anotaciones de Java a través de la herramienta de procesamiento de anotaciones de Kotlin (KAPT). La ejecución de KAPT puede ser lenta, ya que requiere la generación de stubs intermedios de Java que luego pueden ser importados por el sistema de procesamiento de anotaciones de Java.

Mientras diseñábamos KSP, pensamos en cómo sería el procesamiento de anotaciones para Kotlin si lo construyéramos desde cero. KSP ofrece una API poderosa pero simple para analizar directamente el código Kotlin, lo que reduce drásticamente el impuesto a la velocidad de compilación impuesto por la generación de stub KAPT. De hecho, los puntos de referencia iniciales con la biblioteca Room muestran que KSP es aproximadamente 2 veces más rápido que KAPT.

Para comenzar

Para ver cómo se ve KSP en acción, descargue el archivo Proyecto de patio de recreo de KSP desde GitHub. En ella encontrarás:

  • Biblioteca: Un juguete test-processor biblioteca que implementa el generador de patrones como procesador KSP
  • Proyecto de consumo: UN workload directorio que muestra cómo usar el generador de procesadores en un proyecto Kotlin del mundo real

Toda la lógica para implementar el constructor está adentro. test-processor – para el consumidor (workload), la única diferencia entre usar KAPT y KSP es una modificación del archivo de construcción de dos líneas:

Este es el objetivo de KSP: la mayoría de los desarrolladores de aplicaciones de Android no tienen que preocuparse por su interior; Aparte de este cambio de línea, una biblioteca compatible con KSP se parece a un procesador de anotaciones normal, solo que es hasta 2 veces más rápido. Dicho esto, usar KAPT y KSP en el mismo módulo probablemente ralentizará su compilación inicialmente, por lo que durante este período alfa, es mejor usar KSP y KAPT en módulos separados.

A medida que más procesadores de anotaciones adopten KSP, esperamos que la mayoría de los módulos puedan utilizar KSP como un reemplazo casi inmediato de KAPT. Por ahora, puede comprobar qué procesadores de anotaciones ofrecen compatibilidad con KSP en Esta mesa. Si falta en la tabla una biblioteca que admita o esté implementando soporte para KSP, envíe una solicitud de extracción con su sugerencia.

Si es autor de una biblioteca que actualmente utiliza procesamiento de anotaciones, puede encontrar más información sobre cómo hacer que su biblioteca sea compatible con KSP en el comida rápida es README guías.

Para los autores de bibliotecas, ahora que KSP está en alfa, es un buen momento para comenzar a mirar de cerca y darnos comentarios sobre la API en el Rastreador de problemas de KSP. Además, publicamos periódicamente actualizaciones de versiones en el canal #ksp en Kotlin Slack. Desde la vista previa para desarrolladores en junio pasado, hemos cerrado más de 100 errores y problemas, docenas de los cuales han sido informados por la increíble comunidad de desarrolladores de bibliotecas de Kotlin.

Java es una marca comercial registrada de Oracle y / o sus afiliadas.



Compruebe también

El arsenal de Android: historias de usuarios

Puedes leerlo en portugués (https://github.com/welbert6/MaterialStoryView/edit/master/ReadmePT.md) Capturas de pantalla Introducción MaterialStoryView es una biblioteca de Android …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *