Saltar a contenido

Especificacion UI Consolidada - MTS-AUTH-001

Identificador: UI-MTS-AUTH-001 Modulo Funcional: MTS-AUTH-001 - Autenticacion y Seguridad Version: 1.0.0 Fecha: 2025-12-05 Autor: MobileUxUiDrone (Eight of Eight) Estado: Completado


1. Resumen Ejecutivo

1.1. Alcance

Este documento consolida la especificacion completa de interfaz de usuario para el modulo de Autenticacion y Seguridad (MTS-AUTH-001). Cubre todos los flujos de entrada a la aplicacion: splash, login social, registro, recuperacion de cuenta, verificacion MFA y desbloqueo biometrico.

NOTA CRITICA V1.0: MedTime V1.0 utilizaexclusivamente Firebase Authentication con autenticacion social (Google Sign-In, Apple Sign-In). Email/password NO esta disponible en V1.0.

1.2. Metricas del Modulo

Metrica Valor
Total de pantallas 6
Componentes unicos 18
User journeys documentados 3
Nivel WCAG AA
Cobertura de accesibilidad 100%

1.3. Pantallas Incluidas

ID Nombre Prioridad Estado
SCR-AUTH-001 Splash / Welcome Critica Especificado
SCR-AUTH-002 Login Social Critica Especificado
SCR-AUTH-003 Registro Critica Especificado
SCR-AUTH-004 Recuperacion Alta Especificado
SCR-AUTH-005 Verificacion 2FA Alta Especificado
SCR-AUTH-006 Biometria Alta Especificado

2. User Journeys

2.1. Paciente Independiente (PI) - Login Primera Vez

Persona: Maria, 45 anos, descarga MedTime por recomendacion de su medico.

Objetivo: Crear cuenta y acceder a la aplicacion.

Flujo principal:

  1. Abrir app -> Ver splash con logo
  2. Ver carrusel de bienvenida (3 slides)
  3. Tap "Comenzar" -> Pantalla login
  4. Tap "Continuar con Google"
  5. Seleccionar cuenta Google
  6. Autorizar permisos
  7. Ver mensaje de bienvenida
  8. Continuar a onboarding

Tiempo objetivo: < 30 segundos (sin contar tiempo en OAuth)

Puntos de friccion mitigados:

  • Carrusel skippable para usuarios impacientes
  • Solo 2 opciones de login (no paralisis de eleccion)
  • OAuth nativo con Face ID integrado (Apple)

2.2. Usuario Existente (Perfect) - Login con MFA

Persona: Roberto, 55 anos, tier Perfect, seguridad prioritaria.

Objetivo: Acceder de forma segura con segundo factor.

Flujo principal:

  1. Abrir app -> Splash rapido
  2. Tap "Continuar con Apple" (Face ID)
  3. Ver pantalla MFA (tier Perfect)
  4. Abrir Google Authenticator
  5. Ingresar codigo 6 digitos
  6. Acceso automatico al dashboard

Tiempo objetivo: < 20 segundos

Restricciones de seguridad:

  • No bypass de MFA para tier Perfect
  • Rate limiting en codigos
  • Recovery key como escape

2.3. Usuario Existente - Desbloqueo Biometrico

Persona: Ana, 28 anos, usa Face ID para acceso rapido.

Objetivo: Desbloquear app en menos de 2 segundos.

Flujo principal:

  1. Abrir app
  2. Prompt automatico de Face ID
  3. Mirar pantalla
  4. Acceso instantaneo

Tiempo objetivo: < 2 segundos

Fallbacks:

  • 3 fallos biometricos -> PIN
  • PIN bloqueado -> Login completo

3. Arquitectura de Navegacion

3.1. Diagrama de Flujo

flowchart TD
    COLD[Cold Start] --> SPLASH[SCR-AUTH-001]
    RESUME[App Resume] --> CHECK{Sesion?}

    SPLASH -->|Primera vez| CAROUSEL[Carrusel 3 slides]
    SPLASH -->|Usuario existente| CHECK

    CHECK -->|Valida + Bio| BIO[SCR-AUTH-006]
    CHECK -->|Invalida| LOGIN[SCR-AUTH-002]

    CAROUSEL --> LOGIN

    LOGIN -->|Google/Apple| OAUTH{OAuth}
    LOGIN -->|Crear cuenta| REGISTER[SCR-AUTH-003]
    LOGIN -->|Recuperar| RECOVER[SCR-AUTH-004]

    REGISTER --> OAUTH

    OAUTH -->|Exito nuevo| ONBOARD[Onboarding]
    OAUTH -->|Exito existente| TIER_CHECK{Tier?}
    OAUTH -->|Error| LOGIN

    TIER_CHECK -->|Perfect| MFA[SCR-AUTH-005]
    TIER_CHECK -->|Free/Pro| DASHBOARD[Dashboard]

    MFA -->|Valido| DASHBOARD
    MFA -->|Recovery| RECOVER

    RECOVER -->|Exito| LOGIN
    RECOVER -->|Reset Free| SPLASH

    BIO -->|Exito| DASHBOARD
    BIO -->|Fallback| PIN_INPUT[PIN Input]
    PIN_INPUT -->|Exito| DASHBOARD
    PIN_INPUT -->|Bloqueado| LOGIN
