AGG es una aplicación móvil Android que permite registrar, categorizar y visualizar ingresos y gastos diarios, ayudando a mantener el control del presupuesto personal de forma simple y visual. Funciona 100% offline.
Proyecto de la asignatura Desarrollo de Aplicaciones Móviles (Trabajo Autónomo, segunda etapa).
Integrantes: Danny Espinoza · Raúl Cedeño · Wagner Zambrano
📋 Plan de desarrollo, reparto de sprints y guía para clonar el repo
| Capa | Tecnología |
|---|---|
| UI | Jetpack Compose + Material 3, Navigation Compose (rutas type-safe) |
| Presentación | MVVM, ViewModel + StateFlow<UiState>, collectAsStateWithLifecycle() |
| Dominio | Use cases (operator fun invoke) |
| Datos | Room (Single Source of Truth, offline-first), Flow<T> reactivo, suspend para escrituras |
| DI | Hilt |
ui (Route stateful → Screen stateless) → ViewModel → UseCase → Repository (interfaz)
↓
RepositoryImpl → DAO → Room
- Los composables hijos nunca reciben el ViewModel: solo estado inmutable y lambdas.
- Cada pantalla expone un único
StateFlowmodelado comoLoading / Success / Error. - Los repositorios exponen modelos de dominio; las entidades de Room no salen de la capa de datos.
RF01–RF12 de la propuesta: registro de ingresos/egresos, balance, categorías (predefinidas y personalizadas), gráfico por categoría, presupuesto mensual (general y por categoría) con alertas, historial filtrable, edición/eliminación, resumen mensual comparativo, meta de ahorro y registro rápido.
- Abrir el proyecto en Android Studio.
- Sincronizar Gradle.
- Ejecutar la configuración
appen un emulador o dispositivo (Android 8.0+ / API 26).
./gradlew assembleDebug # compilar
./gradlew testDebugUnitTest # pruebas unitarias
./gradlew connectedDebugAndroidTest # pruebas instrumentadas (Room)mainsiempre compila.- Ramas por funcionalidad:
feature/<sprint>-<descripcion>(ej.feature/s2-transaction-form). - Commits con Conventional Commits (
feat:,fix:,refactor:,test:,docs:,chore:). - Integración mediante Pull Requests revisados por otro integrante.