Integraciones de Kotlin con el SDK de Android (KDA 05)
Antonio Leiva

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.

¿Te gustaría comenzar hoy a dar el siguiente paso? Te recomiendo que entres en mi training gratuito aquí.

Training Revienta tu productividad en Android con Kotlin

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:

val textView: TextView = ...
textView.text = "My Text"

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:

layoutInflater.inflate(R.layout.view_item, parent)
val hello = applicationContext.getString(R.string.hello)

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:

view.setOnClickListener { navigateToNextActivity() }

¿Has visto qué fácil?

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

view.setOnClickListener { v -> navigateWithView(v) }

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úntante a mi training gratuito, donde tendrás una hora y media de contenido para saber cuáles son tus siguientes pasos a dar para convertirte en un experto en Kotlin.

Quizá también te interese…

Kotlin 1.5.0 : Las 5 novedades que puedes empezar a usar hoy

Kotlin 1.5.0 : Las 5 novedades que puedes empezar a usar hoy

Kotlin 1.5.0 ya está aquí, y como siempre trae una serie de novedades que te van a interesar muchísimo. Cabe destacar que a partir de ahora, de acuerdo las nuevas versiones de Kotlin se lanzarán cada 6 meses, independientemente de las nuevas funcionalidades que...

¿Qué es Kotlin y para qué sirve?

¿Qué es Kotlin y para qué sirve?

Kotlin es un lenguaje de programación de código abierto creado por JetBrains que se ha popularizado gracias a que se puede utilizar para programar aplicaciones Android. Pero si has llegado hasta aquí pensando que Kotlin solo se puede usar en Android, lo que te voy a...

2 formas de recolectar Flows en la UI que SÍ funcionan

2 formas de recolectar Flows en la UI que SÍ funcionan

En la serie de artículos sobre Programación Reactiva con Flow hemos visto muchos conceptos, y hemos aprendido cómo aplicarlos al desarrollo Android. Pero hay algo que no hemos hecho del todo bien. Esto es la recolección de Flows desde la Activity (o el Fragment, en...

2 Comentarios

  1. freeman

    Al instalar el Kotlin me pide el SDK pero lo instalo y aun me sigue pidiendo

    Responder
    • Antonio Leiva

      Si has seguido todos los pasos de la guía (o del primer artículo), deberías tenerlo todo listo. Has configurado los build.gradle correctamente?

      Responder

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de Antonio Leiva Gordillo, con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

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

Acepto la política de privacidad *