delete

Contattaci

back to resources

6 motivi per scegliere Flutter nel 2024

Flutter
App Development
Google
React Native
data
20/3/2024
data progetto
autore
Francesco Vallone
cliente
partnership
url
No items found.

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.

Risultati

resources

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

Prompt

Design

AI Generativa

AI Designer

Le nuove linee guida per la sicurezza delle password aziendali

Le nuove linee guida per la sicurezza delle password aziendali

Password aziendali

Linee guida Garante Privacy

Garante Privacy

GDPR

6 motivi per scegliere Flutter nel 2024

6 motivi per scegliere Flutter nel 2024

App Development

Google

React Native

AI, sistemi esperti e rappresentazione della conoscenza

AI, sistemi esperti e rappresentazione della conoscenza

Sistemi esperti

Rappresentazione della conoscenza

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

LIS2SPEECH

Traduzione LIS

User Experience Design tra accessibilità e inclusività

User Experience Design tra accessibilità e inclusività

User Experience

Accessibilità

Inclusività

Assitech.Net entra nella galassia Orbyta Technologies

Assitech.Net entra nella galassia Orbyta Technologies

Orbyta Technologies

Orbyta Group

Acquisizione

News

Programmazione Funzionale Java

Programmazione Funzionale Java

Functional Programming

Java

Software Development

Reactive Programming: parallelizzare con Project Reactor

Reactive Programming: parallelizzare con Project Reactor

Programmazione Reattiva

Reactive Programming

Project Reactor

Piattaforme E-commerce Wholesale per il settore B2B

Piattaforme E-commerce Wholesale per il settore B2B

Wholesale

B2B

Antipattern nello sviluppo software: altri errori da evitare

Antipattern nello sviluppo software: altri errori da evitare

Software Development

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Software Development

App tattiche di supporto alla gestione dei progetti reiterativi

App tattiche di supporto alla gestione dei progetti reiterativi

App Development

Power Platform

Low Code

DevOps

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Microsoft

Low-code

Power Platform

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Jupiter

Python

Data Analysis

Data Visualization

Come utilizzare Matplotlib per la Data Visualization in Python

Come utilizzare Matplotlib per la Data Visualization in Python

Python

Data Visualization

Data Science

Data Analysis

Introduzione alla libreria Dash per Python

Introduzione alla libreria Dash per Python

Python

Data Science

Data Visualization

Data Analysis

Prime Video passa al monolite: ma allora serverless è inutile? 

Prime Video passa al monolite: ma allora serverless è inutile? 

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Power Apps Tutorial – Case Study: come costruire una business app da zero

Power Apps Tutorial – Case Study: come costruire una business app da zero

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Power Apps Basics: interfacce, implementazione & vantaggi

Power Apps Basics: interfacce, implementazione & vantaggi

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Introduzione a Serverless: non solo Lambda Function

Introduzione a Serverless: non solo Lambda Function

Metaverso: siamo pronti a cogliere l’opportunità?

Metaverso: siamo pronti a cogliere l’opportunità?

Recap Flutter Forward 2023: le 7 novità più interessanti

Recap Flutter Forward 2023: le 7 novità più interessanti

Let's Redux React to a Game

Let's Redux React to a Game

Introduzione a PowerShell

Introduzione a PowerShell

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

NFT World: il fenomeno NFT tra metaverso, business e GameFi

NFT World: il fenomeno NFT tra metaverso, business e GameFi

Quick Escape Room

Quick Escape Room

Orbyta Invaders Ignition

Orbyta Invaders Ignition

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

development

design

metaverse

brand identity

Database a grafo in SQL Server

Database a grafo in SQL Server

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Teoria dei giochi: Propagazione delle strategie

Teoria dei giochi: Propagazione delle strategie

The chosen one: .NET 5

The chosen one: .NET 5

Network Science e Social Network Analysis

Network Science e Social Network Analysis

Isolation levels on SSMS

Isolation levels on SSMS

Teoria dei Grafi

Teoria dei Grafi

Creare un podcast in automatico a partire da audio vocali e musica

Creare un podcast in automatico a partire da audio vocali e musica

Teoria dei Giochi

Teoria dei Giochi

Recommender systems: principali metodologie degli algoritmi di suggerimento

Recommender systems: principali metodologie degli algoritmi di suggerimento

Introduction to Quantum Computing and Qiskit

Introduction to Quantum Computing and Qiskit

System Versioned Tables

System Versioned Tables

Vim o non Vim

Vim o non Vim

I vantaggi di un Message Broker

I vantaggi di un Message Broker

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

Protezione dei Web Services

Protezione dei Web Services

need more info?

contattaci