Contattaci
Lasciaci i tuoi riferimenti, saremo felici di contattarti il prima possibile e organizzare una consulenza gratuita.
6 motivi per scegliere Flutter nel 2024
Tra i numerosi framework per lo sviluppo di app multipiattaforma emersi negli ultimi anni, Flutter si è da subito distinto per gli innegabili vantaggi nella realizzazione di applicazioni solide, scalabili e di grande impatto visivo.
In questo articolo, esploriamo gli aspetti del framework open-source di Google che semplificano il processo di sviluppo, accelerano il time-to-market e favoriscono un'esperienza utente fluida e uniforme su piattaforme e touchpoint diversi, riportando alcuni esempi di applicazioni per il Digital Workplace realizzate in Flutter dal nostro team di sviluppo.
Cos’è Flutter
Flutter è un framework introdotto da Google nel 2018, progettato per la programmazione multipiattaforma utilizzando il linguaggio di programmazione Dart. Consente di sviluppare applicazioni per più piattaforme, tra cui Android, iOS, macOS, Linux e Windows, utilizzando un'unica base di codice – un vantaggio evidente in termini di risparmio di tempo e denaro.
Come sottolineavamo circa un anno fa nel nostro articolo dedicato alle novità di Flutter Forward 2023, tra gli aspetti più interessanti del framework Flutter introdotti nel 2023 ritroviamo:
- Nuovo standard Material 3, introdotto con l’update 3.7 di Flutter;
- Layout Adattivo, ideale per creare applicazioni responsive adattabili a schermi di diverse dimensioni, grazie anche al widget LayoutBuilder;
- Impeller, nuovo motore grafico che segue Skia;
- FFIgen e JNIgen, due strumenti di code generation che possono essere utilizzati per generare automaticamente MethodChannels per comunicare con il sistema operativo, rispettivamente iOS e Android;
- Supporto 3D per le applicazioni Flutter utilizzando i Widget Scene e Node;
- Supporto a Web Assembly per lo sviluppo di applicazioni estremamente performanti e con basse latenze simili al nativo, e RISC-V per lo sviluppo di applicativi per device e sistemi IoT;
- Element Embedding, feature che rende possibile integrare un’applicazione Flutter perfettamente funzionante su qualsiasi pagina web.
Queste e altre novità hanno contribuito a rendere Flutter uno strumento sempre più versatile per la creazione di app e web app.
Flutter è ancora uno strumento valido nel 2024?
Avendo superato da poco i 5 anni di età, è corretto però chiedersi se Flutter sia ancora uno strumento valido nel 2024.
La risposta è sì! Nel 2024, Flutter continua a prosperare, consolidando la sua posizione dominante nel panorama degli strumenti di programmazione disponibili: come riportato recentemente da Github nel report “The State of Open Source”, Flutter è al terzo posto per numero di collaboratori, il che indica non solo un numero crescente di pacchetti, ma garantisce anche un rapido sviluppo del framework.
Oltre ai continui miglioramenti in termini di prestazioni, stabilità e gestione della memoria apportati dal team di Flutter negli ultimi due anni, gli sviluppatori hanno ora la possibilità di creare software per macOS, Windows e Linux. Questa versatilità incoraggia ulteriormente l'uso continuo di questa tecnologia, rendendola adattabile a piattaforme molto diverse.
Material 3 è diventato lo stile predefinito per i nuovi progetti, dando agli sviluppatori l'accesso a componenti bellissimi pronti da usare nei progetti. La community continua a stupire per la qualità delle soluzioni, con quasi 30.000 pacchetti disponibili che possono essere utilizzati in qualsiasi momento, 73 dei quali sono stati riconosciuti da Google come pacchetti che ogni sviluppatore dovrebbe prendere in considerazione per la creazione di applicazioni.
Flutter vs React Native 2024
Nell’ambito delle piattaforme open-source per lo sviluppo di applicazioni mobile multipiattaforma, Flutter non è naturalmente l’unica opzione. Una delle più note e utilizzate è React Native.
Iniziando dalle similitudini, React Native e Flutter sono entrambi framework open-source per lo sviluppo di app e utilizzano funzionalità comuni come l'”hot reload” - o “live reload” in React Native. Questa funzionalità consente agli sviluppatori di vedere immediatamente le modifiche apportate al codice senza dover rinnovare l'applicazione, velocizzando lo sviluppo e la correzione dei bug.
Sia React Native che Flutter supportano il concetto di un'unica base di codice per più piattaforme mobili - Android e iOS – che si traduce nella possibilità di sviluppare applicazioni esattamente simili per i diversi sistemi operativi.
Per quanto riguarda la popolarità di Flutter e React Native, entrambi i framework hanno dato vita ad applicazioni molto note: Flutter è alla base del successo di applicativi come Google Ads, Google Earth, Google Wallet e Alibaba, React Native ha dato vita alle app di Instagram, Facebook, Pinterest e molte altre.
1. Facilità di apprendimento
Dal punto di vista di chi sviluppa, React Native è più facile da imparare perché utilizza JavaScript come linguaggio di programmazione. JavaScript esiste da anni e la maggior parte degli sviluppatori lo conosce bene.
Flutter invece utilizza Dart, che è relativamente più recente, e meno conosciuto. Questo non significa che Dart renda Flutter un framework difficile: Dart condivide infatti molti paradigmi con linguaggi ben più conosciuti come Java e lo stesso JavaScript garantendo quindi una curva di apprendimento per questo linguaggio relativamente gentile.
2. Supporto della comunità
Quando si lavora allo sviluppo multipiattaforma, il supporto di una comunità di sviluppo estesa può essere prezioso per molti sviluppatori. Considerando che React Native è stato lanciato diversi anni prima di Flutter, ha dalla sua una vasta comunità online che offre supporto per la risoluzione di problemi e difficoltà durante lo sviluppo.
Detto questo, Flutter, per il suo ruolo di astro nascente, ha una comunità di sviluppatori in continua crescita, che nel 2024 ha superato ampiamente i 500.000 utilizzatori mensili. Al momento in cui scriviamo (febbraio 2024) Flutter ha ottenuto oltre 160mila stelle su Github, a fronte delle 115mila stelle di React Native.
3. Prestazioni
Le prestazioni sono il fattore più cruciale da considerare nella scelta di ogni framework.
Parlando di prestazioni di React Native vs Flutter, React Native utilizza ponti JavaScript o livelli JavaScript per eseguire applicazioni ibride per diverse piattaforme mobili. Con la nuova architettura viene usata la JavaScript Interface o JSI che consente di salvare il puntamento di memoria degli oggetti C++ così da rendere la comunicazione tra l'engine di React Native e quello nativo sostanzialmente immediato, un sistema praticamente identico a Flutter.
Si può dire però che Flutter per le stesse operazioni si avvicina spaventosamente al nativo ed utilizza una quantità di CPU, RAM e batteria significativamente inferiore rispetto a React Native pur mantenendo un ottimo framerate.
Flutter compila infatti il codice nativo, a differenza di React Native, che fa continuamente riferimento al livello JavaScript per la compilazione. Questo è uno degli aspetti che rendono Flutter superiore non solo a React Native, ma anche ad altri framework per lo sviluppo di applicazioni multipiattaforma come Kotlin Multiplatform o Ionic.
4. Widget e librerie di terze parti
Uno degli aspetti di maggiore differenziazione tra i due framework è il livello di dipendenza dalle librerie di terze parti. Spesso le librerie per React Native sono di bassa qualità o non più mantenute, portando quindi chi sviluppa a doversi adattare a qualcosa di inaffidabile
Google ha sviluppato Flutter per contenere una serie di widget e librerie che consentono di rendere identiche le interfacce utente sia per Android che per iOS. React Native, invece, richiede agli sviluppatori di fare ripetutamente riferimento a librerie di terze parti. Questa differenza velocizza notevolmente il lavoro di sviluppo per gli sviluppatori Flutter.
Inoltre, ciò influenza anche il modo in cui vengono eseguiti i test durante lo sviluppo di applicazioni con i due framework: il supporto per i test dei widget in Flutter rende il compito più facile e veloce per gli sviluppatori Flutter, mentre gli sviluppatori React Native devono fare affidamento a strumenti di terze parti per i test.
5. Documentazione
Considerando che Flutter ha l'appoggio di Google, ci si può aspettare che la documentazione sia molto più completa – e in effetti lo è. I contenuti offerti dal framework Flutter sono più informativi e dettagliati e possono essere una grande risorsa di riferimento per chi si occupa di sviluppo multipiattaforma.
Sebbene React Native abbia comunque una buona documentazione, i contenuti tendono ad essere più generici e meno mirati. Inoltre, c'è una sorta di disorganizzazione nel modo in cui le guide allo sviluppo di applicazioni React Native vengono offerte agli sviluppatori.
6. Compatibilità con dispositivi meno recenti
Uno dei compiti degli sviluppatori è quello di realizzare applicativi che possano essere utilizzati anche da dispositivi non recenti, per non renderli obsoleti. In questo senso Flutter è molto utile perché, nonostante sia più pesante di un’app nativa, consente di ottimizzare le app anche per dispositivi più vecchi, che costituiscono comunque una fetta importante dei dispositivi mobile attualmente utilizzati dagli utenti.
Flutter per le app di digital workplace
Per queste ragioni, nella nostra Unit Digital & App Innovation abbiamo scelto di lavorare con la tecnologia Flutter perché ci permette di sviluppare app cross-platform con performance molto vicine ai linguaggi nativi.
In particolare, tra i progetti realizzati con Flutter ci sono app per il digital workplace, ovvero per la digitalizzazione degli ambienti e dei processi di lavoro: dalla gestione degli ambienti di coworking alla smart automation.
Per esempio, nella realizzazione della nostra app interna di prenotazione delle postazioni di lavoro Orbyta Booking, abbiamo scelto di utilizzare il framework Flutter per realizzare un’app performante e con la stessa User Interface sia sui dispositivi Android che sui dispositivi Apple aziendali e personali utilizzati dagli Orbyters: si voleva infatti raggiungere una UI identica in entrambi i sistemi. Inoltre, l'integrazione con Firebase è stata in un primo prototipo immediata. Infine, il tempo di sviluppo è stato relativamente basso considerando che la maggior parte dei componenti erano già disponibili "out of the box" e che è stato solo necessario stilizzarli.
Un altro caso di applicazione realizzata dal nostro team interamente in Flutter è una app di domotica aziendale che ha lo scopo di monitorare gli spazi aziendali con le seguenti caratteristiche:
- Integrazione con due SDK per il controllo accessi nella struttura;
- Integrazione con sistemi NFC per la comunicazione con sensoristica presente negli ambienti di lavoro.