#androideando2017
Que es Kotlin?
Filosofía del Lenguaje
Pragmático: intenta simplificar nuestra tarea lo máximo posible. No escribir cosas innecesarias. Reducir el código.
Conciso: reducir al mínimo cantidad de caracteres. No usar ; (opcional), no escribir new al crear objetos, etc.
Seguro: mas seguro que Java ya que el compilador nos ayuda en mas cosas, como seguridad frente a nulos y sealed class entre otros. En varios casos Java nos dejaría ejecutar a pesar de que pueda ocurrir algún error.
Interoperable: podemos utilizar todo el código que ya tengamos en Java y agregar Kotlin, o viceversa.
Instalar Plugin Kotlin
En la versión 3.0 de Android Studio ya vendrá incluido.
File / Settings...
Instalar Plugin Kotlin
Buscar Kotlin Languajes, instalar y reiniciar
2
3
1
Configurar Kotlin
2
3
1
Configurar Kotlin
2
3
1
Que agrega?
Que agrega?
Convertir clase Java a Kotlin
Code / Convert Java File to Kotlin File
Variables
Son de tipo estático, con ventajas de lenguajes dinámicos: en la mayoría de los casos el compilador es capaz de inferir de que tipo es la variable que estamos utilizando y no necesitamos especificar el tipo, esto simplifica mucho el código.
No hay tipos básicos, son todos objetos. No genera problemas de rendimiento porque el compilador determina si se está usando como objeto o tipo básico y el bitcode generado será acorde al tipo determinado.
Como son objetos, no hay conversiones automáticas.
var: variable mutable, su valor puede cambiar.
val: variable inmutable, su valor puede ser asignado solo una vez dentro de la ejecución actual, similar a final.
Unit: objeto que reemplaza al void de Java
Variables
No hay conversión automática
Smart Cast: si comprobamos un tipo en una función , podemos utilizar esa variable con el tipo que hayamos comprobado, asi no hacemos el cast manualmente
Ejemplo
Ejemplo
String Tamplates: para mostrar variables dentro de un texto.
findViewById no es necesario, con android extensions + synthetic se accede directamente a los elementos del layout
toast y println: funciones de Anko
Cast al final
Expresion Body
Cuando una función devuelve una sola expresión, se pueden omitir las llaves y se especifica el cuerpo después de un símbolo =
alt + enter en función
Expresiones Lambdas
Representa una función anónima, reduce la cantidad de código necesaria para ejecutar ciertas tareas que son repetitivas (como escritura de listeners y callbacks).
Clases
Clases
Uso de Clases
Uso de Clases
Seguridad ante Nulos
Seguridad ante Nulos
Sin embargo...
Seguridad ante Nulos
Otras Optimizaciones sobre Java para profundizar:
Otras Optimizaciones
Links & Referencias
Kotlin and Android: https://developer.android.com/kotlin/index.html
Kotlin (Jetbrains): https://kotlinlang.org/
DevExperto de Antonio Leiva: https://devexperto.com/
Slide: https://slides.com/gdgneuquen
Bonus Track
Solo para GDG Neuquen:
Gentileza de DevExperto, de Antonio Leiva