Slide 1

Slide 1 text

Kotlin Multiplatform Mobile en la Universidad

Slide 2

Slide 2 text

Sobre mí ● Ingeniero en Computación. ● Docente desde 2009. ● Fui inspirado por mis docentes. ● Desarrollador Android desde 2011. ● Ingresé a UNLAM en 2017.

Slide 3

Slide 3 text

La Universidad ● Universidad Nacional de La Matanza (UNLAM) ● Tecnicatura en Desarrollo de Aplicaciones Móviles. ● Primer docente de materias específicas de la orientación mobile. ● … todo por hacer.

Slide 4

Slide 4 text

El camino de los estudiantes ● Materias generales. ● Introducción a la programación. ● Programación Orientada a Objetos. ● Android Nativo (en más de una materia). ● Taller de Firebase. ● … ¿y luego? Kotlin Multiplatform Mobile

Slide 5

Slide 5 text

Kotlin Multiplatform Mobile ● ¿Por qué? ○ Buena experiencia con Kotlin. ○ Al alcance de los docentes. ○ Los alumnos no necesitan hardware específico. ○ Tendencia en la industria. ● ¿Cuándo? ○ En el tramo final de la carrera. ○ Se busca apuntalar el perfil del alumno. ● ¿Cómo? ○ Aprovechando conocimientos previos. ○ Foco en la arquitectura de las soluciones.

Slide 6

Slide 6 text

Desafíos de enseñar KMM ● Desarrollar en KMM… sólo para Android. ● Estabilidad del IDE y las librerías.

Slide 7

Slide 7 text

¿Qué significa multiplataforma? ● El enfoque es compartir lógica de negocio y datos. ● Las UI se desarrollan con alguno de los otros enfoques. ● Resultado: Menos repetición de código, la mejor experiencia en UI. ● Otros equipos pueden participar del desarrollo móvil. ● Desventaja: es la menos madura de las técnicas de desarrollo.

Slide 8

Slide 8 text

Temario de la materia ● Introducción a enfoques en desarrollo mobile. ● Kotlin Multiplatform Mobile. ● El lenguaje de programación Kotlin. ● Arquitectura de aplicaciones. ● Integración con APIs REST: Ktor. ● Trabajo asíncrono: Coroutines. ● Bases de datos: SQLDelight. ● Testing: kotlin.test. ● Introducción a iOS Nativo. ● Trabajo práctico integrador.

Slide 9

Slide 9 text

Trabajo práctico integrador ● Los alumnos reciben un proyecto Android desarrollado en forma nativa. ● Migrar el código a un proyecto KMM. ● Hacer código reutilizable. ○ Retrofit -> Ktor. ○ ViewModels de Android -> Objetos con lógica de negocio. ○ Modelo y entidades -> Al módulo compartido. ○ Testing con jUnit -> Tests con kotlin.test. https://github.com/fabio-negri/marvel-characters

Slide 10

Slide 10 text

● Escribimos un breve artículo donde liberamos nuestra referencias y las de todas las materias: https://bit.ly/aprender-kotlin Bibliografía de la materia

Slide 11

Slide 11 text

¡Veamos un poco!

Slide 12

Slide 12 text

Conclusiones ● Plan de estudios innovador. ● Entusiasmo del alumnado. ● Desarrollo del buen criterio de arquitectura. ● Estudio en profundidad de un lenguaje. ● Inclusión de tecnologías nuevas en una carrera corta.

Slide 13

Slide 13 text

Trabajo futuro ● Incluir Jetpack Compose en la materia cuando tenga una versión estable para iOS. ● Incluir KMM en lugar de sólo KMP. ● Incluir Kover, para medir code coverage en proyectos multiplataforma.

Slide 14

Slide 14 text

¿Preguntas?

Slide 15

Slide 15 text

¡Muchas gracias!