Skip to content

Lezione 16: Build APK, test e presentazione

  • Compilare l’app in APK per Android
  • Testare l’app su dispositivo reale
  • Preparare la presentazione del progetto
  • Presentare alla classe

APK (Android Package Kit) è il formato di file per installare app su Android. È come un .exe per Windows o un .dmg per macOS.

main.py (codice Python)
flet build apk ← comando magico
MiaApp.apk ← file da installare sul telefono

Per buildare l’APK, Flet usa Buildozer che automaticamente:

  1. Scarica JDK 17 e Android SDK (se non presenti)
  2. Compila il codice Python in un’app Android
  3. Genera il file .apk

  • flet installato (pip install flet)
  • Connessione internet (per scaricare JDK e SDK)
  • Android SDK (scaricato automaticamente da flet build apk se assente)
  • JDK 17 (scaricato automaticamente se assente)
  • Circa 15-30 minuti per la prima build (le successive sono più veloci)

Prima di buildare, verifica che Flet sia aggiornato:

Terminal window
pip install --upgrade flet

Terminal window
# Nella cartella del progetto (dove c'è main.py)
flet build apk

Questo genera un file APK nella cartella build/apk/.

Terminal window
flet build apk --project "MiaApp" --company "Scuola"
Terminal window
# Per dispositivi moderni (arm64)
flet build apk --target-platform android-arm64
# Per tutti i dispositivi
flet build apk --target-platform android-arm64,android-arm

Build Android App Bundle (AAB) per Google Play

Section titled “Build Android App Bundle (AAB) per Google Play”
Terminal window
flet build aab

La build può richiedere tempo. Mentre aspetti:

1. Download JDK 17...
2. Download Android SDK...
3. Configurazione ambiente...
4. Compilazione Python → Android...
5. Generazione APK...
✅ APK creato in build/apk/

Solo la prima è lenta perché scarica JDK e SDK. Le successive sono molto più veloci.


  1. Collega il telefono al PC con cavo USB
  2. Copia il file APK dalla cartella build/apk/ al telefono
  3. Sul telefono, apri il file APK (potrebbe chiedere di abilitare “Installa da origini sconosciute”)
  4. Installa
  1. Carica l’APK su Google Drive, Dropbox, o invialo via email
  2. Sul telefono, scarica il file e aprilo per installare
Terminal window
adb install build/apk/MiaApp.apk

Prima della presentazione, testa queste cose:

  • L’app si avvia senza crash
  • Tutti i bottoni funzionano
  • La navigazione è fluida
  • I dati caricati all’avvio sono corretti
  • Aggiungere/modificare/eliminare elementi funziona
  • Dopo aver chiuso e riaperto l’app, i dati sono ancora lì
  • Non ci sono errori in console
ProblemaSoluzione
L’app si blocca all’avvioControlla carica_dati() — file JSON danneggiato?
I dati non si salvanoControlla il percorso del file e i permessi di scrittura
L’immagine non si vedeUsa percorso assoluto o copia l’immagine nella cartella del progetto
Bottone non fa nullaControlla che on_click punti alla funzione giusta
nonlocal errorAssicurati che la variabile sia definita nella funzione esterna

Struttura della presentazione (5-10 minuti)

Section titled “Struttura della presentazione (5-10 minuti)”
1. TITOLO (30 sec)
Nome app, nome tuo, classe
2. PROBLEMA (1 min)
Che problema risolve la tua app?
Perché l'hai scelta?
3. DEMO LIVE (3-5 min) ← Parte più importante!
Apri l'app sul telefono/emulatore
Mostra le funzionalità principali
Fai vedere che i dati persistono
4. CODICE (1-2 min)
Mostra una parte interessante del codice
Spiega una sfida che hai superato
5. CONCLUSIONE (30 sec)
Cosa hai imparato?
Cosa miglioreresti?
SlideContenuto
1Titolo, nome, classe, foto app
2Descrizione: cosa fa l’app?
3Schermate (screenshot dell’app)
4Dettaglio tecnico: JSON, API, componenti usati
5Sfide incontrate e soluzioni
6Ringraziamenti
  1. Apri l’app PRIMA di iniziare la presentazione (così è già pronta)
  2. Prepara i dati di esempio (non presentare con lista vuota!)
  3. Prova la demo 2-3 volte prima della presentazione
  4. Se usi API, scarica i dati prima (in caso di internet lento)
  5. Piano B: se la demo fallisce, mostra screenshot

CriterioPesoDescrizione
Funzionalità30%L’app fa ciò che doveva fare?
Persistenza15%I dati si salvano e caricano?
UI/UX20%Layout pulito, colori, feedback
Codice15%Codice organizzato, leggibile, commentato
Presentazione20%Demo funzionante, chiarezza, completezza

LezioneArgomento
1Intro Flet, Hello World
2Componenti base
3Layout (Row, Column, Container)
4Eventi e stato
5Form e liste
6Navigazione
7Tabs e Drawer
8Tema e immagini
9Dati locali JSON
10API HTTP
11App Meteo (esercitazione)
12Dialoghi e form avanzati
13FilePicker e timer
14-15Progetto
16Build e presentazione
  • ✅ Programmazione GUI con Flet
  • ✅ Componenti UI e layout
  • ✅ Eventi e interattività
  • ✅ Navigazione multi-screen
  • ✅ Persistenza dati JSON
  • ✅ API HTTP e dati esterni
  • ✅ Build e deploy Android
  • ✅ Gestione progetto completo

🎯 Consegna: progetto completo + presentazione

Section titled “🎯 Consegna: progetto completo + presentazione”

Cosa consegnare:

  1. Codice: cartella del progetto con main.py e dati.json
  2. APK: file .apk generato
  3. Presentazione: slide o README.md
  4. Wireframe: foto del progetto originale su carta (per mostrare l’evoluzione)

Buona presentazione a tutti! 🚀