Saltar a contenido

Estado actual del prototipo Android

Este documento describe únicamente lo observado en el código revisado el 2026-07-11. No sustituye las decisiones de negocio en producto/decisiones-vigentes.md ni afirma integración con backend. Para entender qué hace el prototipo real, leer este archivo; para saber qué debe hacer el producto, leer las decisiones vigentes.

Cifras clave de la revisión

Métrica Valor
Archivos Kotlin en main 130
Pantallas (*Screen.kt) 38
Enums de estado 12
Modelos de dominio 17
Notificaciones demo en FakeDataSource 20
Literales Color(0x…) 249
Literales dp 585
Tamaños de texto 8–11sp 25
contentDescription = null (posible issue) 95

Tecnología observada

  • Android nativo, Kotlin 2.2.10, Jetpack Compose (BOM 2026.02.01).
  • applicationId: com.example.islabox. namespace: com.example.islabox (inconsistencia resuelta: ambos coinciden).
  • minSdk = 24, targetSdk = 35, compileSdk = 37, Java 11.
  • Navegación Compose tipada con kotlinx.serialization 1.7.3.
  • CameraX para captura KYC.
  • Datos de demostración locales (FakeDataSource, CurrentUser).

Estado por módulo

Módulo Madurez Observación
Bienvenida / login / registro 🧪 Simulado Acceso local; sin backend ni sesión entre reinicios.
Recuperación de sesión 🧪 Simulado Email, OTP demo, nueva contraseña y confirmación.
Tutorial ✅ Implementado Se muestra una vez, puede omitirse y permanece accesible desde Ayuda.
Dashboard 🧪 Simulado Consume estado compartido y muestra banda persistente de demo.
Prealerta 🧪 Simulado Tracking opcional, creación en sesión, edición posterior y recepción demo.
Paquetes / detalle 🧪 Simulado Presentación centralizada de estados y acciones dependientes del estado.
KYC 🧪 Simulado Estado compartido, gate y herramientas demo de revisión/aprobación/rechazo.
Consolidación 🧪 Simulado Crea consolidación y cotización persistentes desde un único cálculo.
Pago / factura 🧪 Simulado Solo comprobante manual, pago reportado y aprobación/despacho demo.
Servicios 🧪 Simulado Solicitudes locales visibles durante la sesión.
Envíos 🧪 Simulado Despacho demo lleva al detalle y al timeline del envío.
Perfil / contactos 🧪 Simulado Perfil consume el usuario compartido; persistencia fuera de alcance.
Guía / aduana 🧪 Parcial Contenido local; normativa debe revisarse por su owner.
Notificaciones 🧪 Simulado Eventos demo dinámicos abren el objetivo relacionado.
Navegación 🧪 Simulado Gates, factura, incidencias y servicios están conectados al flujo demo.

Configuración observada en código

Parámetro Valor Fuente
Almacenaje gratis 5 días AppSettings (no alineado con D-102)
Aviso pre-vencimiento 1 día AppSettings (no alineado con D-104)
Costo diario extra $1.00 USD AppSettings (no alineado con D-103)
Tarifa marítimo $2.40 / lb AppSettings (alineado con D-105)
Tarifa aéreo $3.35 / lb AppSettings (alineado con D-106)

Estos valores son datos del código, no decisiones aprobadas. Hasta que se cierren las decisiones pendientes, cualquier discrepancia entre este archivo y producto/decisiones-vigentes.md se resuelve a favor de las decisiones.

Avance posterior al snapshot

Cambios implementados en el árbol de trabajo el 2026-07-11. Este apartado no sustituye el snapshot auditado de arriba; requiere compilación y prueba en dispositivo antes de cambiar su estado a verificado.

  • DemoSessionRepository es la fuente de verdad de usuario/KYC, prealertas, paquetes, consolidaciones, cotizaciones, pagos, servicios, incidencias y notificaciones. FakeDataSource queda como fachada temporal.
  • La prealerta crea un reporte en sesión; el tracking es opcional, editable después y la recepción demo actualiza peso, fechas, estado y notificación.
  • KYC conserva el expediente y sincroniza SUBMITTED, revisión, aprobación o rechazo con el usuario. Consolidación, pago y despacho aplican el gate.
  • La recuperación solicita nueva contraseña y confirmación después del OTP demo. El código demo válido es 123456.
  • El pago se limita al comprobante manual: crea REPORTED, requiere aprobación demo y solo entonces habilita despacho.
  • Consolidación crea una cotización persistente de siete días; resumen, detalle, pago y factura usan sus mismos cargos y total.
  • Estados, textos y colores de paquetes salen de una capa de presentación central; los textos explícitos de interfaz se elevaron a un mínimo de 12sp.
  • Tutorial, notificaciones, incidencias y servicios mantienen acciones observables durante la sesión.

Validación pendiente

bash ./gradlew testDebugUnitTest no pudo ejecutarse en este entorno porque no hay comando java ni variable JAVA_HOME. Hay pruebas de repositorio demo añadidas, pero no se consideran ejecutadas.

Limitaciones de la revisión

  • Revisión estática sobre código fuente y APK release incluido.
  • No se ejecutó emulador ni dispositivo real.
  • El wrapper intentaría descargar Gradle 9.3.1 y no pudo por falta de red.
  • Los hallazgos de UX se derivan del código Compose, estados locales, fixtures y callbacks.

Los hallazgos exhaustivos de la revisión están resumidos en este documento, el catálogo de pantallas y el backlog vigente; el archivo de auditoría original no se distribuye en este repositorio.