Tiempos de compilación de Kotlin acelerados con Kotlin Symbol Processing 1.0


Publicado por Ting-Yuan Huang, ingeniero de software y Jiaxiang Chen, ingeniero de software

Los tiempos de compilación de Kotlin se aceleraron con la imagen de Kotlin Symbol Processing 1.0

Procesamiento de símbolos de Kotlin (KSP), nuestra nueva herramienta de creación de complementos de compilación liviana en Kotlin, ¡ahora es estable! KSP ofrece una funcionalidad similar a la herramienta de procesamiento de anotaciones de Kotlin (KAPT), sin embargo, es hasta 2 veces más rápido, ofrece acceso directo a las construcciones del lenguaje Kotlin y ofrece soporte para objetivos multiplataforma.

En los últimos meses, KSP ha pasado por 32 versiones con más de 162 errores reportados por la comunidad y corregidos por nuestro equipo. Si ha estado esperando para adoptarlo, ahora es el momento de comprobarlo.

Por qué creamos KSP

En el equipo de Android, preguntamos regularmente a los desarrolladores: ¿Cuáles son sus mayores frustraciones al escribir aplicaciones hoy en día? Uno de los principales problemas que surge repetidamente es la velocidad de creación. A lo largo de los años, hemos realizado mejoras constantes en la cadena de herramientas de compilación de Android y hoy nos complace agregar a estas mejoras con KSP. KSP es la próxima generación de procesamiento de anotaciones en Kotlin: mejorará enormemente la velocidad de compilación para los desarrolladores de Kotlin y, a diferencia de KAPT, ofrece soporte para Kotlin / Native y Kotlin / JS.

¿Por qué KSP es más rápido?

La herramienta de procesamiento de anotaciones de Kotlin (KAPT) funciona con la infraestructura de procesamiento de anotaciones de Java para hacer que la mayoría de los procesadores de anotaciones del lenguaje Java funcionen en Kotlin de forma inmediata. Para hacer esto, KAPT compila el código Kotlin en stubs Java que contienen la información de interés para los procesadores de anotaciones Java. Sin embargo, crear estos stubs es costoso y significa que el compilador tiene que resolver todos los símbolos del programa varias veces (una vez para generar stubs y luego de nuevo para realizar la compilación real).

KSP se aleja del modelo de generación de stub al funcionar como un complemento del compilador de Kotlin: permite a los procesadores de anotaciones leer y analizar programas y recursos fuente directamente en Kotlin en lugar de requerir que dependan de la infraestructura de procesamiento de anotaciones de Java. Esto mejora enormemente la velocidad de construcción (hasta 2 veces más rápido para Room’s Aplicación de prueba de Kotlin) y significa que KSP se puede utilizar para entornos que no son de Android ni de JVM, como Kotlin / Native y Kotlin / JS.

Cómo empezar

Para comenzar a usar KSP, descargue el Proyecto de patio de recreo de KSP de GitHub, que muestra cómo usar KSP como procesador de anotaciones y como aplicación / biblioteca consumible:

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

Si es un desarrollador de aplicaciones, consulte lista de bibliotecas compatibles y el Inicio rápido guía para mover un módulo de KAPT a KSP.

Usar Moshi o Room con KSP

Si está utilizando Moshi o Room en su proyecto, ya puede probar KSP haciendo una solución rápida al archivo de compilación de su módulo. Por ejemplo, para usar la versión KSP de Room en un módulo Gradle, simplemente puede reemplazar el complemento KAPT con KSP y reemplazar la dependencia 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"

}

Eche un vistazo al Notas de la versión de la sala para más información.

Conclusión

Con la versión 1.0 de KSP, comenzará a ver tiempos de compilación mejorados para sus proyectos de Kotlin a medida que salga de las bibliotecas basadas en KAPT. También hemos actualizado una serie de bibliotecas específicas de Android que están listas para probar hoy y ofrecen importantes mejoras de rendimiento.

Compruebe también

Blog para desarrolladores de Android: Lucha contra las estafas de robo de identidad: el enfoque innovador de Monzo

Publicado por Todd Burner, ingeniero de relaciones con desarrolladores Los ciberdelincuentes continúan invirtiendo en estafas …

Deja una respuesta

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