Files
biteplan/README.md
T
davide 6f82aa0225 docs: aggiorna README e docker/README al nuovo workflow di sviluppo
Sostituisce le istruzioni per il container dev con Flutter host +
emulatore Android; aggiorna i path docker/build/build.sh → docker/build.sh.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 19:30:34 +02:00

112 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BitePlan
App Android per la gestione della dieta quotidiana — pianificazione pasti, conversione crudo/cotto e lista della spesa.
## Funzionalità
### Piano Pasti
- Pianificazione settimanale su 7 giorni × 3 pasti (colazione, pranzo, cena)
- Card accordion per giorno, giorno corrente aperto di default
- Aggiunta e rimozione di voci per ogni pasto
- Generazione automatica della lista della spesa con aggregazione duplicati (es. "zucchine (x2)")
- Condivisione del piano via QR code tra dispositivi
- Persistenza automatica su SharedPreferences
### Convertitore crudo/cotto
- Conversione bidirezionale del peso (crudo → cotto e cotto → crudo)
- Ricerca alimento in tempo reale
- Oltre 50 voci tra cereali, legumi, verdure, carni, pesce e uova
- Fino a 4 metodi di cottura per alimento: bollitura, padella, forno, friggitrice ad aria
- Coefficienti di resa documentati con fonti — vedi [docs/conversioni.md](docs/conversioni.md)
### Lista della spesa
- Checklist con aggiunta manuale o importazione dai pasti pianificati
- Separazione visiva tra elementi da completare e completati
- Rimozione singola e svuota lista con conferma
### Controllo aggiornamenti
- All'avvio controlla silenziosamente l'ultima release su GitHub
- Se disponibile una versione più recente, mostra un dialog con link diretto al download dell'APK
## Stack
| Livello | Tecnologia |
|---|---|
| Framework | Flutter 3.41.9 / Dart 3.11.5 |
| State management | Provider |
| Persistenza | shared_preferences |
| QR code | qr_flutter + mobile_scanner |
| Build APK | Docker (headless) |
## Sviluppo
Sviluppo locale con Flutter installato sull'host e un emulatore Android dedicato — no Docker.
```bash
emulator -avd biteplan &
flutter run
# hot reload con "r", hot restart con "R"
```
Vedi [docker/README.md](docker/README.md) per test e build APK via Docker.
## Test
La suite copre unit test e widget test. Richiede l'immagine Docker `biteplan-build`
(creata automaticamente al primo `bash docker/build.sh`).
```bash
# Tutti i test (dalla root del progetto)
docker run --rm -v "$(pwd):/workspace" -w /workspace biteplan-build \
bash -c "flutter pub get && flutter test"
# Un singolo file
docker run --rm -v "$(pwd):/workspace" -w /workspace biteplan-build \
bash -c "flutter test test/features/meal_planner/qr_test.dart"
```
### Struttura
```
test/
├── helpers/
│ └── pump_app.dart # estensione pumpApp per widget test
├── features/
│ ├── converter/
│ │ ├── models/conversion_entry_test.dart
│ │ └── providers/converter_provider_test.dart
│ ├── meal_planner/
│ │ ├── models/meal_plan_test.dart
│ │ ├── providers/meal_planner_provider_test.dart
│ │ ├── widgets/meal_card_test.dart
│ │ └── qr_test.dart
│ └── shopping_list/
│ ├── models/shopping_item_test.dart
│ ├── providers/shopping_list_provider_test.dart
│ └── widgets/shopping_item_tile_test.dart
└── shared/
├── services/
│ └── update_service_test.dart # parsing versione e confronto semver
└── widgets/
└── update_dialog_test.dart # widget test dialog aggiornamento
```
## Build APK
```bash
bash docker/build.sh # debug → dist/biteplan-debug.apk
bash docker/build.sh --release # release → dist/biteplan-release.apk
```
Vedi [docker/README.md](docker/README.md) per i requisiti della firma release.
## Documentazione
- [Guida utente](docs/guida-utente.md)
- [Fonti e documentazione conversioni](docs/conversioni.md)
- [Changelog](CHANGELOG.md)
## Licenza
[EUPL v1.2](LICENSE) — Davide Grilli