Crear alertas y diálogos en Android es una tarea relativamente sencilla gracias a los builder, pero que debido a la verbosidad del lenguaje se suele convertir en algo bastante ilegible.

En Kotlin, ya por el mero hecho de las lambdas, nos simplifica un poco el entender qué está pasando en ese código.

Pero gracias a Anko, podemos hacer todo esto más sencillo todavía, y en este artículo vamos a ver cómo.

Si quieres aprender cuál es la situación de Kotlin en el mercado, por qué debes aprenderlo y los primeros pasos para que veas lo fácil que es, he preparado un training gratuito de hora y media al que puedes unirte haciendo click aquí.

Alertas en Kotlin con Anko

Escribir alertas con Anko es sencillísimo. Tan sólo tienes que crea un bloque alert:

alert("Testing alerts") {
    ...
}.show()

Dentro del bloque, puedes especificar algunas cosas como el título de la alerta, o los botones que quieres que aparezcan

alert("Testing alerts") {
    title("Alert")
    yesButton { toast("Yess!!!") }
    noButton { }
}.show()

Esto tiene como resultado una alerta así:

alert-anko-kotlin

Puedes personalizar las acciones, utilizando los métodos positiveButton, negativeButton y neutralButton:

alert("Testing alerts") {
    title("Alert")
    positiveButton("Cool") { toast("Yess!!!") }
    negativeButton("Never Ever") { }
    neutralButton("I'll think about it")
}.show()

alert-anko-kotlin-2

En incluso añadirle una vista custom que, por supuesto, puedes crear con el propio Anko:

alert {
    title("Alert")
    positiveButton("Cool") { toast("Yess!!!") }
    customView {
        linearLayout {
            textView("I'm a text")
            button("I'm a button")
            padding = dip(16)
        }
    }
}.show()

alert-anko-kotlin-3

Diálogos de progreso

Otra función interesante que incluye Anko es la de crear diálogos de progreso, y de progreso indeterminado.

Por poner un ejemplo de los segundos, puedes crear un diálogo de progreso de esta forma tan sencilla:

indeterminateProgressDialog("This a progress dialog").show()

El resultado de la línea anterior será este:

alert-anko-kotlin-4

Conclusión

Ya ves que gracias a Anko y la potencia de Kotlin, se pueden crear pequeños DSLs para simplificar tareas. Idealmente podrías crear DSLs sobre cualquier parte del framework, de tal forma que haga mucho más sencilla la interacción con ella.

En algún artículo posterior veremos cómo tratar con bases de datos SQLite.

Si te gusta lo que has visto, te animo a que te apuntes al training gratuito, donde te contaré todo lo que necesitas para aprender a crear tus Apps Android en Kotlin desde cero.

Author: Antonio Leiva

Soy un apasionado de Kotlin. Hace ya más de dos años que estudio el lenguaje y su aplicación a Android para ayudarte a ti a aprenderlo de la forma más sencilla posible.