Seguramente estés cansado en tu día a día de trabajar con findViewById para recuperar las vistas, o que ya te hayas dado por vencido y recurrido a la famosa librería Butterknife. Kotlin Android Extensions es mucho mejor que todo eso.

Este artículo pertenece a una serie de 30 con motivo del lanzamiento de mi curso presencial Kotlin Para Desarrolladores Android. ¡Apúntate antes de que te quedes sin plaza!

kotin-desarrolladores-android

Koltlin Android Extensions

Las Kotlin Android Extensions consisten en un nuevo plugin de Kotlin que se integra de manera totalmente transparente en nuestro código, y nos permiten recuperar las vistas de ActivitiesFragmentsViews de forma totalmente transparente.

1. Integrando Kotlin Android Extensions en nuestro código

Aunque el plugin viene integrado en el que ya nos descargamos de Kotlin, para poder utilizarlo necesitamos añadir un apply extra en nuestro proyecto:

Y esto es todo lo que necesitas, ya estás listo para trabajar con él

2. Recuperando las vistas en una activity o fragment

A partir de ese momento, es tan sencillo como utilizar el identificador que indicaste en el XML directamente en tu actividad o Fragment.

Supongamos que tenemos un XML como este:

Como ves, el TextView tiene el identificador welcomeMessage.

Tan sólo tienes que irte a la MainActivity y escribirlo:

Para poder utilizarlo, necesitas un import especial, que es el que te pongo a continuación, pero el plugin de Kotlin es capaz de auto-importarlo. ¡No podría ser más sencillo!

El código que esto genera por detrás será capaz de almacenar una caché de vistas, para que cada vez que se pida nuevamente no sea necesario hacer el findViewById real.

3. Recuperando vistas de una vista

Imagina que tienes una vista como esta:

Y que la estás inflando en un adapter, por ejemplo.

También puedes acceder directamente a sus subvistas sin necesidad de utilizar nada extra, tan solo usando este plugin:

Aunque el plugin también te ayudará a rellenar el import, este es un poco diferente del anterior:

Aquí hay un par de apuntes que hacer:

  1. En tiempo de compilación, te va a dejar acceder a cualquier vista desde cualquier otra. Es decir, podría no tener esas vistas como hijas. Pero en tiempo de ejecución, irá a buscarlas y no las encontrará, así que lanzará una excepción.
  2. Aquí no almacena una caché de vistas como con las Activities y los Fragments.

Pero usándolas con cabeza, son una herramienta muy poderosa

Conclusión

Ya has visto lo sencillo que es tratar con las vistas de Android en Kotlin. Con un simple plugin podemos olvidarnos de todas las complicaciones inherentes a la recuperación de las vistas desde un XML, ya que éste nos crea las properties con el tipo correcto sin más complicación.

Si quieres aprender todo esto a fondo mientras desarrollas una pequeña App Android real, te animo a que te apuntes al curso de Kotlin para Desarrolladores Android presencial que voy a impartir en breve.