Slide 1

Slide 1 text

GDG Ramos Mejía Kotlin ❤ Android Facundo Rodríguez Arceri @facundomr

Slide 2

Slide 2 text

GDG Ramos Mejía ● Introducción a Kotlin ● ¿Tan importante es Kotlin en Android? ● Kotlin en 2020 ● ¿Qué se viene? ¡Hola! ¿Qué hacemos acá?

Slide 3

Slide 3 text

GDG Ramos Mejía ¿Por qué es importante Kotlin? La historia te dice quién sos ● Java ● Todo tiene sus pros y cons… ○ JVM -> Upgrade

Slide 4

Slide 4 text

GDG Ramos Mejía Nuevo estándar

Slide 5

Slide 5 text

GDG Ramos Mejía Features de Kotlin Generando nuevas costumbres ● lateinit var ● Delegates: by lazy ● Evitar usar tipos que soporten null ● unwrapping !! ● high order functions ○ let, also, apply, with, run

Slide 6

Slide 6 text

GDG Ramos Mejía Features de Kotlin Generando nuevas costumbres ● Clases ○ data classes ○ sealed classes ● extension functions (Android KTX) ● smart cast

Slide 7

Slide 7 text

GDG Ramos Mejía Features de Kotlin Generando nuevas costumbres ● Colecciones ○ filter, map, first, last ○ Pair, Triple... ○ listOf(), mapOf(), arrayOf()... bundleOf()

Slide 8

Slide 8 text

GDG Ramos Mejía Jubilando APIs (... y libs!)

Slide 9

Slide 9 text

GDG Ramos Mejía Ni nos vimos Reemplazos modernos… ¡y esperados! ● Kotlin Android Extensions ○ synthetic imports ● Coroutines & Flow ● Jetpack: Benchmark, Paging 3… ● Koin ● MockK

Slide 10

Slide 10 text

GDG Ramos Mejía MockK // Mockito val car = Mockito.mock(Car::class.java) Mockito.`when`(car.drive(Direction.NORTH)).thenReturn(Outcome.OK) // MockK val car = mockk() every { car.drive(Direction.NORTH) } returns Outcome.OK

Slide 11

Slide 11 text

GDG Ramos Mejía ¿Y ahora?

Slide 12

Slide 12 text

GDG Ramos Mejía Lo que viene Próximamente ● Nullability annotations ○ @Nullable / @NonNull -> ⛔ ○ @RecentlyNullable / @RecentlyNonNull -> ⚠ ● Kotlin-first ● Jetpack Compose

Slide 13

Slide 13 text

GDG Ramos Mejía Kotlin 1.4 ● Single Abstract Method (SAM convertions) ○ Antes: sólo en Java ○ ¿Por qué no en Kotlin? ‍♂

Slide 14

Slide 14 text

GDG Ramos Mejía Kotlin 1.4 val asistentes = listOf( "Yury", "Facundo", "Luciano", "Sebastián", ) Trailling commas

Slide 15

Slide 15 text

GDG Ramos Mejía Kotlin 1.4 ● Mixed named and positional arguments

Slide 16

Slide 16 text

GDG Ramos Mejía ¿Preguntas?

Slide 17

Slide 17 text

GDG Ramos Mejía ¡Muchas gracias!