Ruta Android Developer Jr: aprende gratis desde cero en 6 semanas
De cero a resolver tickets sencillos en un equipo real, con Kotlin y Jetpack Compose. Con videos gratis en español, explicaciones en palabras simples, retos prácticos, cuestionarios y revisión de un docente.
- Nivel: Principiante
- 6 semanas
- 53 retos
- 30 videos gratis
- 48 preguntas
- Certificado al terminar
El contenido de las rutas está en español.
Temario semana a semana
Semana 1 · Kotlin + Git
Esta semana aprendes Kotlin, el idioma en el que se escriben las apps de Android, y Git, una herramienta que guarda cada versión de tu trabajo. Piensa en Kotlin como las reglas de una receta: ingredientes (datos) y pasos (instrucciones) que el teléfono sigue al pie de la letra. Git es como las partidas guardadas de un videojuego: si algo sale mal, vuelves a un punto anterior sin perder nada. Empieza con pasos pequeños: cada programa que corre es un logro.
Mini ejemplo: val saldo = 100 es una caja con etiqueta que no se reemplaza; si luego escribes saldo = 50, Kotlin te frena antes de que la app corra.
Error típico de principiante: poner !! para que el compilador se calle. Si el dato es null, la app se cierra; mejor usa ?. o ?:.
Temas de la semana 1
- Variables (
val/var), tipos, null safety (?,?.,?:,!!) - Funciones, parámetros por defecto, funciones de extensión
- Clases,
data class,enum class,sealed class,object - Colecciones:
List,Map,filter,map,groupBy,sortedBy,sumOf - Lambdas y funciones de orden superior
when,ifcomo expresión- Git:
clone,branch,commit,push,pull, Pull Request, resolver un conflicto simple
Cursos: "Curso básico de Kotlin para Android" (Alain Nicolás) + videos de Git de AristiDevs en YouTube.
10 retos · cuestionario de 8 preguntas
Semana 2 · Jetpack Compose básico
Esta semana vas a dibujar tus primeras pantallas con Jetpack Compose, la herramienta de Android para armar lo que la persona ve y toca. Es como armar con bloques de LEGO: una columna aquí, una fila allá, un botón encima, y juntas piezas simples hasta tener una pantalla completa. Vas a probar todo en el emulador, que es un teléfono de mentira dentro de tu computadora. Ver tu propia pantalla funcionando es de lo más motivador: disfrútalo.
Mini ejemplo: Column { Text("Hola"); Button(onClick = {}) { Text("Entrar") } } ya es una pantalla: un texto con un botón debajo.
Error típico de principiante: usar Column con forEach para listas largas; la app se pone lenta. Para listas usa LazyColumn.
Temas de la semana 2
- Estructura de un proyecto Android, Android Studio, emulador,
MainActivity - Composables,
@Preview,Modifier(padding, size, fillMaxWidth, clickable) - Layouts:
Column,Row,Box,Spacer,LazyColumn Text,Button,Image,Icon,Card,TextField- Material 3: tema, colores, tipografía,
Scaffold,TopAppBar rememberymutableStateOf(introducción)
Videos gratis recomendados
- [2025] Curso JETPACK COMPOSE desde CERO (lista completa) — Programación by AristiDevs
- JETPACK COMPOSE: Curso ANDROID KOTLIN desde CERO para PRINCIPIANTES — MoureDev by Brais Moure
8 retos · cuestionario de 8 preguntas
Semana 3 · Estado, ViewModel y Navigation
Esta semana aprendes a que tu app "recuerde" cosas (el estado) y a moverte entre pantallas. El ViewModel es como el mesero de un restaurante: guarda tu pedido aunque cambies de mesa, igual que la app no pierde los datos si giras el teléfono. La navegación funciona como los pasillos de un centro comercial: vas de una tienda a otra y puedes volver atrás. Si al principio se siente raro, es normal; con la práctica encaja solo.
Mini ejemplo: en un contador, el estado es cuenta, el evento es el toque del botón y el ViewModel hace cuenta + 1; la pantalla solo muestra el número.
Error típico de principiante: guardar el estado en una variable normal (var cuenta = 0). La pantalla no se entera de que cambió.
Temas de la semana 3
- State hoisting (estado arriba, eventos abajo)
ViewModel,StateFlow,collectAsStateWithLifecycle- UI State como
data class - Navigation Compose: rutas, argumentos, back stack
- Ciclo de vida de la Activity y por qué el ViewModel sobrevive a la rotación
8 retos · cuestionario de 8 preguntas
Semana 4 · Red y Coroutines
Esta semana tu app aprende a pedir información por internet, igual que cuando una app de clima te muestra el pronóstico. Una API es como la ventanilla de un restaurante de comida rápida: haces un pedido y te entregan una respuesta, casi siempre en JSON, un formato de texto ordenado. Las corrutinas permiten esperar esa respuesta sin que la pantalla se congele, como cuando sigues charlando mientras llega tu comida. Tu app ya se conecta con el mundo: eso es un gran paso.
Mini ejemplo: @GET("pokemon/{id}") suspend fun detalle(@Path("id") id: Int) pide un Pokémon; mientras llega, la pantalla muestra Loading.
Error típico de principiante: no prever el caso sin internet. Sin un try/catch o un estado Error, la app se cierra.
Temas de la semana 4
- Coroutines:
suspend,viewModelScope,launch,Dispatchers - Flow básico
- Retrofit + serialización JSON (Kotlinx Serialization o Moshi)
- Modelar estados:
Loading,Success,Error - Carga de imágenes con Coil
- Permiso de internet, logging de red (OkHttp interceptor)
Videos gratis recomendados
9 retos · cuestionario de 8 preguntas
Semana 5 · Arquitectura, Room y Hilt
Esta semana ordenas tu app en capas y le das memoria propia con Room, una base de datos que vive dentro del teléfono. Es como una cocina profesional: una persona compra los ingredientes (datos), otra cocina (lógica) y otra sirve el plato (pantalla), y cada una sabe exactamente qué le toca. Hilt es el encargado que le entrega a cada quien las herramientas que necesita sin que tenga que ir a buscarlas. Aprender a ordenar ahora te ahorra mucho desorden después.
Mini ejemplo: @Entity data class Gasto(@PrimaryKey val id: Int, val monto: Double) es una tabla; el @Dao devuelve Flow<List<Gasto>> y la lista en pantalla se actualiza sola al agregar uno.
Error típico de principiante: crear dependencias dentro del ViewModel (Retrofit.Builder()...) o llamar al DAO desde la pantalla. Luego no puedes probarlo.
Temas de la semana 5
- MVVM y capas:
data/domain/ui - Patrón Repository como única fuente de verdad
- Room:
@Entity,@Dao,@Database, queries que devuelvenFlow - Hilt:
@HiltAndroidApp,@AndroidEntryPoint,@HiltViewModel,@Module,@Provides,@Inject - Estructura de paquetes por feature
8 retos · cuestionario de 8 preguntas
Semana 6 · Simulación de trabajo real
Esta semana practicas cómo se trabaja en un equipo real: escribir pruebas (tests), encontrar errores (bugs) y pedir revisión de tu código. Un test es como revisar la mochila antes de salir de casa: una lista que confirma que todo está donde debe. Un Pull Request es como entregar una tarea para que alguien la revise antes de publicarla, y los comentarios que recibas son para mejorar, no para juzgarte. Llegaste hasta aquí: ya piensas como alguien que programa de verdad.
Mini ejemplo: @Test fun sumaGastos() { assertEquals(30.0, calcularTotal(listOf(10.0, 20.0))) }; si alguien rompe la función, el test se pone en rojo antes de publicar.
Error típico de principiante: leer el stack trace desde el final o mandar un PR gigante. Busca la primera línea de tu paquete y manda cambios pequeños.
Temas de la semana 6
- Unit tests con JUnit + un mock (MockK); testear ViewModel y Repository
- Debugger de Android Studio, breakpoints, Logcat con filtros
- Leer un stack trace y encontrar la línea culpable
- Gradle básico: agregar dependencias,
buildTypes,versionCode - Buenas prácticas de PR: commits pequeños, descripción, capturas
- Cómo recibir y responder un code review
10 retos · cuestionario de 8 preguntas
Proyectos para tu portafolio
Cuando buscas tu primer trabajo, casi nadie te va a pedir un título: te van a pedir ver algo que hayas construido, y tener proyectos propios en GitHub demuestra que sabes programar mejor que cualquier certificado.
1. Mi Playlist (tu mini Spotify)
- Qué construyes: una app para crear playlists, agregar canciones con portada, artista y duración, marcarlas como favoritas y ver el detalle de cada una.
- Qué practicas: Kotlin, pantallas con Compose, listas con
LazyColumn, estado, ViewModel y navegación entre la lista y el detalle (semanas 1 a 3). - Súbele el nivel: guarda tus playlists con Room para que no se borren al cerrar la app.
2. La Mesada (tracker de gastos)
- Qué construyes: una app donde anotas lo que recibes y lo que gastas (comida, pasajes, videojuegos), con el saldo del mes y un resumen por categoría.
- Qué practicas: Compose, estado, arquitectura en capas, Room para guardar los movimientos, Hilt y tests de la lógica que calcula el saldo (semanas 2 a 6).
- Súbele el nivel: agrega una meta de ahorro con una barra de progreso que avance según lo que no gastas.
3. Pokédex
- Qué construyes: una app que muestra la lista de Pokémon con su imagen y tipos, con buscador y una pantalla de detalle con sus estadísticas, usando la API pública y gratuita PokéAPI.
- Qué practicas: consumir una API con Retrofit, corrutinas, manejo de carga y errores de red, navegación, Room como caché y tests (semanas 3 a 6).
- Súbele el nivel: agrega un equipo favorito de 6 Pokémon que se guarde en el teléfono y funcione sin internet.
Glosario de Android Developer Jr en palabras simples
| Palabra | Qué significa |
|---|---|
| Variable | Una caja con nombre donde guardas un dato, como una etiqueta "edad" en un frasco que contiene el número 15. |
| Función | Un conjunto de pasos con nombre que puedes repetir cuando quieras, como la receta "hacer tostadas". |
| Clase | Un molde para crear objetos parecidos, como el molde de galletas que da la forma a cada galleta. |
| Lista (colección) | Un grupo ordenado de datos, como la lista de canciones de tu playlist. |
| Git | Un programa que guarda el historial de tu código, como las partidas guardadas de un videojuego. |
| Commit | Una foto guardada de tu trabajo en un momento, con una nota de qué cambiaste. |
| Rama (branch) | Una copia paralela del proyecto para probar cambios sin romper la versión principal, como un borrador. |
| Pull Request (PR) | Una solicitud para que otra persona revise tus cambios antes de juntarlos con el proyecto, como entregar una tarea al profe. |
| Emulador | Un teléfono de mentira que corre dentro de tu computadora para probar la app. |
| Composable | Una pieza de pantalla (un texto, un botón, una tarjeta) que combinas como bloques de LEGO. |
| Estado | Lo que la app recuerda en este momento, como el marcador de un partido que cambia con cada gol. |
| ViewModel | El encargado de guardar los datos de una pantalla aunque gires el teléfono, como un mesero que recuerda tu pedido. |
| API | Una ventanilla por la que tu app pide datos a otro sistema y recibe una respuesta, como pedir en un restaurante. |
| JSON | Un formato de texto ordenado para enviar datos, como una ficha con campos: nombre, edad, ciudad. |
| Corrutina | Una forma de hacer tareas que tardan (como descargar datos) sin congelar la pantalla, como poner la ropa a lavar y seguir haciendo otras cosas. |
| Base de datos | Un lugar donde la app guarda información de forma ordenada para usarla después, como un archivador. |
| Room | La herramienta de Android para tener una base de datos dentro del teléfono, como un cuaderno que la app no olvida al cerrarse. |
| Test | Un pequeño programa que revisa automáticamente que tu código haga lo que debe, como un corrector de exámenes. |
| Bug | Un error en el programa que hace que algo funcione mal, como una página faltante en un libro. |
| Stack trace | El mensaje que muestra el camino que siguió la app hasta fallar, como las pistas que llevan al lugar del problema. |
¿Listo para empezar?
Gratis, sin tarjeta y sin experiencia previa. Entra con Google o sin cuenta.
Empezar Android Developer Jr gratis