Kotlin Lab

Aprender / Recursos ordenados

Recursos ordenados

No necesitas todos. Necesitas uno por fase y volver al código. Esta lista está ordenada por utilidad real para esta ruta.

Regla de oro

Si un recurso no te hace escribir código en 20 minutos, ciérralo. Los recursos son herramientas, no trofeos.

Fase 1 — Kotlin base

  1. Kotlin Docs — https://kotlinlang.org/docs/home.html

    La referencia oficial. Empieza por “Basic syntax”, “Idioms”, “Classes” y “Null safety”.

  2. Kotlin Koans — https://play.kotlinlang.org/koans/overview

    Ejercicios cortos en el navegador. Perfectos para los primeros días.

  3. Kotlin Playground — https://play.kotlinlang.org/

    Para probar un snippet sin crear un proyecto.

  4. Kotlin coding conventions — https://kotlinlang.org/docs/coding-conventions.html

    Léelo una vez y vuelve cuando un nombre o una indentación te chirríen.

  5. Exercism Kotlin — https://exercism.org/tracks/kotlin

    Katas con mentoría. Úsalo si quieres práctica extra fuera del lab.

  6. Advent of Code — https://adventofcode.com/

    Para practicar colecciones y parsing cuando ya domines el nivel 2. No empieces por aquí.

Fase 2 — Kotlin avanzado

  1. Kotlin Docs: Generics — https://kotlinlang.org/docs/generics.html

    Lee out, in y “star projections” después de hacer el nivel 4.

  2. Kotlin Docs: Inline functions — https://kotlinlang.org/docs/inline-functions.html

    Para entender inline y reified sin magia.

  3. Kotlin Docs: Delegation — https://kotlinlang.org/docs/delegation.html

    Para el nivel 5 y para leer código de librerías.

  4. Kotlin Docs: Scope functions — https://kotlinlang.org/docs/scope-functions.html

    Léelo, pero no abuses. Un if claro gana a un let ingenioso.

  5. Effective Kotlin — Marcin Moskała

    Libro de idioms y decisiones. No es para el día 1; es para la semana 5.

  6. Kotlin in Action — Dmitry Jemerov y Svetlana Isakova

    Buen libro de fundamentos y Java interop. Útil si vienes de un lenguaje estático.

Fase 3 — Coroutines y Flow

  1. Kotlin Coroutines Guide — https://kotlinlang.org/docs/coroutines-guide.html

    La guía oficial. Lee en orden: basics, cancellation, composition, context, exceptions.

  2. Kotlin Flow — https://kotlinlang.org/docs/flow.html

    La referencia de Flow. Presta atención a cold vs hot, stateIn y flatMapLatest.

  3. Testing coroutines — https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/

    runTest, StandardTestDispatcher, advanceUntilIdle. También puedes leer el README del módulo: https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-test/README.md

  4. Turbine — https://github.com/cashapp/turbine

    Para testear Flow de forma legible.

  5. Kotlin Coroutines: Deep Dive — Marcin Moskała

    Libro avanzado. Úsalo cuando ya hayas escrito coroutines y quieras entender el porqué.

Fase 4 — Android y Compose

  1. Android Basics with Compose — https://developer.android.com/courses/android-basics-compose/course

    Curso oficial. Salta lo que ya sepas; haz los codelabs.

  2. Compose tutorial — https://developer.android.com/develop/ui/compose/tutorial

    Para la primera pantalla.

  3. Compose state — https://developer.android.com/develop/ui/compose/state

    State hoisting, remember, rememberSaveable. Léelo antes de tocar Kontor.

  4. Compose testing — https://developer.android.com/develop/ui/compose/testing

    Para tests de UI y semantics.

  5. Now in Android — https://github.com/android/nowinandroid

    App de referencia con arquitectura, Compose, Hilt, Room y tests. No la copies entera; roba ideas.

  6. Android architecture guide — https://developer.android.com/topic/architecture

    Para entender capas, UDF y ViewModel.

  7. Compose performance — https://developer.android.com/develop/ui/compose/performance

    Cuando ya tengas pantallas y quieras evitar recomposiciones innecesarias.

Fase 5 — Datos, red y DI

  1. Room — https://developer.android.com/training/data-storage/room

    Entidades, DAOs, relaciones, migraciones y tests.

  2. Hilt — https://developer.android.com/training/dependency-injection/hilt-android

    @Inject, @Module, @Provides, scopes y tests.

  3. Retrofit — https://github.com/square/retrofit

    Para APIs HTTP. Aprende a modelar errores, no solo el 200.

  4. OkHttp — https://github.com/square/okhttp

    Interceptors, timeouts y logging. Retrofit se apoya en OkHttp.

  5. kotlinx.serialization — https://kotlinlang.org/docs/serialization.html

    Para DTOs y JSON. Alternativa a Gson/Moshi.

  6. DataStore — https://developer.android.com/topic/libraries/architecture/datastore

    Para preferencias y estado pequeño.

Fase 6 — KMP y backend

  1. Kotlin Multiplatform — https://kotlinlang.org/docs/multiplatform.html

    Empieza por compartir dominio, no UI.

  2. Ktor — https://ktor.io/docs/

    Servidor y cliente. Para el proyecto 5.

  3. Ktor testing — https://ktor.io/docs/server-testing.html

    testApplication para tests de endpoints.

  4. SQLDelight — https://sqldelight.github.io/sqldelight/

    Persistencia multiplataforma. Solo si el proyecto 4 lo pide.

  5. Kotlin Exposed — https://jetbrains.github.io/Exposed/

    SQL idiomático para JVM. Opcional.

Libros, en orden

LibroCuándoPara qué
Kotlin in ActionSemanas 1–4Fundamentos y Java interop
Effective KotlinSemanas 5–8Idioms, diseño y rendimiento
Kotlin Coroutines: Deep DiveSemanas 7–10Concurrencia seria
Android Programming: The Big Nerd Ranch GuideSemanas 9–12Android clásico si te falta base
Real-World Android by TutorialsSemanas 12–14Arquitectura y features

No compres los cinco el primer día. Un libro leído y aplicado vale más que una estantería.

Newsletters y comunidad

Úsalas para descubrir, no para sustituir la práctica.

Lo que puedes ignorar de momento

  • Compiler plugins y KSP avanzado.

  • Arrow y programación funcional pura.

  • KMP con UI compartida.

  • Hilt multi-módulo complejo.

  • Benchmarks y baseline profiles.

  • GraphQL.

  • Arquitecturas hexagonales de 14 capas.

No porque sean malos, sino porque no toca. Aprende a resolver problemas reales primero.

Recursos locales de este proyecto

Rutas desde la raíz de kotlin-lab:

Fuente: docs/RESOURCES.md