Episodio 69 – Acelera tus builds en Android con KSP: Kotlin Symbol Processing
Una de las ideas que más nos suele rondar a los desarrolladores Android es bajar los tiempos de compilación. De esto, ya hablamos en el episodio 54, «Compilaciones más rápidas en Android». Para acelerar las builds, ahora también podemos hacer uso de KSP en Android.
KSP es el nuevo plugin que viene a sustituir en Kotlin a KAPT.
Te dejo aquí unos links por si quieres indagar más al respecto:
- Accelerated Kotlin build times with Kotlin Symbol Processing 1.0
- Repositorio de KSP en Github
- Librerías soportadas
Pero antes de nada, dale al play, que te lo resumo yo en un periquete y de viva voz. 😉
Y que no se me olvide. Sobre temas de tiempos de compilación, quizá también te interese Reified Types en Kotlin.
Contenido del audio
Transcripción
¡Muy buenas! Soy Gabi Moreno y te doy la bienvenida al episodio número 69 de Productividad
en el Desarrollo Android, el podcast donde hablamos sobre qué deberías hacer para ser
una desarrolladora o desarrolladora Android más eficaz y eficiente.
Te contamos técnicas, hábitos, herramientas, conceptos, tips y todo aquello que te va a
hacer crecer sí o sí, porque hay algo que todas y todos tenemos en común y es que el día dura
24 horas, como inviertas o gastes este tiempo es cosa tuya.
KSP es más rápido que KAPT y un saludo a los que escucháis el podcast desde los Estados Unidos,
España, México, Venezuela, Argentina, Bolivia, Alemania, Ecuador, Canadá,
Bélgica, Cuba, UK, República Checa y Rusia. Si me estás escuchando desde otro país te
agradecería un montón que me envíes un e-mail a hola@gabimoreno.soy diciéndome el país
en el que estás y desde qué plataforma me escuchas.
Y antes de comenzar con el tema de KSP, como desarrolladoras y desarrolladores Android,
hay etapas dentro de nuestra carrera profesional en las que probablemente tengamos alguna carencia
técnica que nos gustaría solventar y que por falta de tiempo, porque la empresa en la que estamos
actualmente no se trabaja o por el motivo que sea, se nos está resistiendo.
Si llevas programando en Android a nivel profesional menos de 5 años y no eres un
cracking testing, inyección de dependencia, skin architecture, principio solid, no estás sola ni
solo, a mí personalmente también me he pasado lo mismo y es por ello por lo que te puedo ayudar,
ya que yo lo he vivido de primera mano. Ya me hubiera gustado hace unos años que hubiera
existido una formación como el plan impulso Android. Es súper práctica, completamente
personalizada a cada caso y además trabajarás sobre un repoprivado mano a mano conmigo.
Vamos, que a lo mejor entras que metes todo dentro de las activities y sales que las dejas
completamente tontas y además con la lógica por detrás bajo test. O si por ejemplo quieres
aprender Hilt, Jetpack Compose, modularizar un proyecto y no sabes de dónde sacar tiempo para
ponerte o simplemente no te pones, lo vas dejando pasar, lo que sea con el plan impulso Android tienes
el camino a seguir. Un plan, ya que te obligas de manera sincrona a ir avanzando hasta dominar los
puntos que te marques como objetivos de la formación. Todo ello acompañado de la mano por mí
durante todo el camino. Y también hay que tener en cuenta que para ciertas cosas tú misma o tú
mismo no tienes por qué estar viendo algo que seguramente te gustaría mejorar. Es decir,
yo desde fuera es más probable que sí que pueda verlo y esto tiene un factor diferenciador vital
con respecto a los típicos cursos de programación. Y es por ello por lo que esta formación aporta
tantísimo valor ya que vas a tener una interacción directa conmigo. Invierte en ti misma o tú mismo,
tú y yo del futuro te lo agradecerá. Entra a mi web gabimoreno.soy y solicita info del plan
impulso Android. Vamos para allá. Hoy te voy a hablar sobre KSP, el nuevo plugin para las
compilaciones que viene a sustituir a KAPT y de si deberías usarlo o no en tus proyectos Android.
Antes de nada, vamos a ver qué es KSP. Como sus propias siglas indican, KSP es Colding
Symbol Processing y es un plugin de Gradle para las compilaciones. Viene a ser una herramienta muy
similar a KAPT, Colding Allotation Processing 2 y de hecho muy probablemente acabe reemplazándola.
¿Y por qué? Pues muy sencillo. ¿Por qué más rápida? Uno de los objetivos que tenían en mente
al desarrollar esta herramienta era precisamente solventar uno de los cuellos de botella que
históricamente tenemos en Android, que es como casi con toda probabilidad sepas los tiempos de
compilación, que pueden llegar a ser bastante, bastante largos. Por lo tanto, una de nuestras
labores como desarrolladores Android a la hora de afilar la sierra y ser más eficientes es
acortar estos tiempos de compilación para así poder ver cuanto antes los cambios que
vamos haciendo nuestro código, nuestro emulador o dispositivo físico. Y bien, ¿cuánto más rápido
es este plugin? Pues lo que nos dicen en la documentación es que en torno al doble, es decir,
el doble de rápido, que tarde la mitad de tiempo, lo cual es más que de sobra para que nos llame la
atención y pensemos en hacer ya mismo el cambio, claro. Otro de los factores positivos a tener en
consideración es que no estamos hablando de una herramienta en modo experimental ni alfa,
ya es estable. Y esto es un grandísimo punto a favor. Pero como se suele decir, no todo el monte
es orégano, aunque ya sea estable, aún es una tool bastante joven y seguro que irán implementando
nuevas features que agradeceremos enormemente. Y una de ellas es la que muchísima gente estamos
esperando como agua de mayo, que es la posibilidad de usarla con dagger, ya que aún no está disponible y
claro, es que precisamente este podría ser uno de los mayores alicientes que podríamos tener
para incorporarla de inmediato a nuestros proyectos. De hecho, te voy a dejar la entrada de la web
gabimoreno.soy/69