Scrivere un’applicazione in Python e portarla, con la stessa base di codice, su Windows, Linux, macOS, Android, iOS e Web senza costruire separatamente un frontend JavaScript o imparare Dart (linguaggio di programmazione sviluppato da Google su cui si basa Flutter): è la promessa con cui Flet cerca di ritagliarsi uno spazio tra i framework multipiattaforma. Il progetto, nato a giugno 2022, ha appena raggiunto un passaggio importante con Flet 1.0, versione che gli sviluppatori definiscono finalmente adatta anche alla realizzazione di applicazioni destinate alla produzione.
Il traguardo arriva con numeri ormai difficili da liquidare come quelli di un esperimento di nicchia: a metà settembre 2026 il repository supera 16.700 stelle su GitHub, il progetto conta circa 100 contributori e i pacchetti Flet hanno totalizzato oltre 9 milioni di download da PyPI. La community Discord, secondo i dati pubblicati dagli sviluppatori, supera inoltre 6.000 membri. Sono cifre che giustificano l’attenzione riservata a Flet 1.0, soprattutto da chi utilizza Python per strumenti interni, applicazioni desktop, utilità tecniche o interfacce che devono funzionare anche su smartphone.
Flet 1.0 permette di creare l’interfaccia direttamente in Python
L’idea alla base di Flet 1.0 (sito ufficiale) è che lo sviluppatore descriva interfaccia e comportamento attraverso oggetti Python, mentre la parte grafica poggia su Flutter. Non bisogna quindi interpretare Flet come un compilatore che converte magicamente Python in Dart: i due ambienti rimangono distinti e collaborano tramite l’infrastruttura predisposta dal framework.
Un pulsante, un campo di testo, una finestra di dialogo, una barra di navigazione o un layout non richiedono HTML, CSS o JavaScript. Flet espone oltre 150 controlli e servizi e permette di collegare direttamente agli eventi le funzioni Python: la logica applicativa può così convivere con librerie che uno sviluppatore Python già conosce.
Il vantaggio si vede soprattutto nei progetti in cui l’interfaccia serve a rendere utilizzabile codice esistente. Immaginiamo un’applicazione che esegue elaborazioni con pandas, Pillow o NumPy: invece di costruire un frontend separato e poi progettare un’API per collegarlo al backend, Flet consente di mantenere ampia parte del programma nello stesso linguaggio.
Android, iOS, browser e sistemi desktop impongono comunque vincoli differenti su filesystem, processi, librerie native, permessi e distribuzione: Flet prova a nascondere una buona parte di questa complessità.
Dietro l’interfaccia c’è Flutter, non HTML generato da Python
Uno degli aspetti più interessanti dell’architettura è proprio il motore grafico. Flet utilizza Flutter per rappresentare l’interfaccia, mantenendo però in Python il modello con cui lo sviluppatore costruisce controlli e gestisce eventi.
Flet non nasce come un generatore di template HTML e non prova a trasformare ogni controllo Python in un normale componente DOM scritto a mano. La conseguenza è una maggiore uniformità tra desktop e mobile; dall’altra parte, chi sta costruendo un sito tradizionale orientato soprattutto a pagine indicizzabili, markup semantico e integrazione profonda con tecnologie Web native deve valutare attentamente se Flet sia lo strumento corretto.
In pratica, Flet ha molto più senso quando il risultato finale assomiglia a un’applicazione che a un sito editoriale. Dashboard, pannelli amministrativi, utility aziendali, strumenti scientifici, applicazioni per l’elaborazione di dati e client interattivi sono gli esempi più naturali.
Un solo comando per Windows, Linux, macOS, Android, iOS e Web
Il comando flet build rappresenta il punto centrale della distribuzione. Può produrre pacchetti per Windows, macOS e Linux, oltre ad APK o AAB per Android, IPA e applicazioni per il simulatore iOS e build Web.
Il sistema gestisce anche metadati, icone, schermate iniziali, identificatori del pacchetto e diverse opzioni richieste dai negozi di applicazioni.
Sul desktop, il comando flet run avvia il codice Python e apre un client Flutter nativo; hot reload consente di vedere rapidamente le modifiche senza ricostruire ogni volta l’intera applicazione.
La parte Web merita una precisazione perché Flet supporta due modelli distinti: un’applicazione può mantenere Python sul server e inviare gli aggiornamenti dell’interfaccia al browser, oppure eseguire Python direttamente nel browser sfruttando Pyodide e WebAssembly.
Nel secondo caso non occorre mantenere un backend Python dedicato per l’esecuzione della logica applicativa: CPython, compilato per WebAssembly attraverso Pyodide, gira nella scheda del browser. È anche il principio usato da Flet Studio.
La modalità server rimane invece utile quando l’app deve accedere direttamente a database, servizi interni o risorse che non devono essere esposte al client. Qui il browser funziona sostanzialmente come terminale grafico dell’app Python e riceve aggiornamenti in tempo reale.
Flet Studio porta l’intero ambiente di prova nel browser
Con il rilascio della release 1.0, il progetto insiste molto anche su Flet Studio, un editor accessibile dal browser che permette di scrivere, eseguire, salvare e condividere applicazioni senza installare localmente il framework.
Come spiegato in precedenza, Flet Studio utilizza Pyodide e lo esegue localmente nel browser; il backend del servizio gestisce invece funzioni proprie dell’IDE, come account, autenticazione, metadati e archiviazione dei progetti. Studio include anche un agente AI che può contribuire alla creazione del progetto.
Flet offre inoltre un server MCP (Model Context Protocol) pensato per gli assistenti di programmazione: fornisce informazioni legate alla versione delle API utilizzata e strumenti per trovare esempi, icone e opzioni della riga di comando. È una risposta interessante a un problema ormai comune: i modelli generativi tendono a proporre API obsolete quando un framework cambia rapidamente.
Vale la pena considerare Flet al posto di un frontend tradizionale?
Flet 1.0 non rende improvvisamente inutile Flutter, né sostituisce React, Qt, Electron o i framework Web tradizionali. Il confronto ha senso solo partendo dal tipo di applicazione che bisogna costruire.
Se il team possiede già competenze solide in Python, deve realizzare soprattutto interfacce applicative e vuole distribuire rapidamente lo stesso progetto su desktop, mobile e Web, Flet riduce di molto tempistiche e sforzi. La possibilità di portare anche sullo smartphone librerie scientifiche e di analisi dati rende poi il progetto decisamente più interessante rispetto alle prime release del 2022.
Se invece servono controllo minuzioso dell’interfaccia nativa, integrazioni molto specifiche con ciascuna piattaforma o un’applicazione Web fortemente basata sul DOM, il vantaggio può ridursi. Flet permette comunque di creare estensioni Flutter e integrare pacchetti Dart, ma a quel punto parte della semplicità iniziale inevitabilmente scompare.
Il passaggio alla versione 1.0 cambia è però un fatto importante: Flet non è più soltanto una curiosa scorciatoia per mettere una GUI davanti a uno script Python. Runtime incorporato, comunicazione diretta Python-Dart, build multipiattaforma, librerie native per smartphone, test end-to-end e politica di compatibilità mostrano un progetto che punta a sostenere applicazioni molto più articolate.