Ruta Destino
medtime://login SCR-AUTH-002
medtime://register SCR-AUTH-003
medtime://recover SCR-AUTH-004
medtime://verify-mfa SCR-AUTH-005

4. Componentes Utilizados

4.1. Componentes del Design System

Componente ID Uso en Modulo
Top App Bar CMP-NAV-002 Registro, Recuperacion
Primary Button CMP-BTN-001 CTAs principales
Secondary Button CMP-BTN-002 CTAs secundarios
Social Auth Button CMP-BTN-007 Login Google/Apple
Text Field CMP-INP-001 Recovery key input
PIN Input CMP-INP-003 PIN y MFA
TextArea CMP-INP-009 Recovery key (24 palabras)
Dialog CMP-FBK-002 Confirmaciones
Banner CMP-FBK-004 Errores y warnings
Page Indicator CMP-DAT-008 Carrusel splash
Offline Indicator CMP-SPC-009 Estado sin conexion

4.2. Componentes Personalizados

Componente Descripcion Pantalla
CarouselSlide Slide de bienvenida con ilustracion SCR-AUTH-001
SocialButton Boton OAuth con branding oficial SCR-AUTH-002
RecoveryOptionCard Card con opcion de recuperacion SCR-AUTH-004
MFACodeInput 6 celdas para codigo TOTP SCR-AUTH-005
CustomNumericKeyboard Teclado numerico seguro SCR-AUTH-005, SCR-AUTH-006
BiometricPromptWrapper Wrapper para prompts nativos SCR-AUTH-006
CooldownTimer Countdown para rate limiting SCR-AUTH-005, SCR-AUTH-006

5. Auditoria de Accesibilidad WCAG 2.1 AA

5.1. Resumen de Cumplimiento

Principio Estado Notas
Perceptible CUMPLE Todos los criterios AA
Operable CUMPLE Todos los criterios AA
Comprensible CUMPLE Todos los criterios AA
Robusto CUMPLE Todos los criterios AA

5.2. Criterios Verificados

5.2.1. Perceptible

Criterio ID Estado Implementacion
Alternativas de texto 1.1.1 OK Todos los iconos y botones tienen labels
Info y relaciones 1.3.1 OK Estructura semantica con headings
Caracteristicas sensoriales 1.3.3 OK Errores con color + icono + texto
Uso del color 1.4.1 OK Estados nunca solo por color
Contraste minimo 1.4.3 OK 4.5:1 verificado en todas las pantallas
Cambio de tamano 1.4.4 OK Soporte hasta 200%
Reflow 1.4.10 OK Sin scroll horizontal a 320dp
Contraste no textual 1.4.11 OK 3:1 para bordes e iconos

5.2.2. Operable

Criterio ID Estado Implementacion
Teclado 2.1.1 OK Toda funcionalidad accesible
Sin trampa de teclado 2.1.2 OK Focus siempre puede escapar
Orden de foco 2.4.3 OK Secuencia logica documentada
Proposito de enlaces 2.4.4 OK Links descriptivos
Encabezados y etiquetas 2.4.6 OK Headings claros
Foco visible 2.4.7 OK Outline 2dp primary
Tamano del objetivo 2.5.5 OK Minimo 44x44dp, botones 56dp

5.2.3. Comprensible

Criterio ID Estado Implementacion
Idioma de pagina 3.1.1 OK lang="es" declarado
Al recibir foco 3.2.1 OK Sin cambios inesperados
Al recibir entrada 3.2.2 OK Auto-submit solo en MFA/PIN
Identificacion de errores 3.3.1 OK Errores claramente indicados
Etiquetas 3.3.2 OK Labels en todos los inputs
Sugerencia de error 3.3.3 OK Mensajes con soluciones
Prevencion de errores 3.3.4 OK Confirmacion para reset destructivo

5.2.4. Robusto

Criterio ID Estado Implementacion
Nombre, rol, valor 4.1.2 OK Semantica correcta
Mensajes de estado 4.1.3 OK Anuncios via screen reader

5.3. Checklist por Pantalla

