
Versione Flutter 3.24
Abbiamo già parlato in precedente delle release del framework Flutter di casa Google. Come ad esempio per la versione Flutter 3.22 .
Di seguito invece andiamo a parlare della Versione Flutter 3.24 .
Tuffiamoci immediatamente nella recentissima Versione Flutter 3.24! La Versione Flutter 3.24 è ricca di nuove entusiasmanti funzionalità e miglioramenti per migliorare la nostra esperienza di sviluppo app. Questa versione evidenzia l’anteprima di Flutter GPU, che abilita grafica avanzata e scene 3D direttamente in Flutter. Le app Web possono ora incorporare più viste Flutter, migliorando la versatilità delle app. E infine, troviamo il supporto per la monetizzazione degli annunci video per aiutarti a massimizzare i ricavi.
Negli ultimi mesi, la comunità Flutter è stata incredibilmente attiva, con 852 commit del framework e 615 commit del motore. Si sono aggiunti in oltre 49 nuovi collaboratori che hanno contribuito a rendere possibile questa release. La passione è ciò che spinge tutta la community Flutter nel proseguire avanti.
Di seguito raccontiamo in modo dettagliato tutte le nuove funzionalità e i miglioramenti che la community di Flutter ha apportato a questa ultima versione.
Struttura Flutter – Versione Flutter 3.24
Nuove Slivers
Questa versione aggiunge nuovi frammenti che possono essere composti insieme per comportamenti dinamici della barra delle applicazioni:
- PinnedHeaderSliver
- SliverResizingHeader
Possiamo usare queste nuove sliver per creare intestazioni che fluttuano, rimangono bloccate o si ridimensionano mentre l’utente scorre. Queste nuove sliver sono simili alle sliver esistenti SliverPersistentHeader, SliverAppBarma hanno API più semplici che possono essere combinate per un effetto maggiore.
Questi nuovi slivers sono dotati di un nuovo codice di esempio. Ad esempio, PinnedHeaderSliver la documentazione API di ha un esempio che ricrea effetti come la barra delle applicazioni dell’app Impostazioni iOS.
Aggiornamenti nella libreria di Cupertino
In questa versione, abbiamo migliorato la fedeltà di CupertinoActionSheet. Far scorrere il dito sui pulsanti del foglio azioni ora fornisce un feedback tattile. Le dimensioni e il peso del carattere dei pulsanti ora corrispondono alle loro controparti native.
Troviamo anche aggiunte nuove proprietà di messa a fuoco a CupertinoButton, e ora possiamo personalizzare il colore di un disabilitato CupertinoTextField.
È in corso un aggiornamento della libreria di Cupertino: aspettiamoci altri aggiornamenti nelle versioni future!
Visualizzazione ad albero – Versione Flutter 3.24 (Tree View)
Il pacchetto two_dimensional_scrollables ha rilasciato il TreeView widget, insieme a diverse classi di accompagnamento per la creazione di alberi di scorrimento performanti che possono scorrere in tutte le direzioni man mano che l’albero cresce.
TreeSliver è stato aggiunto anche al framework per la creazione di alberi in scorrimento monodimensionale. Le API TreeViewe TreeSliver corrispondono, rendendo facile passare da quella giusta per il tuo caso d’uso.
CarouselView – Versione Flutter 3.24
Questa versione includeva il widget carousel Material DesignCarouselView : . CarouselView Presenta il layout ” Uncontained “: un elenco scorrevole di elementi che scorrono fino al bordo del contenitore, e gli elementi iniziali e finali possono cambiare dimensione dinamicamente quando scorrono fuori dalla vista e scorrono nella vista.
Ulteriori funzionalità disponibili dai widget
Questa release contiene parte del lavoro per spostare la logica del widget principale, che non è specifica del design, dalla libreria Material alla libreria Widgets per un uso più generale. Ciò include:
- Il Feedback widget fornisce un facile accesso al feedback tattile e audio del dispositivo in risposta a gesti come tocco, pressione prolungata e altro ancora.
- ToggleableStateMixinee ToggleablePainter , classi base per la creazione di widget a levetta come caselle di controllo, interruttori e pulsanti di scelta.
Funzionalità enum migliorate per AnimationStatus
In un fantastico contributo del membro della community @nate-thegrate , sono state aggiunte funzionalità enum migliorate ad AnimationStatus , inclusi i getter:
- isDismissed
- isCompleted
- isRunning
- isForwardOrCompleted
Alcuni di questi getter esistevano già in Animation sottoclassi, come AnimationControllere CurvedAnimation. Ora tutti questi getter di stato sono disponibili nelle sottoclassi di Animation oltre ad AnimationStatus. Infine, toggle è stato aggiunto un metodo ad AnimationController per cambiare la direzione dell’animazione.
Aggiornamenti in SelectionArea
La Flutter SelectionArea ora supporta più gesti nativi associati a un triplo clic con un mouse e al doppio tocco su un dispositivo touch. Per impostazione predefinita, i widget SelectionArea e SelectableRegion utilizzano questi nuovi gesti.
Triplo clic
- Triplo clic + trascinamento: estende la selezione in blocchi di paragrafo.
- Triplo clic: seleziona il blocco di paragrafo nella posizione in cui si è fatto clic.
Doppio tocco
- Doppio tocco + trascinamento: estende la selezione in blocchi di parole (supportato su Android/Fuchsia/iOS nativi e iOS web).
- Doppio tocco: seleziona la parola nella posizione toccata (supportato su Android/Fuchsia/iOS nativi e Android/Fuchsia web).
Engine
Impeller
Migliorare le prestazioni e la fedeltà
In previsione della rimozione dell’opt-out di Impeller su iOS in una release stabile in arrivo a breve, il team Flutter ha lavorato duramente per migliorare le prestazioni e la fedeltà di Impeller. Ad esempio, una lunga serie di miglioramenti al rendering del testo ha aumentato notevolmente le prestazioni dello scorrimento delle emoji , eliminando il jank durante lo scorrimento di una vasta raccolta di emoji, il che è stato un fantastico stress test delle capacità di rendering del testo di Impeller.
Inoltre, risolvendo una serie di problemi, sono stati migliorati notevolmente la fedeltà del rendering del testo di Impeller in questa versione. In particolare, il peso del testo, la spaziatura e la crenatura ora corrispondono tutti alla fedeltà del testo con il renderer legacy.
In questa versione, continuiamo a visualizzare in anteprima Impeller su Android. Troviamo esteso il periodo di anteprima a causa di difficoltà derivanti da un bug in Android 14 che interessa le API che Impeller utilizza per Platform Views. Il bug è stato da allora corretto dal team Android, tuttavia molti dispositivi distribuiti eseguiranno la versione Android non corretta per il prossimo futuro. Aggirare questi problemi implica un’ulteriore migrazione API e quindi un ulteriore ciclo di rilascio stabile. Per eccesso di cautela e per garantire che le app Flutter funzionino sulla più ampia gamma possibile di dispositivi, il team sta rimandando l’impostazione di Impeller come renderer predefinito fino a una versione stabile più avanti quest’anno.
Mentre l’anteprima di Impeller su Android prosegue con il ciclo stabile 3.24, è richiesto agli sviluppatori di Flutter di effettuare l’aggiornamento all’ultima versione stabile e di segnalare eventuali carenze riscontrate quando Impeller è abilitato. Il feedback in questa fase è prezioso per garantire che Impeller abbia successo su Android e che saremo in grado di renderlo con sicurezza il renderer predefinito in una versione più avanti quest’anno. L’ecosistema hardware Android è molto più diversificato dell’ecosistema iOS. Per questo motivo, il feedback più utile su Impeller dovrebbe includere informazioni dettagliate sul dispositivo specifico e sulla versione Android in cui si sono verificati i problemi.
Impostazioni predefinite migliorate per le immagini ridimensionate
In questa Versione Flutter 3.24, l’impostazione predefinita FilterQualityper le immagini è stata modificata da FilterQuality.low a FilterQuality.medium. Quando un’immagine di grandi dimensioni è sostanzialmente più grande del suo rettangolo di destinazione, il che è uno scenario comune, in FilterQuality.low l’immagine appare più “pixelata” e il rendering è più lento di FilterQuality.medium. In futuro, il team sta anche esplorando nomi più adatti per i vari FilterQualitylivelli.
Anteprima GPU Versione Flutter 3.24
Flutter ha introdotto un importante aggiornamento per le capacità di rendering con la GPU Flutter, disponibile sul canale principale. Questa API grafica di basso livello consente agli sviluppatori di creare rendering personalizzati utilizzando codice Dart e shader GLSL senza bisogno di alcun codice di piattaforma nativo.
Flutter GPU espande ciò che puoi renderizzare direttamente in Flutter, abilitando grafica avanzata e scene 3D. Richiede il backend di rendering Impeller, attualmente supportato su iOS, macOS e Android. Sebbene in anteprima iniziale, Flutter GPU mira a supportare alla fine tutte le piattaforme Flutter.
L’API consente il controllo completo sugli allegati del render pass, sulla fase del vertice e sul caricamento dei dati sulla GPU. Questa flessibilità è essenziale per creare soluzioni di rendering sofisticate, dalle animazioni di personaggi 2D alle scene 3D complesse.
Gli sviluppatori possono iniziare a usare Flutter GPU passando al canale principale e aggiungendo il pacchetto flutter_gpu ai loro progetti. Nei prossimi mesi si assisterà a maggiori miglioramenti di funzionalità e stabilità, con librerie di rendering di livello superiore come flutter_scene che semplificano l’uso di queste funzionalità avanzate.
Per un’analisi più approfondita di Flutter GPU e per vedere come sfruttarla nei tuoi progetti, consigliamo di dare un’occhiata al post dettagliato del blog Flutter GPU . Specialmente se si sta sviluppando giochi o grafica complessa, le nuove capacità GPU di Flutter lo rendono una scelta solida per il tuo prodotto.
Web
Multi-view embedding
Le applicazioni web Flutter possono ora sfruttare l’incorporamento multi-view, consentendo agli sviluppatori di eseguire il rendering dei contenuti in più elementi HTML contemporaneamente. Questa funzionalità, nota come “modalità incorporata” o “multi-view”, offre flessibilità per l’integrazione delle viste Flutter nelle applicazioni web esistenti.
In modalità multi-view, un’applicazione web Flutter non esegue il rendering immediatamente all’avvio. Invece, attende che l’applicazione host aggiunga la prima “view” utilizzando il metodo addView. L’applicazione host può aggiungere o rimuovere dinamicamente queste view e Flutter adatta i suoi widget di conseguenza.
Per abilitare la modalità multi-view, impostare multiViewEnabled: trueil nel metodo itializeEngine all’interno del flutter_bootstrap.jsfile. Le viste possono quindi essere gestite da JavaScript, aggiungendole agli elementi HTML specificati e rimuovendole quando necessario. Ogni aggiunta e rimozione di vista attiva gli aggiornamenti all’interno di Flutter, consentendo il rendering dinamico dei contenuti.
Questa funzionalità è particolarmente utile per integrare Flutter in applicazioni web complesse in cui sono richieste più viste Flutter indipendenti. Supporta inoltre dati di inizializzazione personalizzati per ogni vista, consentendo configurazioni personalizzate ed esperienze interattive.
Per un approfondimento sull’implementazione dell’incorporamento multi-vista nelle applicazioni web Flutter, consigliamo di consulta la documentazione dettagliata .
Monetizzazione
Supporto per la monetizzazione degli annunci video
E’ stato lanciato un nuovo plugin Interactive Media Ads (IMA) per supportare la monetizzazione degli annunci video in-stream sulle app mobili Flutter. Il nuovo plugin IMA offre nuove opportunità di monetizzazione degli annunci per le app Flutter oltre al plugin Google Mobile Ads (GMA) esistente che supporta principalmente i formati degli annunci display.
Gli annunci video in-stream vengono solitamente mostrati all’utente nel video player prima (preroll), durante (midroll) o dopo (postroll) la riproduzione del contenuto video. Alcuni annunci video in-stream possono anche essere ignorati.
Vantaggi di Flutter IMA :
- Monetizza senza problemi i contenuti del lettore video sulle app Flutter. Ad esempio, quando un utente dell’app fa clic su play su un contenuto video, ora puoi implementare il plugin Flutter IMA per mostrare all’utente un annuncio di 15 secondi prima di avviare il contenuto video.
- Sfrutta gli stessi vantaggi dell’IMA SDK nativo, tra cui l’accesso alla domanda pubblicitaria Google premium e la conformità agli standard di settore (come IAB VAST ).
La versione di lancio iniziale supporta attualmente annunci video pre-roll sulle piattaforme Android e iOS. Il supporto per gli annunci midroll sarà presto disponibile. Consigliamo di iniziare a esplorare il nuovo plugin IMA sul contenuto video della propri app Flutter..
iOS
Supporto iniziale di Swift Package Manager
Oggi Flutter utilizza CocoaPods per gestire le dipendenze native di iOS o macOS.
La versione Flutter 3.24 aggiunge un supporto anticipato per Swift Package Manager. Ciò comporta diversi vantaggi, tra cui:
- Accesso all’ecosistema dei pacchetti Swift . I plugin Flutter saranno in grado di sfruttare il crescente ecosistema dei pacchetti Swift !
- Semplifica l’installazione di Flutter . Swift Package Manager è in bundle con Xcode. In futuro, non sarà necessario installare Ruby e CocoaPods per utilizzare Flutter per le piattaforme Apple.
Consigliamo gli sviluppatori di plugin a provare ad aggiungere il supporto per Swift Package Manager ai propri plugin e a fornire feedback sulla propria esperienza.
Se ci sono suggerimenti sul supporto di Flutter per Swift Package Manager, consigliamo di segnala il problema .
Ecosistema
Aggiornamenti del plugin Preferenze condivise
Sono state aggiunto due nuove API al plugin shared_preferences , SharedPreferencesAsync e SharedPreferencesWithCache. La modifica più significativa è che l’implementazione Android usa Preferences DataStore invece di Shared Preferences.
SharedPreferencesAsync consente agli utenti di chiamare direttamente la piattaforma per ottenere le preferenze più aggiornate salvate sul dispositivo, al costo di essere asincrone e un po’ più lente rispetto all’utilizzo della versione memorizzata nella cache. Ciò è utile per le preferenze che possono essere aggiornate da altri sistemi o isolati, il che renderebbe una cache obsoleta.
SharedPreferencesWithCache è basato su SharedPreferencesAsync e consente agli utenti di accedere a una copia delle preferenze memorizzata nella cache locale in modo sincrono. È simile alla vecchia API, ma ora può essere istanziata più volte con parametri diversi.
Queste nuove API sono destinate a sostituire l’attuale API SharedPreferences in futuro. Tuttavia, questo è uno dei plugin più utilizzati nell’ecosistema e sappiamo che ci vorrà del tempo prima che l’ecosistema passi alle nuove API.
Summit europeo sull’ecosistema dei pacchetti Flutter e Dart 2024
Come parte di Fluttercon Europe 2024, si è tenuto il primo Flutter and Dart Package Ecosystem Summit in presenza. Questo ha fatto seguito al primo summit virtuale che abbiamo tenuto nell’agosto 2023.
Avvisiamo che il prossimo summit si terrà al Fluttercon USA di New York City il 20 settembre 2024! Se si è un autore o un collaboratore di un pacchetto e si partecipa al Fluttercon USA 2024, consigliamo di registrarsi per riservare il posto al summit.
Il summit ha riunito autori e manutentori di pacchetti per sessioni in stile unconference sui seguenti argomenti:
Sessione 1 — Passato, presente e futuro dell’interoperabilità nativa
Sessione 2 — Modelli di manutenzione sostenibile dei pacchetti
Sessione 3 — Affrontare la frammentazione dell’ecosistema dei pacchetti
Riteniamo che il summit, soprattutto quando fa parte di eventi Flutter e Dart più generali, sia una piattaforma preziosa per una discussione aperta tra la comunità, per far emergere sfide critiche e trovare soluzioni.
DevTools e IDE
Questa nuova versione include alcuni interessanti miglioramenti alla suite di strumenti Flutter DevTools.
Se ci chiediamo se la nostra app Flutter sta creando più widget del previsto, una nuova funzionalità nello strumento DevTools Performance può aiutarci. Utilizzando la nuova funzionalità Rebuild Stats , possiamo acquisire informazioni su quante volte un widget è stato creato nella tua app o persino in uno specifico frame Flutter.
Lo strumento DevTools Performance che tiene traccia delle statistiche di ricostruzione.
Troviamo miglioramenti e correzioni di bug critici a strumenti come Network profiler e Flutter Deep Links tool , e sono stati apportati alcuni miglioramenti generali per offrire un’esperienza migliore quando utilizziamo DevTools dall’interno del tuo IDE. A proposito di IDE, non molto sanno che si può utilizzare ogni strumento DevTools direttamente all’interno del tuo IDE.
- Le schermate di DevTools si aprono all’interno di una finestra di VS Code.
- Le schermate di DevTools si aprono all’interno delle finestre degli strumenti di Android Studio.
Questa Versione Flutter 3.24 include miglioramenti alla barra laterale Flutter in VS Code per darti un accesso più facile agli strumenti che stai cercando. Eseguiamo l’aggiornamento alle ultime versioni di VS Code e alle estensioni Flutter e Dart per accedere alla barra laterale migliorata.
La barra laterale Flutter è adattabile e si adatta al proprio spazio di lavoro.
Questa release include anche alcuni importanti miglioramenti al framework DevTools Extensions . Ora possiamo usare le estensioni DevTools (strumenti forniti da una delle dipendenze del proprio pacchetto) quando eseguiamo il debug di un test Dart o Flutter, o anche quando si esegue il debug di nulla, ma stai solo scrivendo codice nel tuo IDE. Quindi, se hai voluto usare uno strumento (o crearne uno!) per uno di questi percorsi utente, ora è possibile.
Per saperne di più su tutti gli aggiornamenti inclusi in Flutter 3.24, consigliamo di consultare le note di rilascio per DevTools 2.35.0 , 2.36.0 e 2.37.2 .
Modifiche e deprecazioni che interrompono il funzionamento
Le modifiche dirompenti in questa versione includono modifiche alle API delle pagine di Navigator , tipi generici in PopScope , il renderer predefinito di Flutter Web e l’introduzione di alcune nuove deprecazioni. Consulta l’elenco completo delle linee guida per la migrazione nella pagina delle modifiche dirompenti .
Come sempre, un sentito ringraziamento alla community per aver contribuito con i test : ci aiutano a identificare queste breaking change. Per saperne di più, consigliamo di consultare la breaking change policy di Flutter .
Conclusione
Al centro del successo di Flutter c’è la community. Questa release non sarebbe stata possibile senza gli innumerevoli contributi e la incrollabile passione della community Flutter.
Per approfondire i dettagli di ciò che è stato realizzato con questa versione, invitiamo a consultare le note di rilascio e il registro delle modifiche per un elenco completo delle aggiunte in Flutter 3.24.
Flutter 3.24, insieme a Dart 3.5, è ora disponibile sul canale stabile. Il passaggio a queste funzionalità è facile come è semplice eseguire l’aggiornamento di Flutter.
(fonte)
Innovaformazione, scuola informatica specialistica promuove la sviluppo mobile con il framework Flutter ed eroga formazione alle aziende IT. Trovate il programma didattico sul nostro sito del Corso Flutter.
INFO: info@innovaformazione.net – Tel. 3471012275 (Dario Carrassi)
Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:
Articoli correlati

Arriva Java 23

Sviluppo Software Green

Lavoro SAP Reggio Emilia

Cosa è Git branching

Algoritmi per il Poker online
