2.3 KiB
2.3 KiB
HogarControl
Flutter app for tracking home bills and recurring expenses. All data stored locally via SQLite — no internet required, no accounts.
Build & install
export JAVA_HOME=/root/.sdkman/candidates/java/21.0.11-amzn
flutter pub get
flutter build apk --debug
adb install build/app/outputs/flutter-apk/app-debug.apk
Prerequisites
- JDK 21 via SDKMAN:
sdk use java 21.0.11-amzn - Android SDK at
/opt/android-sdk(set viaflutter config --android-sdk /opt/android-sdk) - Flutter 3.27.4 at
/opt/flutter/bin - NDK
27.0.12077973(set inandroid/app/build.gradle)
Key config
android/app/build.gradle— compileSdk 35, minSdk 26, targetSdk 35, coreLibraryDesugaringEnabled, AGP 8.7.3android/settings.gradle— AGP + Kotlin plugin versions- Permissions:
INTERNET,POST_NOTIFICATIONS,RECEIVE_BOOT_COMPLETED,SCHEDULE_EXACT_ALARM
Stack
- State: Provider (
ChangeNotifierProviderforServicio,Factura,Configuracion) - DB: sqflite (single DB
hogarcontrol.db, tables:servicios,facturas,configuracion) - Notifications:
flutter_local_notificationswithzonedSchedule+ timezone - Charts: fl_chart (bar chart) + table_calendar
- UI: Material 3, no router (manual Navigator pushes)
Project layout
| Path | Purpose |
|---|---|
lib/main.dart |
App entry, MultiProvider setup, theme |
lib/models/ |
Data classes (Servicio, Factura, Configuracion) |
lib/database/database_helper.dart |
Singleton DB with CRUD helpers |
lib/providers/ |
ChangeNotifier state classes |
lib/screens/ |
9 screens (Splash → Dashboard → ...) |
lib/services/notification_service.dart |
Local notification scheduling |
lib/widgets/ |
Reusable UI components |
DB schema
servicios— id, nombre, icono, color, dia_vencimiento, fecha_creacionfacturas— id, servicio_id (FK), monto, fecha_emision, fecha_vencimiento, estado, nota, fecha_pagoconfiguracion— id, dias_recordatorio (comma-separated), tema, moneda
Warnings
dart analyzemay flag unused imports/variables in screens — safe to ignore for widget-tree watchers- Running as root causes flutter warnings but doesn't break builds
- Flutter 3.27.4 has known warnings about x86 target deprecation