Kotlin es un lenguaje de programación creado en 2011 que funciona con JVM (Máquina Virtual de Java) y se utiliza como lenguaje alternativo a Java en Android.
Google anunció en 2017 durante la conferencia de #IO17 que Kotlin sería uno de los lenguajes principales para el desarrollo de apps.
Orientando a la funcionalidad se centra en la claridad, seguridad y la interoperabilidad. Utiliza frameworks y librerías existentes de Java sin necesidad de crear capas de adaptación.
¿Utilizar VAL o VAR?
Se recomienda el uso de la keyword VAL para asegurar la inmutabilidad del código.
COMPROBACIONES DE NULIDADKotlin cuenta con numerosos mecanismos para evitar que podamos acceder a punteros que valgan null y, así, provocar numerosas NullPointerExceptions, uno de los mayores problemas de Java.
Ejemplo:
var cadena:String = "uno"
cadena = null // Error de compilación
Permitir que cadena valga null:
var cadena:String? = "uno"
cadena = null // Ahora SÍ
print(cadena)
Safe Calls
Kotlin cuenta con el ? (Safe Call Operator) para tener la seguridad de que la variable no vale null.
Ejemplo:
var cadena:String? = null
println(cadena?.length)
Elvis Operator
Utilizaremos el operador Elvis para usar un valor por defecto en el caso de que la variable sea null.
Ejemplo:
val l = b?.length ?: -1
filterNotNull
Kotlin cuenta con muchas utilidades que nos simplifican el trabajo en relación a los punteros a null.Si no utilizamos Int? no permitiría introducir ningún valor de null dentro de la lista.
Ejemplo:
val listaConNulos: List<Int?> = listOf(3, 5, null, null, 8)
val listaEnteros: List = listaConNulos.filterNotNull()
Arrays de tipo primitivoKotlin permite utilizar Array y sus métodos de factoría, o bien, permite usar IntArray, DoubleArray y ShortArray.
Ejemplos:
val x: IntArray = intArrayOf(1, 2, 3)
val x: IntArray = IntArray(3) { it + 1 }
En definitiva, el lenguaje de programación Kotlin se compila con Java ya que a nivel de funcionalidad ambos lenguajes son equivalentes.
Sin embargo aporta numerosas ventajas que hacen frente a muchos de los problemas que presenta Java, convirtiéndolo así, en el lenguaje principal de Android.