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…

Cómo crear un backend en Kotlin usando Ktor

Cómo crear un backend en Kotlin usando Ktor

Ktor es un framework de servidor web ligero y rápido para Kotlin, desarrollado por JetBrains. Es ideal para crear aplicaciones web y servicios RESTful, y es muy fácil de usar y configurar. En este artículo, vamos a ver cómo crear un backend para una aplicación de...

Cómo simular una base de datos reactiva en Room con Fakes

Cómo simular una base de datos reactiva en Room con Fakes

En el desarrollo de aplicaciones móviles es muy común utilizar bases de datos para almacenar y gestionar la información que se utiliza en la aplicación. En el caso de Android, una de las opciones más populares es Room, una librería de persistencia de datos que...

Flows de Kotlin para implementar búsquedas en tiempo real

Flows de Kotlin para implementar búsquedas en tiempo real

En Android, los Flows de Kotlin son una manera de representar secuencias de datos asincrónicas que emiten valores de forma continua. Estos Flows pueden ser útiles en situaciones en las que deseamos escuchar eventos y procesar los resultados de forma asíncrona, como 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 DevExpert, S.L.U., 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 *