Curso de Introducción a Kotlin para Desarrollares Java

Transición efectiva de Java a Kotlin: Curso práctico para desarrolladores

Domina Kotlin a través del desarrollo de CodeZen, una aplicación Pomodoro (Reloj de productividad) con sonidos para fomentar la concentración y el trabajo productivo. Este curso está diseñado para desarrolladores con experiencia en Java que buscan aprender Kotlin de manera práctica, aprovechando su conocimiento previo para desarrollar aplicaciones modernas y eficientes.

Estructura del Curso

Duración

12 horas distribuidas en 4 sesiones de 3 horas cada una.

Enfoque práctico

Desarrollo progresivo de CodeZen, una aplicación Pomodoro real con componentes reutilizables.

Objetivo

Adquirir competencias sólidas en Kotlin mientras se aprenden sus ventajas estructurales y expresivas frente a Java.

Objetivos

Sintaxis y características de Kotlin

Comprenderás la sintaxis moderna y las características clave que hacen de Kotlin un lenguaje potente y conciso.

Desarrollo Android con Kotlin

Aplicarás los conceptos de Kotlin en el desarrollo de aplicaciones Android modernas y eficientes.

Integración con Java

Aprenderás a integrar Kotlin en proyectos Java existentes, aprovechando la interoperabilidad entre ambos lenguajes.

Aplicación completa en Kotlin

Desarrollarás CodeZen, una aplicación Pomodoro funcional utilizando exclusivamente Kotlin.

Temario

Módulo 1: Fundamentos de Kotlin

Tema técnico: Variables, tipos, inferencia, val vs var, estructuras de control

Hito del proyecto: hito-01-kotlin-basics

Enfoque práctico y beneficios pedagógicos: Se introduce la base del proyecto: definición del temporizador, estado de la sesión, selección de sonidos. El alumno ve cómo Kotlin reduce el código repetitivo respecto a Java.

Módulo 2: Funciones y Clases

Tema técnico: Funciones top-level, parámetros con valores por defecto, clases, init, propiedades

Hito del proyecto: hito-02-funciones-y-clases

Enfoque práctico y beneficios pedagógicos: Se encapsula el temporizador y la lógica del sonido en clases. Se aprende a modularizar código usando funciones puras. Permite al alumno adoptar un enfoque limpio desde el inicio.

Módulo 3: Lambdas y Funciones Anónimas

Tema técnico: Uso en callbacks, colecciones, funciones como parámetros

Hito del proyecto: hito-03-lambdas

Enfoque práctico y beneficios pedagógicos: Se implementan acciones al finalizar sesiones Pomodoro mediante callbacks. Se introduce la expresividad de Kotlin en programación funcional. Permite al alumno desacoplar eventos y lógica.

Módulo 4: El Sistema de Tipos en Kotlin

Tema técnico: Null safety, Any, Unit, Nothing, when exhaustivo

Hito del proyecto: hito-04-null-safety-y-estados

Enfoque práctico y beneficios pedagógicos: Se refactoriza el control de estado del temporizador con null safety y estructuras when. El alumno aprende a prevenir errores comunes de Java, como NullPointerException.

Módulo 5: Operadores, Convenciones y Funciones de Orden Superior

Tema técnico: Sobrecarga de +, equals, toString, let, apply, run, inline, convenciones de Kotlin

Hito del proyecto: hito-05-funciones-y-operadores

Enfoque práctico y beneficios pedagógicos: Se sobrecarga + para combinar sesiones y toString para mostrar el resumen. Expresividad y fluidez idiomática.

Módulo 6: Generics

Tema técnico: Tipos genéricos, clases y funciones parametrizadas

Hito del proyecto: hito-06-genericos

Enfoque práctico y beneficios pedagógicos: Se implementa un repositorio de objetos genérico (por ejemplo, para sonidos o notificaciones). El alumno aprende a escribir código reusable, claro y seguro.

Módulo 7: Anotaciones y Reflexión

Tema técnico: Uso de @Retention, @Target, introspección con KClass y ::class

Hito del proyecto: hito-07-anotaciones-y-reflexion

Enfoque práctico y beneficios pedagógicos: Se marcan ciertos sonidos como "recomendados" y se listan dinámicamente. El alumno ve cómo Kotlin permite metaprogramación ligera de forma segura.

Módulo 8: Colecciones y Secuencias

Tema técnico: map, filter, groupBy, Sequence

Hito del proyecto: hito-08-colecciones

Enfoque práctico y beneficios pedagógicos: Se genera un historial de sesiones productivas, agrupado por día u hora. Se evidencia el poder expresivo de Kotlin frente a los streams de Java.

Módulo 9: Tipos Básicos y UI Completa

Tema técnico: Manipulación de texto, arrays, interpolación, expresiones regulares

Hito del proyecto: hito-09-ui-completa

Enfoque práctico y beneficios pedagógicos: Se presenta la interfaz visual completa conectada a la lógica existente. El alumno ve cómo su trabajo funcional se integra en un producto final de aspecto profesional.

Módulo 10: Corrutinas en Kotlin

Tema técnico: suspend, launch, async, delay, CoroutineScope

Hito de proyecto: hito-10-corrutinas

Enfoque práctico y beneficios pedagógicos: Concurrencia moderna sin Future ni callbacks. Ejecutar el ciclo Pomodoro de forma no bloqueante.

Módulo 11: Testing en Kotlin

Tema técnico: JUnit5 (@Test, @BeforeEach), aserciones, testeo de lógica

Hito del proyecto: hito-11-tests

Enfoque práctico y beneficios pedagógicos: Validación de componentes del temporizador y lógica de negocio.

Opcional (según ritmo a decidir por el instructor): Introducción a Kotest o MockK.

Módulo 12: Cierre del Proyecto y Revisión Final

  • Tema técnico: Integración de todos los módulos, validación funcional, revisión de código idiomático
  • Hito: hito-12-integracion-final
  • Beneficio: El alumno ve cómo se ensamblan todas las piezas en una app coherente y moderna.

Enfoque Práctico y Beneficios Pedagógicos

Progresión por hitos

Cada tema se vincula a un hito funcional, permitiendo visualizar el avance concreto.

Aprendizaje contextual

Conceptos aplicados directamente a funcionalidades reales.

Evaluación funcional

Validación de cada hito mediante pruebas de funcionamiento real.

UI profesional

Culminación con una interfaz integrada lista para producción.

Proyecto Final: CodeZen

12

Módulos

Componentes independientes y reutilizables.

4

Sesiones

Jornadas prácticas de aprendizaje intensivo.

1

Aplicación completa

Temporizador Pomodoro funcional para gestión del tiempo

Al finalizar el curso, tendrás un proyecto open source completamente funcional para tu uso personal, extensible con funcionalidades como sincronización en la nube, estadísticas e integración con IDEs.

¿Por Qué Elegir Este Curso?

Este curso ofrece una transición fluida desde Java a Kotlin mediante un enfoque práctico y modular. Aprenderás desarrollando una aplicación real que podrás seguir mejorando tras finalizar el curso.

Anexo: propuesta en cuatro días (3h/día)

🗓️ Día 1 (3h) – Fundamentos y Estructura del Código

🗓️ Día 2 (3h) – Idiomatic Kotlin y Generics

🗓️ Día 3 (3h) – UI, Concurrencia y Testing

🗓️ Día 4 (3h) – Integración Final, Repaso y Proyecto

Los tiempos son orientativos. El instructor podrá adaptar el ritmo y los contenidos según las necesidades del grupo. El Día 4 podrá usarse para repaso o introducción a herramientas adicionales (Ktor, Kotest, etc.), a criterio del instructor.