Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Qué es Kotlin

Aris Guimerá Orozco
  • Escrito por Aris Guimerá Orozco el 05 de Abril de 2021
  • 7 min de lectura Desarrollo Móvil
Qué es Kotlin

En los más de 13 años que Android lleva en el mercado ha recibido una gran cantidad de cambios, no solo a nivel de arquitectura, estilos e incluso las famosas asyntask. Hoy vamos a hablar del mayor cambio en el desarrollo de este sistema operativo, Kotlin.

Es oficial, Kotlin se ha vuelto el lenguaje favorito de los desarrolladores Android para sus proyectos. A diferencia de Java, Kotlin fue creado con Android en mente y eso se nota a la hora de programar.

Si todavía estás pensando qué lenguajes aprender este 2021 te lo vamos a poner muy fácil.

Qué es Kotlin

La historia de Kotlin data de 2016, cuando JetBrains, la famosa empresa creadora de varios de los IDE’s más usados como IntelliJ, WebStorm entre otros, publica la primera versión de este lenguaje de programación.

Se trata de un lenguaje de programación de tapado estático que puede correr sobre JVM, JavaScript y desde hace poco sin necesidad de ninguna de estas ya que paralelamente se está desarrollando en nativo con LLVM. Gracias a esto es totalmente interoperable con código Java lo que nos permite migrar de una forma gradual nuestros proyectos.

Para qué sirve Kotlin

Si has oído hablar de Kotlin seguramente sea en el desarrollo de Android, pues desde el año 2019 Google se ha declarado Kotlin First es decir, los nuevos desarrollos se harán para Kotlin y una vez terminados se implementarán en Java. Esto hizo que el sector móvil se diese cuenta de la importancia de dicho lenguaje y se centrara en él. Es por ello que actualmente más del 80% de las 1000 apps más populares para Android usan Kotlin.

Pero diferencia de lo que comúnmente se cree, Kotlin no solo sirve para el desarrollo de aplicaciones Android, sino que a lo largo de sus años de desarrollo ha ido abriéndose puertas en otros sectores.

Cada vez es más común ver el backend escrito en Kotlin ya que permite crear un código muy legible y expresivo mientras mantiene actualizado ya que corre a través de JVM. Son varios los frameworks disponibles que nos simplifican el trabajo, entre los que destacan:

  • Spring: Posiblemente uno de los frameworks más populares en el desarrollo del server-side y desde la versión 5.0 es compatible con Kotlin.

  • Ktor: Creado también por JetBrains lo que significa que su integración será completa. Se definen como un sistema que no añade restricciones sobre la tecnología que uses en tu proyecto, asíncrono (aprovechando las famosas corrutinas de Kotlin) y testable ya que nos proveerá de varias herramientas que nos simplificará el desarrollo de los test.

  • JavaLin: A diferencia de los anteriores destaca por su ligereza y simpleza, pero que no te engañen, más de una empresa grande lo utiliza. Entre ellas Microsoft, Uber y Revolut.

Características de Kotlin

Kotlin destaca por varias características que no solo simplifican la lectura del código sino el propio desarrollo de este. Es por ello que las ventajas de Kotlin respecto a Java a la hora de desarrollar aplicaciones móviles ha hecho que este lenguaje se haga cada vez más popular.

¿Null Pointer Exception? Adiós

Al trabajar con Java nos solemos encontrar con un error muy habitual, los nulos. Kotlin nos permite controlar esa incógnita a la hora de desarrollar nuestras aplicaciones (del mismo modo que lo hace Swift en iOS) dándonos la tranquilidad de que, si lo hacemos bien, nuestra app no va a fallar en ningún momento por esta situación. Además, dispone del operador Elvis para simplificar el trabajo.

Curva de aprendizaje

