Andre Ikeda Lima | Android Especialist | everis Brasil

Kotlin, visión general del nuevo lenguaje para Android

everis Latam
Sep 3, 2018 · 4 min read

A mediados de 2009, yo empezaba a caminar, lentamente, mi camino en el desarrollo de aplicaciones para teléfonos móviles. En la época de J2ME, y luego en Java Android, sentía la necesidad de un lenguaje menos estructurado y que no tuviera una curva de aprendizaje tan exigente (especialmente en el caso de J2ME). Fue un largo camino hasta que Kotlin entrara en mi vida, pero definitivamente fue el mejor lenguaje que he conocido hasta ahora.

En 2010, un grupo de ingenieros de JetBrains inició el desarrollo del lenguaje Kotlin buscando suplir las carencias de la empresa que provenían de otros lenguajes, con la excepción del lenguaje Scala. Sin embargo, el tiempo de compilación de Scala siempre fue una deficiencia obvia.

En febrero de 2016, el lenguaje fue lanzado bajo el sobrenombre de Kotlin v1.0, siendo el primer lanzamiento oficial y estable. Poco más de un año tras el lanzamiento, Google anunció en el evento Google I/O el soporte oficial del lenguaje para Android.

Cuando comencé a estudiar Kotlin, tenía la noción de las dificultades que surgirían en el camino, pero me sorprendió la rápida curva de aprendizaje del lenguaje. En este artículo, traigo un poco de ese conocimiento adquirido.

Interoperabilidad con Java

Para empezar, Kotlin es un 100 % interoperable con Java, lo que significa que es posible tener los dos lenguajes conversando en un mismo proyecto. Otra gran ventaja es el plugin de Android Studio que convierte el código Java a su respectivo en Kotlin.

Figura 1. Por medio del menú Code, es posible encontrar la opción para convertir código Java en Kotlin.Figura

Simplicidad

Para quienes programan desde hace mucho tiempo lenguajes estructurados como Java, tratan con naturalidad la gran cantidad de líneas de código para ejecutar funciones, a menudo, simples. Sin embargo, cuando colocamos los dos lenguajes (Java/Kotlin) lado a lado, vemos cuánto más un programador Java escribe que un programador Kotlin para que la aplicación realice la misma función.

Figura 2. Método onCreate del modelo de creación de una NavigationDrawerActivity en Java
Figura 3. Método onCreate del modelo de creación de una NavigationDrawerActivity en Kotlin

Como podemos ver en las figuras 3 y 4, Kotlin tiene una dinámica de programación más concisa, y gracias a ello hace más fácil la comprensión.

Seguridad contra nulidad

Uno de los mayores problemas en el lenguaje Java, si no el mayor, son los NullPointerExceptions, cariñosamente llamados NPE. En Java, para cada acceso en un objeto, el programador debe comprobar si este es nulo. Kotlin ofrece una forma más eficiente de hacer la verificación porque el propio lenguaje distingue referencias que pueden ser nulas (nullable references) de referencias no nulas (non-null references).

Figura 4. Declaración de un tipo no nulo.
Figura 5. Para permitir que la variable sea nula, basta declararla de modo que tenga ? al final.

En la figura 4, tenemos la declaración de una variable que no puede ser nula. Cuando intentamos asignar nulo a esta variable, el compilador informa de la imposibilidad de esta acción. En la figura 5, ya declaramos la variable como posible nulo. En este caso, al asignar nulo a la variable, la aplicación es compilada normalmente.

Extensiones

Una de las características más interesantes de Kotlin es el uso de extensiones para agregar nuevos métodos a una clase sin la necesidad de heredar (esto incluye implementar todos los métodos) de esta. Pensando así, ¿cuál es el incentivo por detrás de este enfoque? La respuesta es simple: evitar la estructuración característica de las llamadas en Java.

Figura 6. Trecho de código para cambiar el mayor elemento de cada lista.
Figura 7. Extensión del método para cambiar elementos de una lista.
Figura 8. En Kotlin, cómo quedaría el mismo trecho de código de la figura 6.

Hay otras ventajas y también limitaciones de Kotlin con relación a Java que pueden ser encontradas en la propia página web de Kotlin. Termino diciendo que el uso de Kotlin como lenguaje principal en el desarrollo de aplicaciones de Android, no sólo me trajo beneficios en el sentido de aprendizaje, sino que también hizo mi vida de programador más simple y menos estructurada.

By: André de Lima

everis Latam

Written by

Exponential intelligence for exponential companies

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade