# Sistemax Mobile (Flutter)

App movil oficial conectada a `api/mobile/v1`.

## Estado real (2026-05-06)

- Flutter instalado: `3.41.9`.
- Calidad: `flutter analyze` sin issues.
- Pruebas: `flutter test` 3/3 OK.
- Cobertura funcional aproximada: ver [docs/ROADMAP.md](docs/ROADMAP.md) (~92% operativo farmacia).

## Ejecutar local

```bash
cd mobile
flutter pub get
flutter run
```

## Build Android release

1. Crear archivo `mobile/android/key.properties` desde `mobile/android/key.properties.example`.
2. Completar credenciales reales de keystore.
3. Verificar ruta `storeFile` (por defecto `../upload-keystore.jks` relativo a `mobile/android/`).
4. Generar build:

```bash
cd mobile
flutter build apk --release
```

Nota: si `key.properties` no existe, gradle usa firma `debug` como fallback para no bloquear pruebas internas.

## Estado Fase 1 (cierre)

- Multi-establecimiento mobile v1: implementado (selector de sucursal activa + endpoint session).
- Offline POS critico: implementado (cache local + cola de ventas + sync auto/manual).
- Pantalla de pendientes sync: implementada (`/pending-sync`).
- Push backend/token lifecycle: implementado (register + revoke endpoint).

## Pendiente para producción Android push

- Colocar `mobile/android/app/google-services.json` real del proyecto Firebase.
- Validar recepción real en foreground/background/terminated en dispositivo físico.

Detalle completo: [docs/ROADMAP.md](docs/ROADMAP.md)
