Vai al contenuto principale
Categorie articolo: Code

MIT App Inventor: un ponte naturale da Scratch verso la programmazione reale

14 Novembre 2025 - 6 minuti di lettura

Per i bambini incuriositi dal mondo della programmazione, Scratch è un ottimo punto di partenza: blocchi colorati, sprite animati, logica visuale, storytelling e giochi — tutto a portata di drag and drop. È divertente, intuitivo e perfetto per comprendere i concetti logici fondamentali (se vi interessa approfondire, leggete il mio articolo “Scratch & Coding – Imparare a programmare divertendosi“).

Con il passare degli anni però, il bambino cresce e matura, e inevitabilmente cambiano i suoi interessi. Rimanendo in tema, dal semplice giochino o animazione, si desidera creare qualcosa di più “reale”: una applicazione per smartphone, che magari interagisce con il gps e altri sensori e legge/salva/modifica dei dati in un database ecc.
Qui entra in gioco MIT App Inventor, più comunemente noto App Inventor, una piattaforma di sviluppo a blocchi (proprio come Scratch), ideale per chi desidera avvicinarsi al mondo dello sviluppo di applicazioni mobile per Android (e ora anche per iOS).

In questo articolo vedremo cosa hanno in comune Scratch e MIT App Inventor, che legami ha con la programmazione, quali sono le sue peculiarità e infine un semplice tutorial per smartphone Android.

Similitudini tra Scratch e MIT App Inventor

App Inventor e Scratch condividono diversi elementi chiave, riassunti di seguito:

  • Interfaccia a blocchi e drag-and-drop: una curva di apprendimento graduale, perfetta per chi ha già familiarità con Scratch.
  • Logica basata su eventi: i blocchi rappresentano azioni (come premere un pulsante o toccare lo schermo) e le relative reazioni (modificare un testo, navigare tra schermate, ecc.).
  • Feedback immediato: in Scratch si visualizzano subito le animazioni, mentre in App Inventor è possibile testare l’applicazione in tempo reale sul dispositivo tramite MIT AI2 Companion.

Questi ambienti di sviluppo si basano sul paradigma Object-Oriented Programming (OOP), di cui riassumiamo i concetti fondamentali nel successivo paragrafo.

Concetti base della programmazione a oggetti

  • Oggetti: componenti dell’applicazione che interagiscono tra loro.
  • Attributi: ogni oggetto viene caratterizzato specificandone alcune caratteristiche (per esempio, una Persona ha come attributi: nome, età e altezza).
  • Metodi: azioni che un oggetto può compiere (es. saltare, correre, parlare).
  • Messaggi tra oggetti: gli oggetti possono comunicare tra loro, scambiandosi informazioni.

Esempio: l’oggetto “bambino” ha attributi come nome, altezza, sesso e età, e metodi come saltare, ridere o disegnare. Può interagire con altri bambini scambiandosi messaggi.

Ma come si presenta MIT App Inventor? Scopriamolo insieme.

L’ambiente di sviluppo MIT App Inventor

Designer: costruire l’interfaccia

La modalità Designer permette di definire come apparirà l’applicazione sullo smartphone. È suddivisa in cinque sezioni principali:

  • Palette: contiene tutti i componenti disponibili (Button, CheckBox, Label, Camera, Sound ecc.) suddivisi per categorie. Alcuni componenti sono “non visibili”, ma agiscono dietro le quinte.

  • Viewer: riproduce la schermata dello smartphone. Al suo interno si trascinano, tramite drag and drop, i componenti dalla Palette.

  • Components: riepiloga tutti gli oggetti inseriti nella sezione Viewer, mostrando eventuali relazioni di contenimento.

  • Media: consente di caricare immagini e file audio da usare nell’applicazione.

  • Properties: permette di configurare gli attributi di ogni componente, come testo iniziale, colori, dimensioni.

In Designer si definiscono quindi oggetti, disposizione, aspetto e valori iniziali. L’applicazione rimane però ancora statica: serve passare alla modalità Blocks per darle vita.

Blocks: il cervello dell’applicazione

In Blocks si definisce la logica dell’app senza scrivere codice. I blocchi colorati si incastrano come pezzi di un puzzle, rendendo la programmazione intuitiva e minimizzando errori di sintassi che altrimenti si avrebbero scrivendo a due mani il codice.

