. ¿Qué es Kotlin Multiplatform?
. Creando un proyecto desde cero
Slide 5
Slide 5 text
. ¿Qué es Kotlin Multiplatform?
. Creando un proyecto desde cero
. Ecosistema de Librerías
Slide 6
Slide 6 text
. ¿Qué es Kotlin Multiplatform?
. Creando un proyecto desde cero
. Ecosistema de Librerías
. Demo y Conclusiones
Slide 7
Slide 7 text
Permite escribir código en Kotlin para múltiples plataformas
Cada target puede tener su propia implementación
Decidimos hasta dónde vamos a compa ir el código
// Common
expect class PlatformConfiguration {
fun getPlatformName(): String
}
// Android
actual class PlatformConfiguration {
actual fun getPlatformName(): String = "Android"
}
// iOS
actual class PlatformConfiguration {
actual fun getPlatformName(): String = "iOS"
}
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
UI
Slide 16
Slide 16 text
UI
Architectura de UI
Slide 17
Slide 17 text
UI
Architectura de UI
Networking
Slide 18
Slide 18 text
UI
Architectura de UI
Networking
Serialización
Slide 19
Slide 19 text
Asincronía
Slide 20
Slide 20 text
Asincronía
Carga de imágenes
Slide 21
Slide 21 text
Asincronía
Carga de imágenes
Persistencia local
Slide 22
Slide 22 text
Asincronía
Carga de imágenes
Persistencia local
Inyección de dependencias
Slide 23
Slide 23 text
Asincronía
Carga de imágenes
Persistencia local
Inyección de dependencias
Testing
Slide 24
Slide 24 text
:
Slide 25
Slide 25 text
:
Compose: UI declarativa para Android, que ahora también sopo a
Desktop, iOS (beta) y Web (alpha)
Slide 26
Slide 26 text
:
Compose: UI declarativa para Android, que ahora también sopo a
Desktop, iOS (beta) y Web (alpha)
UIs nativas: Podemos compa ir lógica de aplicación, e implementar
vistas nativas
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
:
Slide 29
Slide 29 text
:
ViewModels de Architecture Components:
Patrón MVVM
Mismo código que se usa en Android
Navegación con Navigation Compose
Slide 30
Slide 30 text
:
ViewModels de Architecture Components:
Patrón MVVM
Mismo código que se usa en Android
Navegación con Navigation Compose
Voyager:
Navegación para Compose
También ofrece ViewModels
Slide 31
Slide 31 text
:
ViewModels de Architecture Components:
Voyager:
Decompose:
Patrón BLoC
Funciona con UIs nativas
Slide 32
Slide 32 text
:
Slide 33
Slide 33 text
:
Ktor Client:
Cliente HTTP
Sopo a corrutinas
Slide 34
Slide 34 text
:
Ktor Client:
Cliente HTTP
Sopo a corrutinas
Kto it:
Wrapper sobre ktor
Similar a Retro t para Android
Slide 35
Slide 35 text
:
Slide 36
Slide 36 text
:
Kotlinx Serialization:
Serialización/deserialización de datos
Sopo a distintos formatos
Se integra con Ktor
Slide 37
Slide 37 text
:
Slide 38
Slide 38 text
:
Corrutinas:
Sopo e para programación asíncrona
Todo el API es multiplataforma
Flows para manejar eventos asíncronos
Slide 39
Slide 39 text
:
Slide 40
Slide 40 text
:
Coil:
Carga de imágenes en CMP
Sopo e para Web
Multiplataforma
Slide 41
Slide 41 text
:
Coil:
Carga de imágenes en CMP
Sopo e para Web
Multiplataforma
Kamel:
Alternativa a Coil
La primera para CMP
Slide 42
Slide 42 text
:
Slide 43
Slide 43 text
:
SQLDelight:
ORM para SQLite
Más popular
Slide 44
Slide 44 text
:
SQLDelight:
ORM para SQLite
Más popular
Room:
La de Android, ahora para KMP
Sopo e en alpha (2.7.0-alphaXX)
Slide 45
Slide 45 text
:
SQLDelight:
ORM para SQLite
Más popular
Room:
La de Android, ahora para KMP
Sopo e en alpha (2.7.0-alphaXX)
Realm:
Solución NoSQL
Slide 46
Slide 46 text
:
DataStore:
Almacenamiento de preferencias
Adaptado de Android
Slide 47
Slide 47 text
:
DataStore:
Almacenamiento de preferencias
Adaptado de Android
KStore:
Almacenamiento en cheros JSON
Sopo e para WASM
Slide 48
Slide 48 text
:
Slide 49
Slide 49 text
:
Koin:
Se está convi iendo en estándar
Multiplataforma
Muy fácil de usar
Slide 50
Slide 50 text
:
Koin:
Se está convi iendo en estándar
Multiplataforma
Muy fácil de usar
Kodein:
Alternativa a Koin
API muy similar
Slide 51
Slide 51 text
:
Slide 52
Slide 52 text
:
kotlinx.text:
Desarrollar tests una vez
Reutilizar en todas las plataformas
Slide 53
Slide 53 text
:
kotlinx.text:
Desarrollar tests una vez
Reutilizar en todas las plataformas
Kotest:
Framework de testing
Librería propia de Asse ions
Prope y testing
Slide 54
Slide 54 text
:
kotlinx.text:
Desarrollar tests una vez
Reutilizar en todas las plataformas
Kotest:
Framework de testing
Librería propia de Asse ions
Prope y testing
Mokkery:
Mocking framework
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
h ps://devexpe .io
@devexpe _io
@devexpe _io
@antonioleiva.com