El sistema completo
El carnet no es una pantalla bonita: es una pieza dentro de un sistema de control de acceso que ya existía. La aplicación de escritorio en Java que usan los guardias escanea códigos de barras; la app móvil tenía que producir uno que ese lector entendiera, sobre la misma base de datos PostgreSQL institucional.
Las decisiones que importaron
Modo sin conexión. Un carnet que necesita datos móviles para mostrarse no sirve en una portería. Una vez generado, el carnet se guarda en el dispositivo y funciona sin red.
Registro validado contra la base institucional. Nadie puede crearse una cuenta: el número de identificación tiene que existir previamente en los registros del centro. La app no es la fuente de verdad de quién es aprendiz, solo la interfaz.
Registro de equipos. Los aprendices entran con portátiles y accesorios que hay que poder verificar a la salida. Cada equipo queda vinculado al perfil.
Lo que enseñó
Integrarse con un sistema que ya está en producción y no puedes cambiar impone una disciplina distinta a la de empezar de cero: el formato del código de barras, el esquema de la base y el flujo de la portería eran restricciones, no decisiones.