Tipi di blocchi

  • Control: tutto ciò utile a definire il flusso logico (if/else, cicli).
  • Logic: per utilizzare valori true/false, operatori logici.
  • Math: qui si trovano calcoli, numeri casuali, funzioni matematiche.
  • Text: per la gestione delle stringhe.
  • List e Dictionaries: gestione di collezioni e associazioni chiave-valore.
  • Colors: scelta e personalizzazione dei colori.
  • Variables: salvare e riutilizzare valori.
  • Procedures: blocchi riutilizzabili simili alle funzioni.

Blocchi dei componenti

Ogni volta che si aggiunge un componente in Designer, compaiono automaticamente i suoi blocchi:

  • Eventi: cosa succede quando l’utente interagisce (per esempio, il clic su un pulsante).
  • Azioni: indicano cosa deve fare il componente (es. cambiare testo).
  • Proprietà: leggono o modificano attributi del componente (es. colore, testo visualizzato).

Grazie a questi blocchi, l’applicazione prende vita: pulsanti che rispondono, testi che cambiano, sensori letti, dati salvati o inviati a un server. In pratica, è qui che l’idea diventa app funzionante.

MIT App Inventor: le estensioni

Le estensioni sono dei componenti aggiuntivi creati da terzi o dalla comunità di App Inventor che permettono di estendere le funzionalità della app oltre quelle offerte dai componenti standard.

A cosa servono

Alcune funzionalità dello smartphone non sono incluse di default, come per esempio:

  • l’accessione/spegnimento della torcia (flashlight);
  • il controllo del Bluetooth;
  • l’accesso a sensori particolari;
  • l’interazione con servizi online specifici

Le estensioni consentono di aggiungere queste funzionalità senza scrivere codice nativo complesso.

Come si usano

Per utilizzare le estensioni nel progetto, bastano tre semplici azioni:

  1. Scaricare il file dell’estensione (.aix).
  2. Dalla sezione Designer di App Inventor, cliccare “Import extension” e seleziona il file .aix.
  3. Utilizzare l’estensione come qualsiasi altro componente.

Un esempio pratico: la funzionalità “torcia”

Per utilizzare la torcia si deve usare l’estensione TaifunFlashlight, perché il componente Camera standard non supporta questa funzione. Grazie a questa estensione è possibile utilizzare i blocchi come “Accendi” e “Spegni” proprio come se la torcia fosse un componente standard.

MIT App Inventor: un piccolo semplice tutorial per Android

Ora che abbiamo capito come è fatto l’ambiente di sviluppo di App Inventor, vediamo un semplice tutorial, per Android, che porterà alla creazione di un pulsante per accendere e spegnere la torcia del vostro smartphone tramite l’utilizzo dell’estensione TaifunFlashlight.

  1. Collegarsi al sito MIT App Inventor 2 e selezionare l’account gmail con il quale accedere.
  2. Dopo il primo login, cliccare su “Set up and connect an Android device” e poi su Continue: l’ambiente di sviluppo è già disponibile.
  3. Scaricare l’app MIT AI2 Companion da Google Play. Prima di proseguire, assicurarsi che computer e smartphone siano sulla stessa rete Wi-Fi.
  4. In App Inventor, andare nella sezione Designer.
  5. Importare nei media i due pulsanti che saranno utilizzati per accendere e spegnere la torcia.
  6. Da layout, aggiungere VerticalArrangement (allineamento verticale) e impostare:
    1. sfondo nero;
    2. AlignHorizontal e AlignVertical con valore center;
    3. Height – With con Fill Parent.
  7. Aggiungere un Notifier (notifica).
  8. Inserire un pulsante, Button, sullo schermo:
    1. trascinare il pulsante all’interno di VertialArrangement (dovrebbe apparire  al centro dello schermo);
    2. assegnare al pulsante l’immagine del pulsante spento (quella rossa),
  9. Recuperare il componente dell’estensione TaifunFlashlight.

Completati questi passaggi, dovreste ottenere un risultato simile a questo in figura.

Una volta posizionati tutti gli elementi sullo screen della sezione Designer, si può iniziare a “scrivere” il codice.

Il codice

Spostarsi nella sezione Blocks e “scrivere” il codice.

Conclusione

MIT App Inventor rappresenta un ponte naturale tra Scratch e la programmazione reale: mantiene sì la semplicità della programmazione utilizzando i blocchi introducendo però concetti avanzati della programmazione a oggetti, dell’interazione con dispositivi e della gestione dati.
Per gli studenti e chi in generale desidera approcciare al mondo dello sviluppo software, rappresenta un primo passo concreto verso lo sviluppo di applicazioni mobile, con la possibilità di evolvere poi verso linguaggi testuali come Java, Kotlin o Python.

Articolo scritto da