Agenda
● Sobre el lenguaje
● Funciones
● Variables
● Nulabilidad
● Strings
● Condicionales
● Estructuras de repetición
● Clases y objetos
Slide 3
Slide 3 text
¡Arranquemos!
Slide 4
Slide 4 text
Sobre Kotlin
● Lenguaje de programación de propósito general.
● Orientado a Objetos + Programación Funcional.
● Open Source.
● Estáticamente tipado.
● Desarrollado por JetBrains.
● Kotlin Island != Island of Java.
● Corre sobre una JVM.
● Mismas convenciones que Java.
Slide 5
Slide 5 text
Características principales
● Moderno y expresivo.
● Seguro.
● Interoperable.
Slide 6
Slide 6 text
Lo básico
● Archivos .kt
● Uso de packages, como en Java.
● Puede declararse más de una clase por archivo.
● Funciones de alto nivel.
● No es necesario que las sentencias terminen en punto y coma.
Slide 7
Slide 7 text
Funciones
Slide 8
Slide 8 text
Funciones
● Pueden retornar un valor, o no (Unit).
● Los parámetros pueden indicarse por su nombre.
● Los parámetros pueden tener valores por default.
Slide 9
Slide 9 text
Variables
Slide 10
Slide 10 text
Variables
● Definen su tipo.
○ Explícitamente: Se indica.
○ Implícitamente: El compilador lo deduce.
● Definen si son:
○ Mutables (var)
○ Inmutables/Constantes (val)
Slide 11
Slide 11 text
Nulabilidad
Slide 12
Slide 12 text
Nulabilidad
● Característica que hace seguro al lenguaje.
● Para que una variable pueda tener el valor nulo, esto debe declararse sí o sí en su
tipo, utilizando el operador ?.
● Elvis operator.
Slide 13
Slide 13 text
Strings
Slide 14
Slide 14 text
Strings
● Son objetos inmutables, como en Java.
● Interpolación.
Slide 15
Slide 15 text
Condicionales
Slide 16
Slide 16 text
Condicionales
● if
● when
● Pueden ser usados como expresiones.
Slide 17
Slide 17 text
Estructuras de repetición
when (objeto) {
Slide 18
Slide 18 text
Estructuras de repetición
● while
● for
○ for-each
○ rangos
Slide 19
Slide 19 text
Clases y objetos
when (objeto) {
Slide 20
Slide 20 text
Clases y objetos
● Se pueden definir en una sola línea.
● Puede haber más de una por archivo.
● Pueden recibir parámetros en el constructor o no.
● Pueden heredar de una sola clase
○ Por default: Any
● Para poder extender una clase, esta debe ser marcada como open
Slide 21
Slide 21 text
Algunas magias más ✨
when (objeto) {
Slide 22
Slide 22 text
Magia ✨
● data class
● extension functions
● Implementación de singletons: object
● sealed classes
● enums
● Interfaces
● coroutines
Slide 23
Slide 23 text
Vamos terminando...
Slide 24
Slide 24 text
Links útiles
● Documentación - https://kotlinlang.org/docs/reference/basic-syntax.html
● Kotlin & Android - https://developer.android.com/kotlin
● Kotlin/Everywhere Buenos Aires -
https://www.youtube.com/watch?v=ySBP34IcRuc&list=PLCDIutLaQECNAam6Zf
jWkV67RuUIbYt14
● Motivos para convencer a tu jefe de usar Kotlin:
https://medium.com/@facundomr/six-reasons-to-convince-your-team-to-start-usi
ng-kotlin-for-android-4e47c2e36546
● Código de la charla:
https://gist.github.com/facundomr/8a6ef1602dc3ca8a504e44a2fe50a073