Kotlin no sólo simplifica el código que crees en su lenguaje, sino que mediante una serie de convenciones hace que todo el código Java sea mucho más sencillo de utilizar.

¿Cómo lo hace? Simplemente toma algunas estructuras generales y les da un aspecto más “Kotlin”.

En este artículo vamos a ver algunos ejemplos, y cómo esto hace nuestro código mucho más homogéneo y más sencillo, evitando gran parte del boilerplate.

El artículo forma parte de una serie de 30 con motivo del lanzamiento de mi formación presencial Kotlin para Desarrolladores Android, donde crearás una App desde cero aprendiendo todo lo que necesitas saber sobre Kotlin para poder desarrollar en este lenguaje por ti mismo.

kotin-desarrolladores-android

Integraciones de Kotlin con el SDK de Android

Puesto que el framework de Android es básicamente una librería Java, todo lo que hablábamos antes que ocurre con Java, se aplica perfectamente a Android.

Esto va a hacer que muchas veces parezca que el framework de Android se ha escrito en Kotlin, aunque obviamente no es así. Vamos a ver algunos ejemplos:

Los getterssetters se mapean a properties

Esto ya lo hemos visto en algunos artículos anteriores. Aquí tienes la explicación que te prometí.

Como ya hablamos, en Kotlin se usan properties en lugar de campos + getters + setters, y la forma de asignar valores o recuperarlos es la que utilizaríamos con un campo público en Java.

Pero como ya sabemos, por detrás se está ejecutando un código, que bien puede ser una asignación directa, o la operación personalizada que nosotros implementemos.

La regla aquí es que cualquier setX y getX que encuentre en java, lo va a mapear a un property x en Kotlin.

Por ejemplo, si tenemos un TextView, vamos a poder asignarle directamente el texto como si fuera una propiedad:

Y esto se aplica a cualquier clase, claro. Puedes acceder al applicationContext  o al layoutInflater de una Activity (por poner dos ejemplos) de la misma forma. No hagas mucho caso a los ejemplos en particular, son un poco absurdos:

Si te preocupa el rendimiento de esto, en realidad por detrás sigue mapeando a los getters y los setters originales, así que es lo mismo que llamarlos directamente.

Las interfaces con un sólo método se transforman en lambdas

Esto es una maravilla. ¿No estás harto de crearte clases anónimas para cualquier tontería en Android? Con Kotlin puedes evitarte el tener que hacer esto para muchos de los listeners del framework.

La condición es esa: que sea una interfaz con un único método. El ejemplo más característico es el setOnClickListener de la clase View.

Puedes hacer algo tan sencillo como esto:

¿Has visto qué fácil?

Si necesitas la vista que devuelve el método de la interfaz original, también puedes recuperarla:

Spoiler: ¿qué es esta nomenclatura tan rara? Se llama lambda, y es una forma de representar funciones donde recibe unos parámetros de entrada (lado izquierdo de la flecha) y realiza una operación, pudiendo devolver un valor de retorno (lado derecho de la flecha). Las veremos en algún artículo posterior.

Conclusión

Es así de sencillo integrar otras librerías de Java, y en particular el framework de Android, en proyectos Kotlin y que además tomen la apariencia de ese lenguaje.

De esta forma tenemos un código mucho más homogéneo.

Si quieres aprender mucho más sobre el lenguaje y hacerlo desde cero, apúntate al intensivo que impartiré en breve, donde te ayudaré a asimilar todos estos conceptos y ponerlos en práctica desde el primer minuto.