Lo scorso mese abbiamo spiegato perché in azienda nei nostri progetti e prodotti abbiamo scelto ed utilizziamo quotidianamente il framework Vue.js. Per le applicazioni mobile destinate ad un utilizzo multipiattaforma, tra le più richieste dalle aziende che devono sviluppare un’app, il framework che nei nostri uffici è diventato ormai standard è Flutter.
La realizzazione di app iOS e Android native separate è un processo costoso in termini sia di sviluppo sia di manutenzione. Flutter offre un modo rapido per creare app visivamente accattivanti per sistemi operativi mobili, desktop e Web da una singola base di codice.
Inoltre Flutter è sviluppato e aggiornato attivamente da Google ed è molto popolare fra la community mondiale degli sviluppatori.
Quali sono i motivi per cui abbiamo scelto Flutter?
Innanzitutto il multipiattaforma di alta qualità (animazioni fluide, elementi dell’interfaccia utente nativi senza rallentamenti), conveniente dal punto di vista dello sviluppo non solo perché permette di sviluppare una sola volta l’applicazione invece di due ma anche perché permette di avere meno problemi nell’adattare l’app a ciascuna delle piattaforme. La maggior parte dei framework ha queste caratteristiche ma soltanto nel contesto di applicazioni semplici. I veri problemi iniziano quando le funzioni aumentano e l’app inevitabilmente si complica (cosa che accade per la maggior parte dei prodotti durante la fase di sviluppo).
Le performance di utilizzo simili a quelle delle app native fanno sì che non vi siano in seguito errori di interpretazione durante l’esecuzione. Un’applicazione Flutter sarà in definitiva indistinguibile dall’app nativa, poiché non si basa su alcuna rappresentazione o interpretazione intermedia del codice, a differenza della maggior parte degli altri framework multipiattaforma.
Allo sviluppatore Flutter è concessa una assoluta libertà nella creazione di un’interfaccia utente indipendentemente dalla piattaforma. Questo perché il framework utilizza il proprio motore di rendering per disegnare i widget. Per le aziende che vogliono o devono utilizzare Material Design per Android e Human Interface per iOS Flutter è la soluzione più adatta in quanto è dotato di pacchetti che contengono una serie di widget personalizzati per entrambi i sistemi operativi.
Inoltre Flutter permette di implementare in modo semplice funzionalità del sistema operativo avanzate come coordinate GPS, dati dei sensori, gestione autorizzazioni, Bluetooth, credenziali e altre funzionalità in plug-in pronti per l’uso supportati da Google.
In aggiunta, se la app che progettate di sviluppare fa affidamento su una funzionalità a livello di sistema operativo non disponibile come plug-in, Flutter può stabilire la comunicazione tra il suo linguaggio di programmazione Dart e il codice nativo utilizzando i canali della piattaforma.
In poche parole si può scrivere all’interno di un app Flutter anche in Java, Kotlin o Objective C.
Data la sua origine e il suo posizionamento all’interno dell’universo dei servizi Google, si possono utilizzare praticamente tutti i vantaggi di Firebase nello sviluppo di app Flutter, come si farebbe con uno sviluppo nativo. Inoltre, Flutter consente la creazione di app reattive e i plug-in Firebase offrono flussi reattivi per lavorare con i dati. Ciò consentirà di integrare rapidamente determinate soluzioni nelle applicazioni Flutter.
Nello sviluppo di Flutter, viene utilizzato il linguaggio di programmazione Dart. Anche Dart è uno dei linguaggi di programmazione di Google creato nell’ottobre 2011 ed è migliorato notevolmente negli ultimi anni. Tipizzato staticamente, consente di scrivere un codice molto più strutturato, il che significa che si possono creare applicazioni e strutture gerarchiche molto complesse.
Per completare la suite di vantaggi di Flutter non si può non citare la funzione di hot reload che aiuta a sperimentare rapidamente e facilmente, creare interfacce utente, aggiungere funzionalità e correggere bug più velocemente. Fornisce agli sviluppatori un feedback in meno di 2-3 secondi dalla modifica del codice sorgente senza ripristinare lo stato dell’applicazione, è quindi possibile risparmiare dal 20 al 50% in termini di tempo, che può essere speso per lo sviluppo di altre funzioni utili.
Ma cosa ne pensano i nostri sviluppatori?
La maggior parte evidenzia i seguenti vantaggi:
- è comodo per la presenza di widget e componenti grafici e logici già creati e messi a disposizione da Google, pronti per essere utilizzati con un design accattivante
- è facile da imparare, soprattutto per chi già conosce linguaggi di programmazione come CSharp, Java e TypeScript, sarà facile passare a Dart e iniziare a usarlo subito.
- gestisce la renderizzazione per pixel e ha un’ottima responsività, permette di adattare la visualizzazione della propria app su tutti gli schermi dei dispositivi.
- ha una community di sviluppatori molto attiva e permette di trovare soluzioni ai problemi o bug in maniera semplice ed intuitiva leggendo lo stacktrace in console
TL;DR (Too Long Didn’t Read)
Ti consigliamo di usare Flutter se cerchi:
- un framework multipiattaforma e di altà qualità;
- performance realmente paragonabili ad app native;
- assoluta libertà nella creazione dell’interfaccia;
- un modo per implementare semplicemente funzionalità del sistema operativo avanzate;
- un framework che permetta di implementare in modo semplice e veloce Firebase
- un feedback istantaneo delle modifiche apportate al codice