La simpleza de la sintaxis permite una curva de aprendizaje muy sencilla, ideal para aprender tu primer lenguaje de programación. Por ponerte un ejemplo muy habitual al trabajar con listas en Java, para acceder a la primera posición tendrás que buscar en la posición 0, en Kotlin simplemente llamarías a la función first().

¿Orientado a objetos? ¿Funcional? Mejor ambas

Aunque lo habitual en el desarrollo de aplicaciones móviles era un paradigma de programación orientada a objetos (o POO), Kotlin ha venido a romper los esquemas y demostrarnos que la POO puede trabajar de la mano de la programación funcional. La posibilidad de trabajar con lambdas en este entorno simplifica las tareas más comunes y tediosas en el desarrollo.

Estas son solo algunas de las características de Kotlin que lo hacen especialmente poderoso para trabajar en nuestras apps, aun así, Kotlin vs Java es un debate que se mantendrá al rojo vivo durante varios años más, pero si aún te estás preguntado si deberías seguir con Java o empezar en Kotlin te recomiendo que simplemente eches un ojo a LinkedIn para que veas por ti mismo que se demanda más a día hoy.

Corrutinas

Posiblemente una de las mayores ventajas que este lenguaje nos aposta. Las corrutinas optimizan la programación asíncrona simplificando el tedioso trabajo de las llamas de red y accesos a nuestras bases de datos entre otras. Con ello podrás olvidarte de librerías como rxJava.

Comunidad

La comunidad de Kotlin está muy enfocada en el open source y gracias a eso tenemos una ingente cantidad de documentación y código libre que nos ayudará a entender a fondo este lenguaje desde el comienzo, como por ejemplo este curso de Kotlin.

Kotlin Multiplatform mobile

Posiblemente no hayas escuchado hablar de esto ya que todavía está en alpha, pero Kotlin Multiplatform nace con la idea de compartir la misma lógica de negocio en iOS y Android con Kotlin. Este tema es muy interesante ya que podríamos tener en el futuro casi la misma app en ambas plataformas compartiendo todo el core del desarrollo. Y aunque pienses que todavía está muy verde ya que es alpha, grandes empresas como Netflix y Philips ya lo están usando.

Imagen 0 en Qué es Kotlin

Sintaxis de Kotlin

Ya hemos hablado de lo fantástico que es Kotlin y su sintaxis, pero ahora es el momento de demostrarlo en el papel.

Variables

En Kotlin podemos decidir si nuestra variable será como su propio nombre indica una variable o si por el contrario será constante, esto nos da el don de la inmutabilidad que nos librará de errores y además ahorrará memoria.

Si quisiéramos un valor constante utilizaríamos la palabra reservada val

val name = "Aris"

Si por el contrario queremos que sea variable la reemplazaríamos por var

var name = "Aris"

Si te fijas bien en los ejemplos anteriores verás que no he definido el tipo de variable ya que Kotlin es capaz de adivinar el tipo por el valor asignado. Aunque también podremos añadírselo nosotros mismos para forzar.

var name:String = "Aris"

Funciones

Podemos distinguir tres tipos distintos, básicas, con parámetros de salida o con parámetros de entrada.

La más básica sería utilizando la palabra reservada fun seguido del nombre de esta.

fun greetings(){ print("Hello!") }

Si quisiéramos que nos saludara con un nombre concreto crearíamos una función con variable de entrada.

fun greetings(name:String){ print("Hello! $name") }

Nuestra función puede recibir entre cero y N parámetros y lo concatenamos a nuestro saludo. A diferencia de Java podemos crear parámetros opcionales y gracias a ello tenemos la posibilidad de pasar el parámetro o no.

fun greetings(name:String = "Guest"){ print("Hello! $name") }

Si recibe el parámetro name contendrá dicho valor, sino usará el de por defecto.

Para terminar, te mostraré como devolver el saludo, es tan sencillo que solo debemos definir el tipo de valor que vamos a devolver y retornarlo.

fun greetings(name:String = "Guest"): String{ return "Hello! $name" }

