Aggiunge pipeline Docker per build APK Android:
- Dockerfile con Java 21, Android SDK 34, ImageMagick per icone
- build.sh con flag --head per build da ultimo commit
- Icone generate da assets/icon-only.png via ImageMagick
- Fix kotlin-stdlib conflict e versione da package.json
- Rimuove mipmap-anydpi-v26 per usare i PNG custom al posto delle
adaptive icons di default; semplifica il loop con bash parameter
expansion e cp invece di doppio convert
- Patcha android/app/build.gradle con versionName/versionCode letti
da package.json prima della compilazione Gradle
@capacitor/assets usa sharp (nativo Node.js) che falliva silenziosamente
nel container Docker. ImageMagick è più affidabile e senza dipendenze native.
Genera ic_launcher.png e ic_launcher_round.png per tutte le densità mipmap.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Aggiunge COPY assets/ e npx @capacitor/assets generate --android
per popolare i mipmap Android prima della build Gradle.
Senza questo step l'app mostrava l'icona di default di Capacitor.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Kotlin 1.8+ incorpora jdk7/jdk8 nel main stdlib; Capacitor generava
un conflitto tra kotlin-stdlib:1.8.22 e kotlin-stdlib-jdk8:1.6.21.
Aggiunge una resolutionStrategy Gradle per forzare tutte le varianti
stdlib alla versione 1.8.22 dopo `npx cap add android`
node:20-slim (Debian Bookworm) non ha openjdk-21 nei repo.
Usa eclipse-temurin:21-jdk-jammy (Adoptium/Ubuntu) come base
e installa Node.js 20 via NodeSource.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docker/Dockerfile: ambiente Node 20 + OpenJDK 17 + Android SDK 34
dist/ ricevuto come volume montato dall'host (non buildata nel container)
- docker/build.sh: esegue npm run build locale poi lancia il container
flag --head per buildare da HEAD ignorando modifiche non committate
- docker/README.md: requisiti host (x86_64 obbligatorio), utilizzo,
pipeline e note su prima build (~10-15 min)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- assets/icon-only.png: icona 1024×1024 da usare con
npx @capacitor/assets generate per generare le icone Android/iOS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rimuove versione duplicata (era nell'header e nella lista)
- Rimuove descrizione ridondante e bottone Chiudi full-width
- Aggiunge icona app (quadrato verde con iniziale B)
- X per chiudere in alto a destra, tap overlay per dismissione
- Righe info in card con bordo, pattern iOS/Android settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- InfoPanel.vue: bottom sheet con nome, versione (da package.json),
autore (Davide Grilli), licenza EUPL v1.2 e link documentazione
- App.vue: bottone info fisso in alto a destra, visibile da tutte
le pagine, con animazione slide-up sul pannello
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MealPlanner:
- Titolo "Piano Pasti" (più breve e da app)
- Sottotitolo "Oggi, mercoledì 25 marzo" con data completa formattata
Converter:
- Layout calcolatrice: input sinistra | swap | risultato destra
- Card unificata con header alimento e footer fattore di resa
- Icona ricerca nell'input, stato iniziale con hint
- Titolo "Convertitore", sottotitolo descrittivo
- Tasto swap per invertire direzione invece del toggle
MealCard:
- Fix emoji pranzo 🌤️ → 🍽️ (rendering universale)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Slash command che attiva il profilo senior frontend/UX designer.
Include checklist di revisione (touch, accessibilità, CSS, Vue 3)
e pattern di riferimento con le variabili CSS e componenti del progetto.
Formato SKILL.md conforme alla documentazione ufficiale Claude Code.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Licenza europea copyleft: chi distribuisce o modifica il software
deve rilasciare il sorgente sotto EUPL o licenza compatibile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- App.vue: root con navigazione tra le tre pagine
- BottomNav.vue: barra navigazione inferiore (Pasti, Converti, Spesa)
- MealPlanner.vue + MealCard.vue: pianificatore settimanale con lista voci per pasto
- Converter.vue: convertitore crudo/cotto con ricerca testuale
- ShoppingList.vue + CheckboxItem.vue: lista spesa con checkbox
- utils/storage.js: wrapper LocalStorage (save/load)
- utils/conversion.js: rawToCooked e cookedToRaw
- data/conversions.json: 14 alimenti con coefficienti di resa
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Aggiunge struttura base del progetto: package.json, vite.config.js,
index.html con viewport mobile, main.js, CSS globale mobile-first
e .gitignore.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Documento di specifiche per BitePlan: meal planner settimanale,
convertitore peso crudo/cotto e lista della spesa.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>