31

Porqué elegir Kotlin como lenguaje para desarrollar aplicaciones Android modernas

10187Puntos

hace 4 años

Curso de Kotlin para Android 2017
Curso de Kotlin para Android 2017

Curso de Kotlin para Android 2017

Aprende a desarrollar aplicaciones multiplataforma con Kotlin, el lenguaje desarrollado para la JVM y con apoyo oficial de Google para Android.

Kotlin es el lenguaje multiplataforma de Jetbrains con el que puedes desarrollar aplicaciones para móviles Android con la toda tranquilidad que puede darte Google. Kotlin tiene características muy interesantes que lo hacen uno de los lenguajes que debes aprender junto a Java si quieres desarrollar Android. Vamos a ver algunas de ellas.

Con Kotlin puedes desarrollar aplicaciones para móviles Android

En mayo de 2017 en el Google I/O se hizo oficial el soporte de primera clase a Kotlin. Esto no quiere decir que ahora Kotlin será el único lenguaje para desarrollo de aplicaciones móviles, de hecho, es mejor, Kotlin y Java interactúan perfectamente al 100% así que tienes la posibilidad de aprovechar las mejores características de un lenguaje moderno y potente sin necesidad de desechar las mejores características de Java.Screen Shot 2017-10-31 at 10.10.27 AM.png

Kotlin es 100% interoperable con Java

Kotlin opera sobre la JVM (Java Virtual Machine), es decir que con toda tranquilidad podemos trabajar con archivos que tengan las dos extensiones .kt para archivos de Kotlin y .java para archivos de Java. El IDE (el entorno de desarrollo) con el que estamos trabajando pasa cada uno de estos archivos por su compilador correspondiente, generando como resultado bytecodes es decir archivos que procesa la JVM o cualquier máquina que esté basada en máquina virtual, así que para la JVM es totalmente transparente el lenguaje con el que estás trabajando.

Screen Shot 2017-10-31 at 11.23.57 AM.png

Kotlin es conciso

Contrario a otros lenguajes que te ponen limitaciones a la hora de escribir tus programas y con los que necesitas tener varias decenas de líneas de código antes de poder ejecutar cualquier cosa, Kotlin está hecho para que, con muy poco código, puedas generar la misma funcionalidad, claro está, sin perder la legibilidad, comparado con Java es aproximadamente un 40% menos de código que necesitas escribir.

Uno de los ejemplos que a mí más me impactó es la forma de crear un POJO en Java y crear un Data class en Kotlin que viene siendo una versión más reducida, más amigable y más potente de un POJO. Dejo el código para que veas y me cuentes si quedaste como yo 😮

Código para una galleta en Kotlin:

data class Galleta(val sabor: String, val chispas: String)

Código para una galleta en Java:

publicclassGalletaJv{
    private String sabor;
    private String chispas;
    publicGalletaJv(String sabor, String chispas){
        this.sabor = sabor;
        this.chispas = chispas;
    }
    publicString getSabor(){
        return sabor;
    }
    publicvoidsetSabor(String sabor){
        this.sabor = sabor;
    }
    publicString getChispas(){
        return chispas;
    }
    publicvoidsetChispas(String chispas){
        this.chispas = chispas;
    }
    @OverridepublicString toString(){
        return"GalletaJv{" +
                "sabor='" + sabor + '\'' +
                ", chispas='" + chispas + '\'' +
                '}';
    }
    @Overridepublicbooleanequals(Object o){
        if (this == o) returntrue;
        if (o == null || getClass() != o.getClass()) returnfalse;
        GalletaJv galletaJv = (GalletaJv) o;
        if (sabor != null ? !sabor.equals(galletaJv.sabor) : galletaJv.sabor != null) returnfalse;
        return chispas != null ? chispas.equals(galletaJv.chispas) : galletaJv.chispas == null;
    }
    @OverridepublicinthashCode(){
        int result = sabor != null ? sabor.hashCode() : 0;
        result = 31 * result + (chispas != null ? chispas.hashCode() : 0);
        return result;
    }
    @OverrideprotectedObject clone()throws CloneNotSupportedException {
        returnsuper.clone();
    }
    @Overrideprotectedvoidfinalize()throws Throwable {
        super.finalize();
    }
}

😮 creo que esto es mas de 40%

Kotlin es NullSafety

npe.png

Y quién no se haya encontrado alguna vez con un NullPointerException que levante la mano.

