CONTATTACI

Blog

Cos’è Flutter e perché impararlo

Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase

fonte: flutter.dev

Cos’è Flutter?

Flutter è un framework open-source ideato direttamente da Google per rispondere alla continua evoluzione dei dispositivi mobile. L’obiettivo è quello di utilizzare una singola codebase per la programmazione informatica di app cross platform che girano in maniera nativa su dispositivi Android e sui dispositivi iOS e, inoltre, con le ultime versioni – ormai stabili – anche Web e Desktop. 

Le prestazioni native di Flutter derivano da uno substrato scritto in C/C++, o meglio chiamato Flutter Engine, e uno strato scritto in Dart.

L’architettura di Flutter

La sua architettura può essere riassunta con la seguente immagine:

Fonte: Architettura/flutter.dev

I livelli di Flutter

Conosciamo meglio i 3 livelli:

  • Embedder: fornisce un punto di ingresso al sistema operativo sottostante. Questo livello è scritto nel linguaggio di programmazione appropriato per la piattaforma su cui gira, attualmente Java e C++ per Android, Objective-C/Objective-C++ per iOS e macOS, e C++ per Windows e Linux; in altre parole consente alle app scritte in Flutter di poter girare su qualsiasi sistema operativo;
  • Flutter Engine: è il core di Flutter, scritto interamente in C/C++, si occupa di fornire supporto a basso livello per il rendering dei widget dell’app Flutter, utilizzando la libreria Skia per le animazioni 2D. L’Engine è esposto al primo livello (Framework) attraverso la libreria dart:iu che espone le funzioni primitive di basso livello come quelle per il text-rendering, la gestione I/O;
  • Dart: è un linguaggio ad oggetti strutturato e flessibile creato da Google, lavora a stretto contatto con il Flutter Engine con il quale è in grado di fornire la funzione di “Hot-Reload”, cioè ogni modifica del codice viene iniettata immediatamente nell’applicazione in modo da visualizzare all’istante i cambiamenti senza un riavvio completo.

Esempio di Hot-Reload

Flutter è stato lanciato sul mercato nel Maggio 2017 ma la prima versione stabile risale a Dicembre 2018. Da quel momento non gli è servito molto tempo per aumentare la sua popolarità e il suo utilizzo da parte del pubblico. Ad oggi (Dicembre 2021) Flutter vanta ben 133k Stelle su github a fronte di quasi 100k di react-native.

Questi valori sono intuibili anche su Google trend nell’immagine sottostante con altri suoi competitors.

Perché usare Flutter?

Dopo aver descritto brevemente alcuni particolari tecnici del funzionamento di Flutter e aver fatto notare di quanto la sua popolarità sia in netto aumento rispetto al suo più diretto competitor, viene naturale chiedersi: perchè usarlo? Qual è, realmente, il suo valore aggiunto? 

Sicuramente le features di Flutter potranno spingerti ad adottarlo, abbandonando completamente i vecchi tools. Vediamole nel dettaglio:

  1. Single Codebase
  2. Hot-Reload e velocità di sviluppo
  3. Ecosistema ricco di Widget
  4. Dart
  5. Community
  6. MVP
  7. Google

1# Single Codebase

Come già ampiamente detto, Flutter garantisce lo sviluppo di un’applicazione sfruttando una singola base di codice. In parole povere, con lo stesso codice con cui si crea un’applicazione iOS si può generare un applicazione Android, Web o Desktop. Questa feature è stabile dal rilascio della versione 2.0.

2# Hot-Reload e velocità di sviluppo

Questa sua caratteristica permette ai web developer di poter osservare, istantaneamente, le modifiche effettuate sul codice, garantendo maggiori performance di sviluppo e tempi più snelli anche di debugging. 

3# Ecosistema ricco di Widget

Possiamo descrivere Flutter come un intero widget.

Tutto al suo interno è un widget e i widget possono essere sia classi che funzioni: questo permette, infatti, all’applicazione dei principi della programmazione ad oggetti nello sviluppo della UI. 