Sencillo ¿Verdad? Pues lo podemos aún simplificar más ya que Kotlin nos permite dejar el código impoluto con cualidades como esta.

fun greetings(name:String = "Guest") = "Hello! $name"

Hemos pasado de tener una función de tres líneas a conseguir la optimización por excelencia y dejar un código limpio y sencillo.

Seguro que te has quedado con ganas de saber más sobre Kotlin así que te invito a seguir descubriendo las cualidades con este otro curso de Kotlin.

Funciones de extensión

Esta es otra de las novedades de Kotlin, este tipo tan singular de funciones nos permite extender de cualquier tipo de código para crear funciones exclusivas. Si ya desarrollas con Java sería como la función vitamina de las funciones estáticas.

Esto es realmente útil para las funciones repetitivas que debemos realizar por todo nuestro proyecto. Pongamos el ejemplo de Glide, posiblemente la librería más popular a día de hoy para cargar urls en imageViews. Normalmente tendríamos que ir en cada una de las clases donde lo queramos usar añadiendo

Glide.with(context) .load(myUrl) .into(myImageView)

Ahora solo tendríamos que definir una función que extienda de un imageView

fun ImageView.loadUrl(url:String){ Glide.with(this) .load(myUrl) .into(this) }

Además, podemos usar el propio componente para acceder a su contexto.

Ahora en cualquier sitio de nuestra app que queramos usar Glide solo tendremos que acceder al imagieView y tendrá la nueva función implementada.

myImageView.loadUrl(url)

Adiós Java

¿Te has quedado con ganas de más código óptimo? Pues déjame mostrarte lo que cambia al crear un POJO en Java y en Kotlin.

Este modelo de datos básico y necesario para cualquiera de nuestras aplicaciones móviles puede llegar a ser bastante tedioso ya que genera decenas de líneas de código innecesarias o boilerplate.

Es por ello que lo que en Java sería esto.

public class User implements java.io.Serializable {
   private String name;
   private int age;

   public User() {
      // Constructor
   }

   public String getName() {
     return nombre;
   }

   public void setName(String name) {
     name = name;
   }

   public int getAge) {
     return age;
   }

   public void setAge(int age) {
     Age = age;
   }
}

En Kotlin lo dejaríamos en una simple línea con las mismas cualidades que el código anterior.

data class User(val name:String, val age:Int)

Además, Android Studio está tan integrado con Kotlin que simplemente con pegar en el IDE un fragmento de código en Java nos dará la opción de convertirlo automáticamente en Kotlin.

¿Notas eso? Es la fantástica sensación de deshacerte del boilerplate, así que, si quieres ponerte manos a la obra, visita nuestro curso Crea tu primera aplicación en Android.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Kotlin vs Java

Kotlin vs Java

Lenguajes de Programación

29 de Enero de 2021

En esta comparativa Java vs Kotlin te explicamos las diferencias de estos dos lenguajes de programación, para que elijas cuál elegir para tus desarrollos.

Curso de Kotlin

Curso de Kotlin

curso

Con este curso aprenderás:

  • Aprenderás los conocimientos básicos que te permitirán iniciarte en Kotlin.
  • Estarás preparado para empezar a desarrollar aplicaciones Android desde cero.
  • Aprenderás a manejar todo tipo de datos mediante tu código.

Duración: 3 horas y 7 minutos

Curso de Programación en Kotlin para Android

Curso de Programación en Kotlin para Android

curso

Aprende a desarrollar aplicaciones para Android programando mediante Kotlin, el nuevo lenguaje de programación oficial de Android que te ahorrará tiempo en la creación de tus apps.

Duración: 6 horas y 43 minutos

Más de 300 empresas confían en nosotros

Oesia
Vass
Everis
Ayesa
Altran
Ibermatica
Atmira
GFI
Accenture
GMV
Concatel
Telefonica
Caser
Banco de España
kpmg
Mapfre
Randstad