Slide 1

Slide 1 text

Kotlin Multiplatform Mobile Facundo Rodríguez Arceri Android Engineer

Slide 2

Slide 2 text

Agenda ● Enfoques de desarrollo ● ¿Cómo elegir uno? ● Kotlin Multiplatform Mobile ● Herramientas ● Demo de código ● Librerías ● ¿Dónde aprender?

Slide 3

Slide 3 text

Enfoques de desarrollo mobile

Slide 4

Slide 4 text

Enfoques ● Nativo ● Híbrido ● Cross-Platform ● Multiplatform

Slide 5

Slide 5 text

Enfoque Nativo ● Mal llamado “nativo”. ● El método más popular. ● Es el que da como resultado mayor calidad, cuando los SDK son utilizados apropiadamente. ● Actualizaciones, documentación y soporte siempre disponibles. ● Soporte instantáneo para hacer uso de nuevos features de los sistemas operativos. ● Desventaja: No se comparte código entre plataformas. Duplicidad. ● Ejemplos: Android, iOS.

Slide 6

Slide 6 text

Enfoque Híbrido ● Combina técnicas de desarrollo nativo y programación web. ● Uso de WebViews. ● Javascript, HTML, CSS. ● Se puede acceder al hardware del dispositivo (cámara, gps, etc). ● Desventaja: rendimiento. ● Ejemplos: Córdova, Ionic.

Slide 7

Slide 7 text

Enfoque Cross-Platform ● “Programa una vez, ejecuta en todos lados”. ● Puede aplicar no sólo a apps mobile. ● Son tendencia en el mercado. ● Es posible abrir el proyecto en forma nativa e implementar algunas cosas usando directamente los SDK. ● Menor costo de desarrollo. ● Desventaja: El soporte para nuevos features tarda en llegar. ● Ejemplos: React Native, Flutter, Xamarin, Unity3D.

Slide 8

Slide 8 text

Enfoque Multiplatform ● En enfoque es compartir la lógica de negocio y datos. ● Las interfaces gráficas se desarrollan con alguno de los otros enfoques. ● Ventaja: lo mejor de los dos mundos. Poca repetición de código, buen rendimiento de UI. ● Otros equipos pueden participar del desarrollo mobile. ● Desventaja: es el menos maduro de los enfoques. ● Ej: Kotlin Multiplatform Mobile

Slide 9

Slide 9 text

¿Cómo elegir un enfoque?

Slide 10

Slide 10 text

Depende de… ● Necesidad de negocio. ● Mercado al que se apunta. ● Conocimiento previo del equipo. ● Escasez de recursos. ● Necesidad técnica real.

Slide 11

Slide 11 text

Kotlin Multiplatform Mobile

Slide 12

Slide 12 text

KMM ● Parte del proyecto Kotlin Multiplatform. ● Actualmente soporta iOS y Kotlin. ● Genera una librería que se importa en proyectos Android (Java/Kotlin) o iOS (Swift/Objective-C)

Slide 13

Slide 13 text

Herramientas

Slide 14

Slide 14 text

Herramientas Android Studio Plugin de Kotlin Multiplatform Mobile XCode

Slide 15

Slide 15 text

Estructura del proyecto

Slide 16

Slide 16 text

Demo

Slide 17

Slide 17 text

Librerías

Slide 18

Slide 18 text

Librerías ● Ktor ● SQLDelight ● Coroutines ● Koin ● MockK

Slide 19

Slide 19 text

¿Dónde aprender?

Slide 20

Slide 20 text

https://bit.ly/aprender-kotlin

Slide 21

Slide 21 text

¿Preguntas?

Slide 22

Slide 22 text

¡Muchas gracias!