Arquitectura técnica
Esta sección resume la base técnica de PrestaApp v3.0.0+3 para mantenimiento, auditoría y evolución del producto.
Stack principal
- Flutter + Dart: aplicación móvil multiplataforma.
- Riverpod: gestión de estado e inyección de dependencias.
- GoRouter: navegación declarativa con protección de rutas.
- SQLite / SQLCipher: almacenamiento local y cifrado en plataformas móviles.
- Secure Storage: resguardo de claves, PIN y preferencias sensibles.
- PDF y Share Plus: generación y uso compartido de reportes y comprobantes.
Organización del código móvil
El proyecto móvil separa responsabilidades por capas:
models: entidades de clientes, préstamos, pagos, bonos, transacciones y presupuestos.data: base de datos local y repositorios.providers: estado reactivo y dependencias de Riverpod.services: autenticación, reportes y backups.screens: pantallas y flujos de usuario.widgets: componentes reutilizables de interfaz.theme: sistema visual de la app.
Datos y repositorios
Los repositorios aíslan el acceso a SQLite y permiten probar la lógica sin acoplarla a la interfaz. La base contiene tablas para clientes, préstamos, pagos, bonos, categorías financieras, transacciones y presupuestos mensuales, con índices para consultas frecuentes.
Las migraciones están preparadas para evolucionar de forma secuencial sin borrar tablas existentes.
Rendimiento
La app delega trabajo pesado a procesos secundarios cuando corresponde:
- Hashing de PIN mediante
Isolate.run. - Renderizado de reportes PDF fuera del hilo principal.
- Historial financiero paginado para evitar cargar todo el volumen de transacciones a la vez.
- Conservación del estado visual de listas al cambiar entre pestañas.
Calidad
El repositorio móvil cuenta con CI en GitHub Actions para:
- Instalar dependencias.
- Verificar formato.
- Ejecutar análisis estático.
- Correr pruebas automatizadas.
La suite cubre repositorios, autenticación, reportes, utilidades de UI y pantallas principales.