Slide 1

Slide 1 text

Aprendiendo Kotlin Facundo Rodríguez Arceri @facundomr

Slide 2

Slide 2 text

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

Slide 25

Slide 25 text

¿Preguntas?

Slide 26

Slide 26 text

¡Muchas gracias!