docs: riorganizza README con flusso guidato prima-volta/build/lancio

Aggiunge una guida rapida in cima che rimanda a requisiti, installazione,
sviluppo e build nell'ordine in cui vanno seguiti, e documenta il fix per
i file lasciati di proprietà root da una build Docker precedente.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 14:12:00 +02:00
parent 65d0eb461c
commit 7c6cf6fd78
+41 -21
View File
@@ -38,19 +38,14 @@ App Android per la gestione della dieta quotidiana — pianificazione pasti, con
| QR code | qr_flutter + mobile_scanner |
| Build APK | Docker (headless) |
## Sviluppo
## Guida rapida
Sviluppo locale con Flutter installato sull'host e un emulatore Android dedicato — no Docker.
1. **Prima volta**: segui [Requisiti host](#requisiti-host) e [Installazione passo passo](#installazione-passo-passo) per installare Flutter, Android SDK ed emulatore.
2. **Sviluppo quotidiano**: vedi [Sviluppo](#sviluppo) per avviare l'emulatore e lanciare l'app con hot reload.
3. **Build APK**: vedi [Build APK](#build-apk) per generare `dist/biteplan-debug.apk` o `-release.apk` via Docker.
4. **Provare l'APK buildato sull'emulatore** (senza `flutter run`): vedi [Installare e testare l'APK di debug sull'emulatore](#installare-e-testare-lapk-di-debug-sullemulatore).
```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.
### Requisiti host
## Requisiti host
- **Linux x86_64** (Ubuntu/Debian o simili; funziona anche su **WSL2** se il kernel espone `/dev/kvm`)
- **KVM** per l'accelerazione hardware — senza, l'emulatore è inutilizzabile. Verifica con:
@@ -116,7 +111,41 @@ flutter run
> **Nota WSL2**: serve un kernel con KVM abilitato (WSL2 recenti lo hanno di serie —
> verifica con `ls /dev/kvm`). La finestra dell'emulatore compare tramite WSLg.
### Installare e testare l'APK di debug sull'emulatore
## Sviluppo
Una volta completata l'installazione, il ciclo quotidiano è:
```bash
emulator -avd biteplan &
# attendi il boot completo (qualche secondo se l'AVD ha già uno snapshot, 1-2 min altrimenti), poi:
flutter run
# hot reload con "r", hot restart con "R", "q" per terminare
```
Lancialo da un terminale interattivo (non in background): `r`/`R` leggono da stdin, quindi
un processo lanciato senza terminale (es. `nohup ... &`) non risponde all'hot reload.
> **Permessi dopo una build Docker**: `bash docker/build.sh` (vedi [Build APK](#build-apk))
> gira come root nel volume montato. Se dopo una build `flutter run` fallisce con errori di
> permessi (es. su `android/local.properties`) o Gradle si lamenta di file in `/root/.pub-cache`,
> i file sono rimasti di proprietà di root:
> ```bash
> sudo chown -R $(whoami):$(whoami) android .dart_tool build
> rm -rf .dart_tool build && flutter pub get
> ```
Vedi [docker/README.md](docker/README.md) per test e build APK via Docker.
## 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.
## Installare e testare l'APK di debug sull'emulatore
Una volta creato l'AVD `biteplan` (vedi sopra), per installare e provare un APK di debug
già buildato (es. `dist/biteplan-debug.apk` generato da `bash docker/build.sh`) senza
@@ -199,15 +228,6 @@ test/
└── 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)