AD2026 · Tec de Monterrey

TC2007B · Desarrollo de aplicaciones moviles

Las practicas de laboratorio del curso. Cada una se abre sola: no necesita internet mas que para las tipografias, y guarda tu avance en el navegador.

Arquitectura y estado

Aterrizar MVVM sobre un dominio chico: navegacion, ViewModel compartido y una capa de dominio que no sabe que existe Android.

Concurrencia y red

Salir del proceso: primero corrutinas sobre trabajo que tarda, y luego una API de verdad del otro lado, con sus esperas y sus errores.

Persistencia local

Los datos dejan de vivir en la memoria del proceso y pasan a un archivo del telefono: SQLite con Room, y una consulta que avisa sola cuando su resultado cambia.

Identidad y datos sensibles

Un login de verdad contra la API del curso: tokens que se guardan en el telefono sin regalarse, un servidor que decide que puedes hacer, y una sesion que se renueva sola y se cierra cuando toca.

Diseño e interfaz

De pantallas sueltas a un sistema: tokens de color, tipografia, forma y espaciado con Material 3, componentes propios que solo usan tokens, y la prueba de accesibilidad que casi nadie hace.

Tiempo real y segundo plano

El servidor avisa: una conexion que se queda abierta mientras la app se ve, y un trabajo que el sistema corre cuando no. Notificaciones sin Firebase ni segunda app, y las reglas que Android impone a cambio.

Inyeccion de dependencias

Nadie construye lo que necesita: lo pide. Primero a mano, con una interfaz y un contenedor, y despues con Hilt, que escribe el contenedor al compilar. El premio es una prueba que corre sin internet.

Multimedia y archivos

Una imagen es el dato mas caro del telefono: el mas pesado en la red, el mas grande en memoria y el que mas informacion privada lleva escondida. Elegirla y fotografiarla sin pedir permisos, reducirla antes de subirla, y un servidor que la guarda donde debe.

Calidad y pruebas

Que la app se pruebe sola: reglas en la JVM en segundos, el ViewModel contra un servidor de mentira, la pantalla como la recorre TalkBack, y mutantes para descubrir lo que no estaba probado. Y el servidor tambien: pytest contra la base de verdad, y una matriz de trazabilidad que lo demuestra.

Tiempo real entre personas

Un chat cuya sala vive en tu computadora: FastAPI con WebSocket en Docker, un tunel que la saca a internet, una invitacion con QR y un anfitrion que decide quien entra. Y una conexion que sobrevive cuando la red falla, con pruebas que lo demuestran.

IA en el dispositivo

Un modelo de lenguaje que corre en el CPU del telefono, sin internet: cargarlo una vez y fuera del hilo principal, mostrar la respuesta mientras se genera y detenerla, pedirle las cosas para que un modelo chico obedezca, y probar la app con un modelo de mentira.

Guías de estudio para el examen

Una guía por práctica, escrita para estudiar el tema y no el ejemplo: conceptos, decisiones de diseño, errores frecuentes, fragmentos para interpretar y preguntas de autoevaluación con respuestas posibles. Empieza por la síntesis si quieres ver lo que cruza todas.

Guías de estudio · Para todas las prácticas
Síntesis transversal de las guías 02 a 12

Las distinciones que cruzan varias guías: estado y evento, qué sobrevive a cada cambio, errores y reintentos, idempotencia, qué afirma cada tipo de prueba y seguridad por capas. Con preguntas integradoras al final.

5 min de lectura 8 secciones
Guía de estudio 02 · Práctica 2
Arquitectura, navegación y gestión del estado en Android

Jetpack Compose, MVVM, ViewModel y Navigation

25 min de lectura 15 secciones
Guía de estudio 03 · Práctica 3
Corrutinas, concurrencia y operaciones asíncronas en Android

Kotlin Coroutines, suspensión, concurrencia estructurada, cancelación y dispatchers

30 min de lectura 18 secciones
Guía de estudio 04 · Práctica 4
Consumo de API REST y gestión de datos remotos en Android

HTTP, Retrofit, DTO, repositorios, estados de UI, errores y CRUD

30 min de lectura 21 secciones
Guía de estudio 05 · Práctica 5
Persistencia local con Room y flujos de datos reactivos en Android

SQLite, Room, Entity, DAO, Database, Flow, StateFlow, inyección manual de dependencias y migraciones

30 min de lectura 20 secciones
Guía de estudio 06 · Práctica 6
Autenticación, autorización y gestión segura de sesiones en Android

JWT, tokens, DataStore, Android Keystore, OkHttp y renovación de sesiones

30 min de lectura 20 secciones
Guía de estudio 07 · Práctica 7
Sistemas de diseño, Material 3 y accesibilidad en Android

Tokens, temas, componentes, Compose y accesibilidad

25 min de lectura 19 secciones
Guía de estudio 08 · Práctica 8
Actualizaciones en tiempo real, notificaciones y trabajo en segundo plano en Android

SSE, callbackFlow, ciclo de vida, notificaciones y WorkManager

30 min de lectura 17 secciones
Guía de estudio 09 · Práctica 9
Inyección de dependencias y Hilt en Android

Inyección de dependencias, inversión de dependencias, Hilt, Dagger y KSP

20 min de lectura 20 secciones
Guía de estudio 10 · Práctica 10
Imágenes, cámara y transferencia de archivos en Android

Coil, Photo Picker, FileProvider, compresión, EXIF, multipart y estado guardado

30 min de lectura 19 secciones
Guía de estudio 11 · Práctica 11
Pruebas automatizadas en Android: JUnit, fakes, Compose UI Test y mutación

Pruebas locales, instrumentadas, corrutinas y calidad de las comprobaciones

30 min de lectura 22 secciones
Guía de estudio 12 · Práctica 12
WebSocket, servidores propios y comunicación bidireccional en Android

FastAPI, Docker, WebSocket, protocolos, reconexión, QR y pruebas

35 min de lectura 23 secciones

Herramientas del curso

Lo que no es tema de ninguna practica pero todas usan: adb listo en la terminal, en Windows, macOS y Linux.