Home » Noticias » Kotlin, nuevo lenguaje de primer nivel para Android
Banner Kotlin Android

Kotlin, nuevo lenguaje de primer nivel para Android

Ayer día 17 de mayo comenzó la Conferencia de desarrolladores de Google, la Google I/O 2017. En su conferencia inaugural, destinada más al consumidor que a los desarrolladores en sí, se comentaron importantes novedades centradas principalmente en la inteligencia artificial. Ahora más que nunca rodea todos y cada uno de los servicios de Google. Desde Gmail que empezará a proponerte respuestas automáticas a los correos interpretando su contenido, pasando por un Google Fotos que te recomendará qué y a quién compartir contenido (te sugerirá que le envíes a la abuela la nueva foto del nieto que ha salido genial) o la llegada del asistente de Google a iOS que además aprende a ver y reconocer elementos en fotografías, vídeos o en la propia cámara en directo.

Pero sin duda, la noticia estrella, la que provocó la mayor ovación, fue el anuncio que Android incorpora un nuevo lenguaje de programación de primer nivel para el desarrollo de apps: Kotlin, un lenguaje abierto creado por la empresa JetBrains en el año 2012, y que tiene bastantes similitudes con nuestro querido Swift (o viceversa).

Kotlin, el mejor candidato

Estaba claro que Android y Google necesitaban un nuevo lenguaje de programación que no fuera Java, pues este no solo ha generado problemas legales entre Oracle (la dueña del lenguaje) y la propia Google, sino que como tal, Java es ya un lenguaje antiguo con más de 20 años en su espalda, y en su propia estructura no puede evolucionar mucho más allá. Pero al igual que le sucedía a Apple, Google necesitaba un lenguaje que fuera 100% compatible con Java en su interoperabilidad, como lo es Objective-C respecto a Swift. De esta forma, Google se garantiza una evolución escalonada de los desarrollos, y no obligar desde el momento 0 a todos a migrar al nuevo lenguaje.

Uno de los objetivos de Kotlin es poder hacer migraciones escalonadas por módulos o ficheros, pudiendo tener proyectos mixtos que usen ambos lenguajes. El motivo es claro, Kotlin es capaz de crear el mismo código binario intermedio que se ejecuta en la JVM de Android. Al igual que LLVM genera bitcode compatible, provenga el código de Swift u Objective-C, Kotlin hace lo propio generando el byte-code que se ejecuta contra la JVM. De hecho, ya se podía programar en Kotlin usando la SDK de Android, instalando un plugin en Android Studio o el IDE que usáramos como Eclipse. La diferencia ahora es que JetBrains y Google han trabajado mano con mano para crear una absoluta integración con Kotlin y que no sea un simple plugin, más bien un lenguaje de primer nivel que tenga una especificación dedicada a la hora de invocar los objetos que forman parte de la SDK de Android.

Configurando e instalando

Como hemos comentado, la principal diferencia a partir de ahora es que el plugin de Kotlin vendrá como parte de Android Studio 3.0, pero si queremos seguir usando la versión 2, solo tendremos que instalar la última versión del plugin desde File > Settings > Plugins (o Preferences > Plugins si no hemos creado un nuevo proyecto aún, o Configure > Plugins si estamos en la ventana de Welcome to Android Studio). Pulsamos el botón Install JetBrains plugin…” y nos mostrará una nueva ventana. En ella bajamos hasta encontrar el plugin Kotlin y lo instalamos. Tras esto, reiniciamos Android Studio.

Kotlin Install

Cuando creemos un nuevo proyecto en Android Studio 3, al igual que ahora tenemos un check que nos invita a añadir soporte de C++ en el proyecto, tendremos uno nuevo con el que añadir el soporte de Kotlin también y nos creará la base de todo el proyecto en este nuevo lenguaje en vez de Java. Luego, como normalmente hacemos, elegimos la versión mínima (el API level) sobre el que vamos a desarrollar y a seguir. En contra de lo que algunos medios generalistas han comentado, Kotlin NO es un lenguaje para Android O. Es un lenguaje que puede ser usado en cualquier versión de Android porque, como hemos comentado, la clave está en su generación de byte-code compatible con la JVM que da soporte al sistema, sea cual sea la versión del mismo (en las soportadas por Android Studio).

Para usar Kotlin si usamos Android Studio 2 y creamos un nuevo proyecto, tendremos que ir hasta el MainActivity.java y veremos el clásico fichero.

Una vez allí, deberemos ejecutar una acción que convertirá este fichero en Kotlin. Vamos al menú Help y allí pulsamos en Find Action. Nos saldrá una ventana emergente y escribimos convert. Al hacerlo, la primera opción que veremos será la acción Convert Java File to Kotlin File que además puede ser invocada con Alt+Shift+CMD+K. Pulsamos la combinación de teclas en el fichero MainActivity.java o lo elegimos del menú. Inmediatamente veremos que el código se convierte a un nuevo fichero MainActivity.kt de extensión Kotlin.