Pantalla Touch Targets Contraste Screen Reader Focus Order
SCR-AUTH-001 OK OK OK OK
SCR-AUTH-002 OK OK OK OK
SCR-AUTH-003 OK OK OK OK
SCR-AUTH-004 OK OK OK OK
SCR-AUTH-005 OK OK OK OK
SCR-AUTH-006 OK OK OK OK

5.4. Consideraciones Especiales

5.4.1. Biometria

  • Face ID/Touch ID usan prompts nativos del sistema
  • Fallback a PIN siempre disponible
  • Anuncios claros de exito/fallo

5.4.2. MFA

  • Codigo de 6 digitos con auto-submit
  • Rate limiting con countdown accesible
  • Recovery key como alternativa

5.4.3. OAuth

  • Sheets nativos de Google/Apple
  • No control sobre accesibilidad de providers
  • Feedback claro pre/post OAuth

6. Responsive Design

6.1. Breakpoints

Ancho Adaptacion
< 360dp Compacto, margenes 16dp
360-600dp Mobile standard, margenes 32dp
600-840dp Tablet portrait, max-width 400dp centrado
> 840dp Tablet landscape, split layout

6.2. Adaptaciones por Breakpoint

Pantalla Mobile Tablet
SCR-AUTH-001 Vertical stack Ilustracion izquierda, texto derecha
SCR-AUTH-002 Full width buttons Centrado con max-width
SCR-AUTH-005 Teclado custom Teclado sistema + custom

7. Animaciones y Movimiento

7.1. Transiciones

Transicion Duracion Ease Reducido
Splash -> Login 300ms ease-out Instant
Login -> OAuth Sistema Sistema Sistema
MFA success 200ms ease-out Instant
Bio success 100ms linear Instant
Error shake 400ms custom Sin shake, solo clear

7.2. Movimiento Reducido

  • Detectar prefers-reduced-motion
  • Duraciones < 100ms
  • Sin shake animations
  • Mantener feedback haptico

8. Seguridad UI

8.1. Protecciones

Aspecto Implementacion
Screenshot Bloqueado en MFA y PIN
Screen recording Bloqueado en MFA y PIN
PIN display Solo puntos, nunca digitos
Recovery key Visible para verificacion, no masking
OAuth tokens Nunca mostrados en UI

8.2. Rate Limiting UI

Pantalla Limite Cooldown
SCR-AUTH-002 10 intentos/min 1 min
SCR-AUTH-005 5 intentos 5-30 min progresivo
SCR-AUTH-006 (PIN) 5 intentos 1-60 min progresivo

9. Estados de Error

9.1. Errores de Red

Escenario UI
Sin conexion inicial Banner offline + botones disabled
Perdida de conexion Banner offline + mensaje
Error de API Toast + Reintentar

9.2. Errores de Autenticacion

Error Mensaje Accion
OAuth cancelled (ninguno) Volver a estado inicial
Account not found "No encontramos una cuenta" Link crear cuenta
MFA invalid "Codigo incorrecto" Clear + retry
PIN blocked "Demasiados intentos" Countdown + login option

9.3. Errores de Recuperacion

Error Mensaje Accion
Recovery key invalid "Clave incorrecta" Mostrar checklist
Email not verified "Email no verificado" Reenviar verificacion

10. Metricas de UX

10.1. KPIs del Modulo

Metrica Objetivo Medicion
Tiempo login (nuevo) < 30s analytics
Tiempo login (existente) < 10s analytics
Tiempo biometrico < 2s analytics
Tasa exito OAuth > 95% analytics
Tasa exito MFA > 85% analytics
Abandono en auth < 10% funnel

10.2. Eventos de Analytics

Ver documentacion individual de cada pantalla para lista completa de eventos.


11. Archivos del Modulo

11.1. Flujos

  • flows/UIF-AUTH-001-autenticacion.md

11.2. Pantallas

  • screens/SCR-AUTH-001-splash-welcome.md
  • screens/SCR-AUTH-002-login-social.md
  • screens/SCR-AUTH-003-registro.md
  • screens/SCR-AUTH-004-recuperacion.md
  • screens/SCR-AUTH-005-verificacion-2fa.md
  • screens/SCR-AUTH-006-biometria.md

11.3. Especificacion Consolidada

  • specs/UI-MTS-AUTH-001.md (este documento)

12. Referencias

12.1. Especificacion Funcional

12.2. Design System

12.3. Accesibilidad

12.4. Recursos Externos


13. Historial de Cambios

Version Fecha Cambios
1.0.0 2025-12-05 Version inicial completa - Solo auth social V1.0

14. Aprobaciones

Rol Nombre Estado Fecha
UX Lead MobileUxUiDrone Completado 2025-12-05
A11y Review Pendiente - -
Product Owner Pendiente - -

Documento generado por MobileUxUiDrone (Eight of Eight) "La puerta de entrada define la experiencia. Esta especificacion asegura que sea impecable."