Some checks are pending
Build / Build Backend (push) Waiting to run
Build / Build Docker Image (push) Blocked by required conditions
Build / Build Mobile (TypeScript Check) (push) Waiting to run
Lint / Lint Backend (push) Waiting to run
Lint / Lint Mobile (push) Waiting to run
Test / Backend E2E Tests (push) Waiting to run
Test / Mobile Unit Tests (push) Waiting to run
- Move 5 non-standard folders to _archive/ - Archive 2 extra root files - Update _MAP.md with standardized structure Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0 Level: CONSUMER (L2) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.3 KiB
5.3 KiB
ANÁLISIS INICIAL - UX MOBILE: Animaciones + Modo Offline
id: ANALISIS-UX-MOBILE-001 type: Analysis status: Draft created_date: 2026-01-12 updated_date: 2026-01-12 phase: 1-inicial simco_version: "4.0.0"
FASE 1: ANÁLISIS Y PLANEACIÓN INICIAL
1.1 Resumen Ejecutivo
| Aspecto | Valor |
|---|---|
| Fecha de Implementación | 2026-01-12 |
| Tipo de Cambio | Feature - UX Mobile |
| Impacto | Mobile App |
| Archivos Nuevos | 12 |
| Archivos Modificados | 7 |
| Dependencias Nuevas | 2 |
| Estado | Implementado - Pendiente Documentación |
1.2 Contexto del Cambio
Origen: Mejoras opcionales de UX documentadas en PROXIMA-ACCION.md
- Opción B: Mejoras de UX Mobile
- Animaciones y transiciones
- Modo offline
- Optimización de rendimiento
Objetivo: Mejorar la experiencia de usuario en la app mobile con:
- Animaciones fluidas usando react-native-reanimated
- Skeleton loaders durante carga de contenido
- Persistencia offline con AsyncStorage + Zustand persist
- Detección de conexión con NetInfo
1.3 Inventario de Cambios Realizados
1.3.1 Dependencias Instaladas
| Dependencia | Versión | Propósito |
|---|---|---|
| @react-native-async-storage/async-storage | ^2.1.2 | Persistencia local |
| @react-native-community/netinfo | ^11.4.1 | Detección de red |
1.3.2 Archivos Nuevos Creados (12)
| # | Archivo | Tipo | Líneas | Propósito |
|---|---|---|---|---|
| 1 | src/hooks/useAnimations.ts |
Hook | 187 | 8 hooks de animación reutilizables |
| 2 | src/hooks/useNetworkStatus.ts |
Hook | 63 | Detección estado de red |
| 3 | src/theme/ThemeContext.tsx |
Context | 72 | Sistema de temas light/dark |
| 4 | src/components/ui/Skeleton.tsx |
Component | 165 | Componentes skeleton base |
| 5 | src/components/ui/OfflineBanner.tsx |
Component | 98 | Banner modo offline |
| 6 | src/components/ui/AnimatedList.tsx |
Component | 125 | FlatList con animaciones |
| 7 | src/components/skeletons/InventoryItemSkeleton.tsx |
Component | 72 | Skeleton inventario |
| 8 | src/components/skeletons/StoreCardSkeleton.tsx |
Component | 68 | Skeleton tiendas |
| 9 | src/components/skeletons/CreditCardSkeleton.tsx |
Component | 115 | Skeleton créditos |
| 10 | src/components/skeletons/NotificationSkeleton.tsx |
Component | 62 | Skeleton notificaciones |
Total archivos nuevos: 12 Total líneas nuevas: ~1,027
1.3.3 Archivos Modificados (7)
| # | Archivo | Tipo Cambio | Descripción |
|---|---|---|---|
| 1 | src/stores/stores.store.ts |
Enhance | +Persistencia AsyncStorage |
| 2 | src/stores/inventory.store.ts |
Enhance | +Persistencia (max 100 items) |
| 3 | src/stores/credits.store.ts |
Enhance | +Persistencia (max 50 tx) |
| 4 | src/stores/notifications.store.ts |
Enhance | +Persistencia (max 50 notif) |
| 5 | src/app/_layout.tsx |
Enhance | +OfflineBanner, +ThemeProvider |
| 6 | src/app/(tabs)/index.tsx |
Refactor | +Animaciones, +Skeletons |
| 7 | src/app/(tabs)/inventory.tsx |
Refactor | +Animaciones, +Skeletons |
1.4 Clasificación de Impacto
Por Capa
| Capa | Archivos Nuevos | Archivos Modificados | Impacto |
|---|---|---|---|
| Hooks | 2 | 0 | Bajo |
| Components/UI | 3 | 0 | Bajo |
| Components/Skeletons | 4 | 0 | Bajo |
| Theme | 1 | 0 | Bajo |
| Stores | 0 | 4 | Medio |
| Screens | 0 | 3 | Alto |
Por Tipo de Cambio
| Tipo | Cantidad | Riesgo |
|---|---|---|
| Archivo nuevo (sin dependencias) | 10 | Bajo |
| Modificación de store | 4 | Medio |
| Modificación de screen | 2 | Alto |
| Modificación de layout | 1 | Alto |
1.5 Componentes No Afectados
Backend
- Sin cambios en backend
- Sin nuevas migraciones
- Sin cambios en API
Database
- Sin cambios en esquemas
- Sin cambios en entidades
- Sin nuevas tablas
1.6 Identificación de Documentación Requerida
| Documento | Acción | Prioridad |
|---|---|---|
| TRAZA-TAREAS-MOBILE.md | Agregar tarea MII-MO-014 | Alta |
| FRONTEND_INVENTORY.yml | Actualizar con nuevos componentes | Alta |
| PROJECT-STATUS.md | Actualizar estado mobile | Media |
| PROXIMA-ACCION.md | Actualizar opciones completadas | Media |
| _MAP.md (docs) | Sin cambios requeridos | - |
| Épicas existentes | Sin cambios requeridos | - |
1.7 Riesgos Identificados
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Incompatibilidad reanimated | Baja | Alto | Ya instalado, solo se activa uso |
| Fuga de memoria en animaciones | Media | Medio | Cleanup en useEffect |
| Tamaño excesivo de cache | Baja | Bajo | Límites configurados (50-100 items) |
1.8 Dependencias a Analizar (Fase 2)
- Stores → Screens: Los stores modificados son consumidos por múltiples screens
- Theme → Components: ThemeContext debe ser accesible globalmente
- Hooks → Screens: Los nuevos hooks deben funcionar en cualquier screen
- Layout → App: Cambios en _layout.tsx afectan toda la app
PRÓXIMOS PASOS
- Fase 2: Análisis detallado de cada archivo
- Fase 3: Plan de documentación
- Fase 4: Validación cruzada
- Fase 5: Análisis de dependencias
- Fase 6: Refinamiento
- Fase 7: Ejecución
- Fase 8: Validación final
Última Actualización: 2026-01-12 Responsable: Claude Opus 4.5