Ogni widget è customizzabile a proprio piacimento, ad esempio si possono wrappare dei widget dentro altri in modo da garantire specifiche funzioni su diverse risoluzioni dello schermo. 

Flutter offre una miriade di UI widget che rispettano tutti gli attuali princìpi chiave del design di applicativi sia web che mobile, offrendo sempre ottime performance.

Il suo SDK è in grado di garantire tutto questo in quanto è l’unico che non utilizza alcun Bridge col linguaggio javascript per la creazione dei componenti, ma lavora facendo comunicare direttamente il core con il dispositivo aumentandone drasticamente le prestazioni. 

I widget in Flutter sono organizzati attraverso un albero, in cui ognuno di loro può contenerne altri e così via. Sarà il programmatore informatico a dover fare attenzione all’organizzazione dei widget nella propria App, cercando di ingegnerizzare al meglio lo sviluppo.

Esempio di un widget tree in Flutter:

4# Dart

Dart è un linguaggio creato da Google; include una tipizzazione forte e una debole e offre una ricca libreria standard, un garbage collection, generics e async-await. Dart è molto simile a Java ma per molte funzionalità si ispira ad altri linguaggi di programmazione

5# Community

Negli ultimi anni Flutter è cresciuto tantissimo di popolarità, meritandosi un posto nell’olimpo dei Framework per sviluppo cross platform. Questo ha favorito la crescita di una sempre più forte community attorno ad esso che contribuisce costantemente al miglioramento del framework, rendendo molto semplice la risoluzione di problematiche comuni. 

6# MVP

Flutter può essere un fattore chiave per tutte quelle startup che devono creare un MVP. 

Un MVP creato con Flutter è compatibile con diversi dispositivi da iOS ad Android, per finire a Desktop e Web. Sicuramente, questo è un fattore attrattivo per molti investitori, potendo facilitarli nella ricerca e prova del progetto di business creato.

7# Google

Il supporto a lungo termine di Google è una garanzia dell’affidabilità di Flutter nel futuro. Il team preposto al suo mantenimento apporta costantemente migliorie al Framework. Tieni sempre sott’occhio la Roadmap ufficiale che trovate a questo link.

I contro di Flutter

Ma non è tutto oro quel che luccica! Dopo aver parlato ampiamente delle feature positive di Flutter, vorremmo esporre anche alcuni dei suoi aspetti negativi.

Innanzitutto il Bundle Size dell’App finale è, sicuramente, molto più grande rispetto a quella di un'App nativa. Al momento un'App minima generata con Flutter, pesa almeno 4.3mb a fronte dei circa 500kb di un'App Nativa sviluppata con Java o Kotlin; inoltre essendo ancora costantemente in sviluppo, alcune funzioni o librerie potrebbero essere non ancora totalmente disponibili o compatibili. Come anche il supporto 3D, al momento Flutter non supporta questa feature, tuttavia è stata annunciata nella Roadmap futura.

La popolarità di Flutter è in costante aumento e non accenna a fermarsi. Ormai sempre più aziende lo adottano nei propri progetti, e se il presente sembra ancora React-native il futuro sarà sicuramente Flutter. Sul sito ufficiale di Flutter è possibile vedere alcune delle Top Apps create da aziende del calibro di Alibaba, Google, Uber, eBay e Airbnb.

Primi passi con Flutter

Per iniziare con Flutter ti consigliamo di seguire dettagliatamente la documentazione ufficiale e di controllare bene i requisiti del tuo pc, nello specifico:

Inoltre, grazie alla community estremamente attiva di questo fantastico Framework, insieme alla sezione Learn della documentazione ufficiale, è possibile imparare un sacco di nozioni, cercando tra video e articoli che ti guiderà nello sviluppo della vostra prima App!

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…

Seguici su Facebook

Vuoi entrare nel mondo della programmazione?

Scopri di più sui nostri corsi!

Chiamaci al numero verde

Contattaci su WhatsApp

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.