
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.

12 horas distribuidas en 4 sesiones de 3 horas cada una.
Desarrollo progresivo de CodeZen, una aplicación Pomodoro real con componentes reutilizables.
Adquirir competencias sólidas en Kotlin mientras se aprenden sus ventajas estructurales y expresivas frente a Java.
Comprenderás la sintaxis moderna y las características clave que hacen de Kotlin un lenguaje potente y conciso.
Aplicarás los conceptos de Kotlin en el desarrollo de aplicaciones Android modernas y eficientes.
Aprenderás a integrar Kotlin en proyectos Java existentes, aprovechando la interoperabilidad entre ambos lenguajes.
Desarrollarás CodeZen, una aplicación Pomodoro funcional utilizando exclusivamente 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
hito-12-integracion-finalCada tema se vincula a un hito funcional, permitiendo visualizar el avance concreto.
Conceptos aplicados directamente a funcionalidades reales.
Validación de cada hito mediante pruebas de funcionamiento real.
Culminación con una interfaz integrada lista para producción.
Componentes independientes y reutilizables.
Jornadas prácticas de aprendizaje intensivo.
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.
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.
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.
Curso de Introducción a Kotlin para Desarrollares Java