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

Goolge lanzó, la versión Alpha del procesamiento de símbolos de Kotlin (Kotlin Symbol Processing o KSP), una herramienta completamente nueva para crear complementos de compilación ligeros en Kotlin.

KSP ofrece una funcionalidad similar a KAPT, sin embargo, es hasta 2 veces más rápido y ofrece acceso directo a las funciones del compilador Kotlin y además, se está desarrollando teniendo en cuenta la compatibilidad multiplataforma.

KSP es compatible con la versión de Kotlin 1.4.30 y posteriores; puedes consultar el código fuente y la documentación en el repositorio de KSP de GitHub.

¿Por qué KSP?

Muchos desarrolladores iteran e implementan aplicaciones docenas de veces al día, por lo que tener que sentarse a esperar una compilación lenta puede llevar mucho tiempo. Uno de los mayores desafíos al compilar el código de Kotlin es que Kotlin no tiene un sistema de procesamiento de anotaciones nativo.

Los procesadores de anotaciones Room, están omnipresentes 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).

Sin embargo, KAPT puede ser lento de ejecutar, ya que requiere generar stubs intermedios de Java que luego pueden ser ingeridos por el sistema de procesamiento de anotaciones de Java.

Al crear KSP, pensamos en como sería el procesamiento de anotaciones para Kotlin si lo construyéramos desde cero. KSP ofrece una API potente y simple para analizar el código Kotlin directamente.

De hecho, los puntos de referencia iniciales con la biblioteca Room muestran que KSP es aproximadamente 2 veces más rápido que KAPT.

Empezando

Para ver como funciona KSP en acción, puedes descargar el proyecto del patio de juegos de KSP de Github.

En él encontrarás:

  • Biblioteca: Una test-processorbiblioteca de juguetes que implementa el patrón del constructor como un procesador KSP
  • Proyecto de consumo: Un workloaddirectorio que muestra mo utilizar el procesador de construcción en un proyecto de Kotlin del mundo real

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

Agregar:

plugins {
 ```
 id("com.google.devtools.ksp")
}
ksp(project(":test-processor"))

Suprimiendo la línea:

kapt(project(":test-processor")) 

Este es el objetivo de KSP: La mayoría de los desarrolladores de aplicaciones de Android no necesitan preocuparse por sus componentes internos. Aparte de este cambio de una línea, una biblioteca que admite KSP, se ve como 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 alpha, 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 sus módulos puedan usar KSP como un reemplazo casi inmediato de KAPT. Por ahora, puedes consultar qué procesadores de anotaciones ofrecen compatibilidad con KSP en la siguiente tabla.

Si faltase en la tabla, alguna biblioteca que admita o esté implementando soporte para KSP, no dudes en enviar una solicitud de extracción.

Si eres autor de una biblioteca, que actualmente usa el procesamiento de anotaciones, puedes encontrar más información sobre cómo hacer que tu biblioteca sea compatible con KSP dentro de las guías de inicio rápido y README.

Para los autores de bibliotecas, ahora que KSP está en modo Alpha, es un buen momento para comenzar a analizarlo de cerca y darnos su opinión sobre la API en el rastreador de problemas de KSP.

Además, se publican actualizaciones de versiones en el canal #ksp de Kotlin Slack.

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

Fuente: Blog de Desarrolladores de Android bajo Licencia Creative Commons 2.5.

Relacionado

Visual Studio integrado en Github: Codespaces, nuevo editor beta integrado en tus repositorios

Contribuir con código a una comunidad puede ser difícil. Cada repositorio tiene su propia forma de configurar un entorno de desarrollo, que a menudo requiere docenas de pasos antes de poder escribir cualquier código. Peor aún, a veces el entorno de dos proyectos en los que está trabajando entra en conflicto entre sí. Codespaces te brinda un entorno de desarrollo con todas las funciones alojado en ¡SEGUIR LEYENDO!

Universo Github 2021

Un año más Github realiza el evento Universo de Github en el que presentan novedades y lanzan algunos webinar en los que impulsar y mejorar el uso de la plataforma. Si quieres acceder a todo el contenido, se requiere una cuenta de Github y el registro tanto en el Evento como en las sesiones y talleres que más te interesen. ?‍? ACCEDER AL UNIVERSO GITHUB 2021 ¡SEGUIR LEYENDO!

Un token de GitHub mal Gestionado expuso el Código fuente de Mercedes-Benz

El 29 de septiembre de 2023, ocurrió un importante incidente de seguridad en Mercedes-Benz, un reconocido fabricante de automóviles alemán. Un incidente de mal manejo de un token de GitHub resultó en un acceso no restringido al servidor interno de GitHub de la empresa, exponiendo código fuente crítico al público. Este artículo profundiza en los detalles del incidente, sus posibles consecuencias y las acciones posteriores tomadas ¡SEGUIR LEYENDO!

The best Udemy courses in August, only for 9.99 $

Los mejores cursos en inglés y en oferta, hasta el día 27. Los cursos incluidos aquí son todos en inglés. Revisa por aquí, entre los mejores cursos en oferta de Udemy de Agosto en español, si lo que deseas son cursos en español. Si por desgracia, no tienes la oportunidad de acceder a comprar alguno de los excelentes cursos que te mostraré a continuación. Siempre puedes ¡SEGUIR LEYENDO!

Scripting con GitHub CLI

Ha pasado un año desde que lanzamos la primera versión pública de GitHub CLI. Desde entonces, hemos agregado funcionalidad para administrar repositorios, comentar problemas, habilitar la fusión automática para solicitudes de extracción, configurar de forma segura valores secretos para acciones de GitHub y más. Sin embargo, donde las herramientas de línea de comandos realmente brillan es en su capacidad para combinarse con otras utilidades e integrarse ¡SEGUIR LEYENDO!

Salir de la versión móvil