From 7c6cf6fd78641047368b3f6d1b2e210a642e4c8c Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Thu, 16 Jul 2026 14:12:00 +0200 Subject: [PATCH] docs: riorganizza README con flusso guidato prima-volta/build/lancio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- README.md | 62 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 4194417..739d155 100644 --- a/README.md +++ b/README.md @@ -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)