Bueno pues parece que con Kotlin esta época ha pasado al olvido, el sistema de tipeado de Kotlin está orientado a prevenir que hagas referencias a objetos nulos.

De acuerdo con la documentación oficial hay varias formas de llegar a un NPE, veamos algunas:

  1. Llamándolo explícitamente para manejar la excepción throw NullPointerException();

  2. Cuándo código java externo lo causa

  3. Cuándo hay alguna inconsistencia relacionada con la inicialización

En Kotlin existen varias formas en las que podemos combatir este error, la primera es validando si la variable es nula y manejarlo con condicionales.

Por ejemplo:

val l = if (b != null) b.length else -1

Y manejarlo así:

if (b != null && b.length > 0) { print("String of length ${b.length}") } else { print("Empty string") }

Esta forma realmente es como lo haríamos normalmente, ahora veamos que es lo que ofrece Kotlin


Llamadas seguras en Kotlin

La segunda forma de evitar el NPE es haciendo uso del operador?., esto se conoce como llamada segura.

b?.length retorna el tamaño de b si b no es nulo y null en otro caso.

Elvis operator

Pero ¿qué pasa cuando tenemos una referencia que puede ser nula? Para estos casos es correcto usar el Elvis operator?:.

Por ejemplo:

Val l: b?.length ?: -1
Si la expresión b?.length retorna un valor nulo el elvis operator ?: va a retornar -1 en caso contrario retorna lo que traiga b?.length.

Kotlin es un lenguaje moderno, fácil de escribir y fácil de aprender. Tiene muchas caraterísticas que lo hacen una opción excelente y en Platzi tenemos un curso especialmente construido para que aprendas desde cero, en serio, no necesitas saber Java para empezar. Empieza tu camino con el lenguaje del futuro.

Curso de Kotlin para Android 2017
Curso de Kotlin para Android 2017

Curso de Kotlin para Android 2017

Aprende a desarrollar aplicaciones multiplataforma con Kotlin, el lenguaje desarrollado para la JVM y con apoyo oficial de Google para Android.
Yesica Lizeth
Yesica Lizeth
yesikita

10187Puntos

hace 4 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1
38937Puntos

Me ha gustado hasta ahora, es muy “divertido if you know…” xP.
Pero ya enserio si es más conciso que Java, y la alternativa de Ktor para el servidor es muy interesante también, esos de JetBrain están con todo!

0
10187Puntos
4 años

Gente de la industria desarrollando para gente de la industria, hacen lo que se necesita, ojala muy pronto empiecen a haber mas y mas proyectos en Kotlin en las empresas.

1

Koltin permite importar librerias jar o escritas en JAVA?

1
9839Puntos

KOTLIN es lo nuevo para Android, pero seria importante aprender JAVA ?

3
22846Puntos
4 años

Es muy importante aprender Java 😉

1
9839Puntos
4 años

Gracias por tu respuesta @anncode , empezaré el curso de java pronto…

1
3772Puntos
4 años

Solo aprende Kotlin, no le hagas caso a @anncode 😉 jajaja la verdad es que si quieres explotar todo el potencial de Kotlin y Android es de gran ayuda tener conocimientos sólidos de Java 😃

0
10187Puntos
4 años

Hey hey hey calma!, si es bueno tener conocimientos de Java pero no es indispensable, mas que todo lo que se necesita es que sepas un poquito de programación.

0
3258Puntos

Yo buscando el código para una galleta en Kotlin y compararlo con el de Java, no me había dado cuenta que era sólo una línea jajajaja.

PD: creo que si supera el 40%

0
10187Puntos
4 años

jajajaja 😄

0
14931Puntos

Acabo de terminar Programación Básica, ¿puedo comenzar con Kotlin o me recomiendan hacer una parada en otros cursos antes? Gracias de antemano!

1
96355Puntos
4 años

Puedes empezar con ese curso sin problemas

0
10187Puntos
4 años

Ya puedes tomar el curso.

0
284Puntos

Wow 😮 es mas sencillo … me quede helado, es la primera vez que escucho de este lenguaje y sorprende 😃

0
10187Puntos
4 años

Si es un lenguaje con muchas ventajas, vas a tomar el curso?

0
5256Puntos

Este articulo hizo que me dieran ganas de aprender kotlin ya! c:

0
10187Puntos
4 años

Jejeje entra yaa esta buenísimo el curso 😃

0
9730Puntos

Muy buen post!

Está genial 😃

0
10187Puntos
4 años

Gracias! El curso esta mejor 😄