Y sí, como podemos ver Kotlin se parece bastante a Swift… (¿o sería al revés?) Tenemos opcionales y no hay que poner ; al final de una línea, entre otras cosas en común. Si queremos ver una curiosa comparativa entre ambos lenguajes, os invitamos a echarle un vistazo a Swift is like Kotlin donde se analizan diferentes tipos de estructuras y su similitud.

A partir de este punto, con hacer File > New bastará para que creemos un nuevo fichero Kotlin File/Class en vez de Java Class, con lo que podremos seguir trabajando sin problema, usando el nuevo lenguaje. En el momento en que escribimos este artículo, Android Studio 3 aun no está disponible para Mac, pero suponemos que a lo largo de esta semana lo estará y facilitará mucho más las cosas.

Conclusiones

Y alguno se preguntará: ¿qué diferencia hay ahora si ya podía usarse Kotlin como lenguaje para desarrollar en Android? La diferencia es que Android Studio 3 tendrá el soporte integrado en la app y no requerirá la instalación de plugin alguno, y la otra es el propio plugin que lanza JetBrains, que usando la última versión 1.1 del lenguaje, se integra completamente y permite crear proyectos 100% Kotlin sin usar una sola línea de Java con mejor integración de las APIs propias de desarrollo de Android. Pero la diferencia real es que ahora ya no es un plugin como tal, sino que la propia Google trabajará de aquí en adelante para mantener Kotlin como lenguaje de desarrollo de primer nivel en todas sus capas de desarrollo. Trabajando de la mano de JetBrains, por supuesto.

Si lo analizamos, era el paso más obvio. Android Studio utiliza tecnologías de la plataforma IntelliJ IDEA (el IDE de JetBrains) de forma licenciada, el lenguaje Kotlin es 100% interoperable desde su versión 1.1 con Java, y el byte-code que genera es el mismo. Por lo tanto, tenemos una nueva e interesante opción para desarrollar en Android. Pero ojo, no olvidemos algo importante: Kotlin es el lenguaje, pero la SDK de Android, sus clases, métodos, propiedades y demás son las mismas. Los invocaremos o manejaremos de otra forma, pero no deja de ser la misma SDK. Como hemos repetido mil y una veces con Swift u Objective-C, una cosa es el lenguaje y otra MUY diferente es la API de desarrollo de apps móviles con la que trabajemos.

Por cierto, Kotlin como tal depende de varios módulos que son los encargados de compilar el código en un binario. Actualmente tiene dos módulos operativos, Kotlin/JVM que es el que genera código compatible con JVM y también tiene otro llamado Kotlin/JS que genera código en JavaScript y que está pensado para trabajo en lado servidor (para backends). Pero lo más curioso, es que actualmente se está trabajando en Kotlin/Native, una versión nativa del lenguaje que será capaz de generar binarios ejecutables en cualquier plataforma sin necesidad de usar máquina virtual. ¿Adivináis que arquitectura de compilador usa? ¡Exacto! LLVM, la misma de Swift. Kotlin/Native será capaz de generar código para Mac, Ubuntu Linux (en otras plataformas Linux) y a través de compilación cruzada será capaz de ejecutarse en iOS y Raspberry Pi, y no solo eso, JetBrains prepara poder reutilizar código usado en Android en iOS. Así que, estaremos atentos al avance de este lenguaje.

Os invitamos a probar Kotlin y que nos contéis vuestra experiencia. Muy pronto haremos también un podcast hablando de todo esto, más todo lo interesante que haya dado de sí Google I/O 2017. Un saludo y Good Apple Coding.

Actualización

Ya está disponible Android Studio 3.0 Preview en su primera versión, Canary 1. Podemos descargarla en nuestro Mac e instalarla junto a la versión de producción actual sin ningún problema, ya que los archivos de configuración de cada versión van en una ruta diferente y el .app se llama diferente.

Kotlin Android Studio 3

La forma de trabajar con Kotlin es infinitamente más simple. Nada más crear un nuevo proyecto, lo único que tendremos que hacer es marcar el check que dice Include Kotlin support y ya está. De esta forma se creará un proyecto en Kotlin.

Android Studio 3 Preview | Descargar

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Files Banner

¡BOOM! Se filtra el gestor oficial de archivos de Apple: Files

A solo una horas de comenzar la WWDC, se filtra en el App Store durante unos minutos la app Files, gestor oficial de archivos para iOS 11. Analizamos cómo podría iOS 11 incorporar la gestión de archivos, que el hecho de cómo y dónde está publicada nos da mucha información de lo que Apple piensa hacer con este demandado servicio para sus dispositivos iOS.