Novità di Flutter 3.27
Novità di Flutter 3.27 Release: miglioramenti delle prestazioni e nuove funzionalità
Se cercate informazioni esaustive e sintetiche sulle Novità di Flutter 3.27 siete nel posto giusto. Le Novità di Flutter 3.27 porta entusiasmanti aggiornamenti progettati per migliorare la tua esperienza di sviluppo e aumentare le prestazioni della propria app.
Flutter 3.27 apporta miglioramenti a framework, motore ed ecosistema, con notevoli progressi in Impeller e aggiornamenti ai widget di Cupertino. Stiamo inoltre introducendo nuove potenti funzionalità in DevTools, semplificando il modo in cui gestisci i tuoi progetti Flutter. Con oltre 1.400 commit da 187 collaboratori, tra cui 49 collaboratori per la prima volta, questa versione mette in mostra la forza della comunità Flutter e il suo sforzo collettivo per far progredire il framework. Immergiamoci nei punti salienti delle novità di Flutter 3.27!
Aggiornamenti widget Cupertino in Flutter 3.27
La Novità di Flutter 3.27 introduce diversi aggiornamenti importanti al set di widget di Cupertino, migliorandone la funzionalità, le opzioni di personalizzazione e l’allineamento con gli standard iOS. Ecco i miglioramenti principali:
CupertinoCheckbox e CupertinoRadio: entrambi i widget ricevono aggiornamenti ad alta fedeltà, tra cui dimensioni, colori, larghezze dei tratti e comportamenti di pressione migliorati. Sono stati aggiunti miglioramenti significativi alla personalizzazione, come nuove proprietà per i cursori del mouse, etichette semantiche, immagini di miniature e colori di riempimento. Alcune proprietà deprecate, come il colore inattivo di CupertinoCheckbox, sono state rimosse, mentre altre, come il colore della traccia di CupertinoSwitch, sono state rinominate per migliorare la coerenza. Questi aggiornamenti avvicinano i widget Cupertino alla parità di funzionalità con le loro controparti Material.
CupertinoSwitch: insieme ad altri aggiornamenti, il widget CupertinoSwitch ora beneficia di maggiori opzioni di personalizzazione, come la possibilità di regolare le immagini delle miniature e i colori di tracciamento, e un comportamento migliorato per i cursori del mouse e le etichette semantiche.
CupertinoSlidingSegmentedControl: questo widget ha ricevuto miglioramenti visivi, tra cui raggio del pollice aggiornato, altezza del separatore, padding, ombre e allineamento della scala del pollice. Ora supporta la disattivazione di segmenti individuali e utilizza un layout proporzionale basato sul contenuto del segmento, offrendo maggiore flessibilità.
Contributi chiave dalla community
Contributo: Grazie a, CupertinoNavigationBar e CupertinoSliverNavigationBar ora presentano sfondi trasparenti finché il contenuto non scorre sotto di essi. Ciò consente alla barra di navigazione di corrispondere al colore di sfondo nel suo stato espanso, con un colore personalizzabile per il suo stato compresso. Inoltre, è stata aggiunta la possibilità di passare senza problemi da un colore all’altro durante lo scorrimento.
Contributo: un contributo significativo introduce l’enumerazione CupertinoButtonSize e la proprietà sizeStyle per CupertinoButton. Questo aggiornamento consente agli sviluppatori di applicare gli stili dei pulsanti iOS 15+ e il nuovo costruttore CupertinoButton.tinted per i pulsanti con sfondi traslucidi. Inoltre, CupertinoButton ora supporta un gestore onLongPress e abilita le azioni tramite scorciatoie da tastiera.
Altri aggiornamenti degni di nota
CupertinoPicker e CupertinoDatePicker: questi widget ora consentono di scorrere direttamente fino agli elementi toccati, migliorando l’usabilità e la precisione.
CupertinoAlertDialog: ora supporta il gesto tocco-scorrimento, garantendo un’esperienza di interazione più fluida.
CupertinoActionSheet: il widget ActionSheet riceve aggiornamenti ad alta fedeltà, con padding e dimensioni dei caratteri migliorati in tutte le impostazioni di dimensione del testo del sistema. Ora supporta anche il feedback tattile quando si scorre sui pulsanti, migliorando l’esperienza tattile.
Miglioramenti aggiuntivi:
CupertinoContextMenu: questo widget ora supporta lo scorrimento quando le sue azioni escono dallo schermo, rendendolo più versatile.
CupertinoDatePicker: i contenuti lunghi nelle colonne di CupertinoDatePicker non vengono più troncati, migliorando la visualizzazione del testo esteso.
Normalizzazione dei temi dei material
Con le Novità di Flutter 3.27, sono stati fatti progressi significativi nella normalizzazione del tema di vari componenti Material. CardTheme, DialogTheme e TabBarTheme sono stati tutti rifattorizzati per allinearsi meglio alle convenzioni stabilite da Flutter per il tema dei componenti. Sono state introdotte nuove classi di dati del tema, CardThemeData, DialogThemeData e TabBarThemeData, che consentono agli sviluppatori di personalizzare più facilmente le proprietà visive predefinite di questi componenti. Ciò fa parte di uno sforzo continuo per migliorare la coerenza del tema nella libreria Material e le versioni future continueranno a perfezionare e normalizzare altri temi dei componenti.
Funzionalità avanzate di CarouselView
Flutter 3.27 introduce una nuova entusiasmante funzionalità in CarouselView: l’aggiunta di CarouselView.weighted. Questo aggiornamento consente layout più flessibili e dinamici all’interno dei caroselli. Regolando il parametro flexWeights nel costruttore, gli sviluppatori possono controllare le dimensioni relative e il posizionamento degli elementi all’interno del carosello. Ad esempio:
[3, 2, 1] crea un layout multi-browse.
[7, 1] si traduce in un layout dell’eroe.
[1, 7, 1] produce un layout con eroe centrato.
Questi valori definiscono il “peso” relativo che ogni elemento occupa nel carosello, consentendo layout del carosello personalizzati e reattivi, adattati alle esigenze di progettazione della tua app.
Aggiornamenti dei material in Flutter 3.27
La Novità di Flutter 3.27 apporta una serie di miglioramenti ai componenti Material, potenziandone la funzionalità e risolvendo una serie di problemi. Ecco gli aggiornamenti principali:
Miglioramenti delle funzionalità
SegmentedButton: è stata aggiunta una nuova proprietà direction, che consente di allineare verticalmente gli elementi all’interno del SegmentedButton, offrendo maggiore flessibilità nel layout.
Personalizzazione delle icone: il metodo styleFrom per le classi ButtonStyleButton (come ElevatedButton, FilledButton, OutlinedButton, TextButton, MenuItemButton e SubmenuButton) ora include proprietà aggiuntive relative alle icone. Questi aggiornamenti consentono una personalizzazione più precisa delle icone all’interno dei pulsanti, migliorando la flessibilità del design visivo.
Correzioni di bug
Valori predefiniti delle icone dei pulsanti: le dimensioni e il colore predefiniti delle icone per le classi ButtonStyleButton sono stati allineati alle specifiche Material 3, garantendo la coerenza con le più recenti linee guida di progettazione.
Comportamento di scorrimento dell’AppBar: il comportamento di scorrimento dell’AppBar è stato corretto in modo da persistere correttamente quando si apre il pannello di navigazione, corrispondendo ora al comportamento previsto nelle app Android native.
Miglioramenti di MenuAnchor: sono state implementate correzioni relative al focus per MenuAnchor. Inoltre, diversi problemi con DropdownMenu, come problemi di scorrimento all’interno di elementi scorrevoli nidificati e incongruenze con il meccanismo di filtro, sono stati risolti per un’interazione più fluida.
Miglioramenti della transizione di percorso
I ModalRoutes sono ora più flessibili quando si passa da una pagina all’altra con diversi tipi di animazioni. Nelle release precedenti, se un nuovo percorso entrava nella schermata mentre il percorso esistente aveva una transizione diversa, poteva causare un disallineamento visivo. Ora, i ModalRoutes possono passare i costruttori di transizione di uscita l’uno all’altro, assicurando che le transizioni di entrata e di uscita siano sempre sincronizzate. Questo miglioramento consente di utilizzare più stili di transizione di percorso sulla stessa pagina, migliorando la flessibilità di navigazione con Navigator e Router di Flutter.
Miglioramenti nella selezione del testo
Gesto Shift + Click: su Linux, macOS e Windows, SelectionArea di Flutter ora supporta il gesto Shift + Click. Ciò consente agli utenti di estendere la selezione alla posizione cliccata, migliorando l’usabilità della selezione del testo.
Cancellazione delle selezioni: ora puoi cancellare le selezioni di testo all’interno di una SelectionArea e di una SelectableRegion usando il metodo clearSelection su SelectableRegionState. Inoltre, SelectableRegionState è ora accessibile tramite SelectionArea fornendo una GlobalKey e usando SelectionAreaState.selectableRegion.
Correzioni di rendering: sono stati risolti diversi problemi con RenderParagraph, assicurando che le selezioni di testo all’interno di SelectionArea o SelectableRegion continuino a funzionare correttamente dopo il ridimensionamento della finestra. Le selezioni ora si comportano come previsto anche quando gli utenti fanno clic o toccano all’esterno dell’area di testo.
Spaziatura tra righe e colonne
La Novità di Flutter 3.27 introduce una funzionalità di praticità molto attesa per Righe e Colonne: la spaziatura. Questo nuovo parametro di spaziatura consente agli sviluppatori di applicare facilmente uno scostamento di pixel fisso tra i figli di una Riga o Colonna. Ciò riduce la quantità di codice necessaria per gestire la spaziatura, rendendo più efficiente e pulito progettare layout con spaziatura figlio coerente.
Miglioramenti del motore
Girante su Android
Con la Novità di Flutter 3.27, Impeller è ora il motore di rendering predefinito sui moderni dispositivi Android. Da Flutter 3.16, Impeller è disponibile in anteprima per Android e in questa versione abbiamo apportato miglioramenti significativi in base al feedback degli utenti per migliorare sia le prestazioni che la fedeltà.
Per i moderni dispositivi Android con supporto Vulkan, Impeller ora fornisce prestazioni e qualità di rendering superiori. Tuttavia, per i dispositivi più vecchi o quelli senza supporto Vulkan, continuerà a essere utilizzato il motore di rendering Skia.
Opzione di esclusione: se necessario, gli sviluppatori possono escludersi da Impeller utilizzando il flag –no-enable-impeller con lo strumento da riga di comando flutter oppure aggiungendo la seguente riga ad AndroidManifest.xml:
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
androide:valore="falso" />
Guardando al futuro, Flutter intende continuare a migliorare le prestazioni di Impeller su Android, con l’obiettivo di rendere il suo backend OpenGL pronto per la produzione e, in seguito, rimuovere il fallback di Skia.
Poiché l’ecosistema hardware Android è eterogeneo, si incoraggia gli sviluppatori Flutter ad aggiornare all’ultima versione stabile e a segnalare eventuali problemi quando Impeller è abilitato, in particolare con dettagli specifici del dispositivo e informazioni sulla versione Android. Il tuo feedback rimane essenziale per perfezionare le prestazioni di Impeller su Android.
Miglioramenti iOS
Per gli utenti iOS, Flutter 3.27 risolve un problema notevole relativo alla contropressione del compositore che causava ritardi di frame nelle versioni precedenti. Sui dispositivi ad alta frequenza di frame, questi ritardi causavano frame persi e jank, specialmente quando il carico di lavoro raster veniva ritardato dal compositore.
Grazie al contributo di uno sviluppatore open source, è stata aggiunta una nuova implementazione della superficie di rendering Metal. Questo miglioramento consente al carico di lavoro raster di iniziare in modo più coerente dopo il termine del carico di lavoro UI, riducendo i ritardi e migliorando i tempi di frame. Di conseguenza, Flutter ora offre prestazioni più stabili ed è in grado di raggiungere meglio i 120 Hz su dispositivi con frame rate elevato.
Framework: Colori ad ampia gamma
Flutter ora supporta l’uso di colori nello spazio colore DisplayP3, consentendo interfacce utente che sfruttano appieno i display sui dispositivi iOS. Questa aggiunta espande anche il supporto per profondità di bit più ampie, consentendo più colori sia negli spazi colore sRGB che DisplayP3. Di conseguenza, alcuni vecchi metodi Color sono stati deprecati. Per i dettagli su queste modifiche dirompenti, fare riferimento all’avviso ufficiale.
Web: miglioramenti delle prestazioni, dell’efficienza e dell’accessibilità
Novità di Flutter 3.27: Fluter introduce diversi importanti miglioramenti all’esperienza web di Flutter:
Ottimizzazione della decodifica delle immagini: in Safari e Firefox, la decodifica delle immagini statiche ora utilizza l’elemento nativo, sostituendo i codec WebAssembly. Questa modifica elimina il jank della decodifica delle immagini e riduce l’utilizzo della memoria WebAssembly.
Ottimizzazione delle visualizzazioni della piattaforma: le ottimizzazioni alle visualizzazioni della piattaforma riducono il numero di sovrapposizioni di canvas, migliorando l’efficienza del rendering.
Compatibilità con WebAssembly: tutti i plugin e i pacchetti sviluppati dal team Flutter sono ora compatibili con WebAssembly.
Miglioramenti dell’accessibilità: sono state apportate diverse correzioni per migliorare l’accessibilità, anche per titoli, finestre di dialogo, password, tastiere iOS, link ed elementi scorrevoli.
Correzioni di rendering: sono stati risolti diversi problemi di rendering nei motori di rendering CanvasKit e Skwasm, risolvendo bug relativi ai filtri immagine, al ritaglio e all’utilizzo della memoria degli oggetti Paint.
Scorrimento tramite trascinamento in modalità multi-vista: le prestazioni dello scorrimento tramite trascinamento sono state migliorate in modalità multi-vista.
iOS: migrazione di Swift Package Manager
Flutter si sta muovendo verso l’integrazione con Swift Package Manager (SPM), apportando numerosi vantaggi:
Accesso all’ecosistema dei pacchetti Swift: i plugin Flutter possono ora attingere al crescente ecosistema dei pacchetti Swift.
Installazione più semplice: SPM è in bundle con Xcode, il che significa che in futuro non avrai più bisogno di Ruby o CocoaPods per Flutter sulle piattaforme iOS.
Il supporto per Swift Package Manager era inizialmente disponibile solo sul canale “main”, ma ora è accessibile anche sui canali beta e stable. Sebbene SPM non sia ancora abilitato di default, lo sarà una volta risolti eventuali problemi.
Gli autori di plugin sono incoraggiati a migrare a Swift Package Manager, e molti plugin popolari, come Firebase e altri, lo hanno già fatto. Inoltre, Pub.dev ora verifica la compatibilità con Swift Package Manager, e i pacchetti che non la supportano riceveranno punteggi ridotti.
Android: supporto Edge-to-Edge e Freeform
Modalità Edge-to-Edge: sui dispositivi con Android 15 o versioni successive, le app Flutter ora funzioneranno in modalità edge-to-edge per impostazione predefinita, utilizzando lo schermo intero. Gli sviluppatori possono disattivare questo comportamento seguendo la guida fornita.
Supporto Freeform Window: la modalità Freeform di Android, che consente agli utenti di ridimensionare le finestre delle app, è stata ampliata per gestire correttamente i ritagli hardware. SafeArea e MediaQuery di Flutter ora gestiscono questi ritagli quando una finestra dell’app viene ridimensionata in modalità Freeform, offrendo un’esperienza utente più fluida.
Supporto per script di compilazione Kotlin e migrazione di plugin dichiarativi in Flutter 3.27
Con la Novità di Flutter 3.27 introduce il supporto ufficiale per gli script di build di Kotlin (file build.gradle.kts). Ciò significa che gli sviluppatori possono ora sfruttare Kotlin per configurare le loro build di Gradle, con il supporto completo degli strumenti da Flutter. Se riscontri problemi con il supporto di Kotlin, invia un bug report. Mentre Groovy rimane il linguaggio supportato per Gradle, questo passaggio a Kotlin migliora la sicurezza dei tipi e semplifica la manutenzione dei test unitari per il codice di build.
Questa release segna anche la fine del supporto per il metodo legacy apply script di Gradle. Per i nuovi progetti, i file di build di Kotlin saranno quelli predefiniti. La maggior parte delle app esistenti richiederà una migrazione manuale a Kotlin. Puoi trovare la documentazione sulla migrazione per guidarti nel processo.
La migrazione all’inclusione dichiarativa del plugin Flutter Gradle porta con sé diversi vantaggi, tra cui una migliore manutenibilità e una maggiore stabilità nelle diverse versioni degli strumenti Android.
Aggiornamenti dell’ecosistema
Summit sull’ecosistema dei pacchetti Flutter e Dart 2024
Come parte di FlutterCon USA 2024, abbiamo ospitato il secondo Flutter and Dart Package Ecosystem Summit a settembre, dopo un summit di successo a FlutterCon Europe a luglio 2024 e un summit virtuale ad agosto 2023. Questo summit ha visto autori e manutentori di pacchetti impegnati in sessioni in stile unconference su vari argomenti, tra cui:
Supporto di Swift Package Manager
Interoperabilità nativa: passato, presente e futuro
Modelli di manutenzione sostenibile dei pacchetti
Non vediamo l’ora di organizzare altri summit in collaborazione con la community Flutter per continuare a far evolvere l’ecosistema.
Scarica le metriche su Pub.dev
Per fornire maggiori informazioni sulla popolarità dei pacchetti, vengono introdotte metriche di conteggio dei download su pub.dev. Ogni pagina del pacchetto ora presenta un conteggio dei download di 30 giorni (sostituendo il precedente punteggio di popolarità). Inoltre, abbiamo aggiunto un grafico sparkline interattivo per tracciare le tendenze di download settimanali, aiutando gli sviluppatori a individuare picchi di utilizzo, ad esempio dopo una nuova release, o a monitorare la popolarità di un pacchetto nel tempo.
Questi conteggi dei download riflettono dati grezzi provenienti da varie fonti, tra cui sistemi CI, utenti umani e strumenti di analisi dei pacchetti.
Spazi di lavoro nei pub
Con Dart 3.6, abbiamo lanciato Pub Workspaces, una nuova funzionalità progettata per gestire più pacchetti correlati all’interno di un singolo monorepo. Definendo un pubspec.yaml radice che fa riferimento ad altri pacchetti, gli sviluppatori possono garantire che tutti i pacchetti nel repository condividano un set coerente di dipendenze. Ciò ottimizza anche le prestazioni dell’IDE riducendo l’utilizzo di memoria quando si apre l’intero workspace, poiché l’analizzatore traccia solo un singolo contesto di analisi.
Pubblicazione automatizzata di pacchetti Flutter
Abbiamo migliorato il flusso di lavoro di GitHub Actions (setup-dart publish) per supportare la pubblicazione automatizzata di pacchetti Flutter su pub.dev. Questo aggiornamento semplifica il processo di contributo all’ecosistema Pub in modo coerente e verificabile.
Nuove versioni e aggiornamenti dei plugin
Plugin per annunci multimediali interattivi
Abbiamo lanciato il plugin Interactive Media Ads (IMA) Flutter, che semplifica l’integrazione di annunci multimediali in app iOS e Android create con Flutter. Il plugin IMA supporta le richieste di annunci da qualsiasi server di annunci conforme a VAST e gestisce la riproduzione degli annunci all’interno della tua app. Le funzionalità principali includono:
API lato client per annunci video in-stream lineari
Supporto VAST e VMAP
Richieste di annunci singoli e in pod
Annunci saltabili
Aggiornamenti sugli acquisti in-app
Abbiamo aggiornato il pacchetto in_app_purchase_storekit per supportare StoreKit 2 in iOS e macOS, migrando dalle API StoreKit 1 deprecate in iOS 18. Questa modifica consente nuove funzionalità StoreKit 2, come una gestione migliorata degli abbonamenti. Una guida alla migrazione sarà presto disponibile per aiutare gli sviluppatori a passare alla nuova funzionalità. Nota che questa è una modifica non-breaking, quindi puoi migrare quando vuoi.
DevTools e IDE: aggiornamenti Flutter 3.27
Flutter 3.27 apporta diversi aggiornamenti a DevTools, migliorandone sia la funzionalità che l’usabilità. Questa release include nuove funzionalità, una robustezza migliorata e alcune interessanti funzionalità sperimentali che puoi abilitare. Esploriamo questi aggiornamenti e miglioramenti in dettaglio!
Aggiornamenti principali di DevTools
Convalida Deep Link iOS
Lo strumento Flutter Deep Links ora supporta la convalida delle impostazioni dei deep link iOS. In precedenza, la convalida dei deep link era limitata ad Android, ma con questo aggiornamento, ora puoi convalidare i deep link sia per Android che per iOS direttamente all’interno di DevTools.
Flusso di lavoro offline migliorato
Per migliorare i flussi di lavoro quando si lavora con dati “offline”, DevTools ora supporta l’esportazione dei dati di rete come file .har. Ciò consente di salvare e condividere i dati del traffico di rete per un uso successivo o di importarli in altri strumenti. Inoltre, ora è possibile caricare snapshot di memoria in DevTools anche quando lo strumento non è connesso a un’app in esecuzione, semplificando l’analisi delle sessioni passate.
Resilienza dello strumento di memoria
Google ha ricevuto numerosi feedback sulla perdita di dati degli strumenti di memoria quando la propria app si blocca, in particolare durante il debug di problemi di memoria insufficiente (OOM). Flutter 3.27 risolve questo problema consentendoci di visualizzare i dati di memoria più recenti anche dopo la disconnessione dell’app. Questo aggiornamento ti assicura di non perdere informazioni di debug critiche se la tua app si blocca inaspettatamente.
Questi sono solo alcuni dei miglioramenti chiave in DevTools per questa versione. Per un elenco più dettagliato degli aggiornamenti, consulta le note di rilascio per le versioni 2.38.0, 2.39.0 e 2.40.1 di DevTools.
Anteprime e funzionalità sperimentali da provare
- Nuovo Flutter ispector
Flutter Inspector ha subito modifiche significative per migliorarne l’usabilità e l’esperienza di debug dell’interfaccia utente. Puoi abilitare il nuovo Inspector attivando l’impostazione “New Inspector” in DevTools.
I principali miglioramenti includono:
Albero dei widget condensato: l’albero dei widget è stato semplificato per una navigazione più semplice, particolarmente utile quando si lavora in IDE con spazio sullo schermo orizzontale limitato.
Attiva/disattiva i widget di implementazione: ora puoi scegliere se i widget di implementazione (quelli aggiunti dal framework o da pacchetti di terze parti) sono inclusi nell’albero dei widget, rendendo l’Inspector più incentrato sui tuoi widget personalizzati.
Visualizzazione dei dettagli del widget: una visualizzazione dettagliata per il widget selezionato include ora un visualizzatore di layout in linea, proprietà del widget e dell’oggetto di rendering e un esploratore di layout flessibile per i widget Flex e i loro elementi figlio.
Queste modifiche sono disponibili per essere provate ora e altri miglioramenti sono in arrivo. Se riscontri problemi, segnalali per aiutarci a perfezionare l’Inspector prima che diventi la versione predefinita.
Supporto WebAssembly in DevTools
Una nuova funzionalità sperimentale in DevTools consente di abilitare WebAssembly (WASM) per caricare l’app Web DevTools. Passando a WASM, puoi sperimentare prestazioni migliori rispetto alla versione predefinita di DevTools compilata in JavaScript. Questa funzionalità è ancora sperimentale, quindi ti invitiamo a provarla e a segnalare eventuali problemi riscontrati con la build WASM.
Cambiamenti radicali e deprecazioni in Flutter 3.27
Flutter 3.27 introduce diverse modifiche dirompenti e deprecazioni di cui gli sviluppatori devono essere a conoscenza. Ecco un riepilogo delle modifiche principali:
Token Material Design 3
Flutter ha integrato gli ultimi token Material Design 3 (v6.1) nella libreria Flutter Material. Questi aggiornamenti comportano modifiche alla mappatura di quattro ruoli colore in modalità Light, garantendo un aspetto visivamente più accattivante pur mantenendo un contrasto accessibile. Le proprietà colore interessate sono:
Sul contenitore primario (da Primary10 a Primary30)
Contenitore secondario (da Secondario10 a Secondario30)
Contenitore terziario (da Terziario10 a Terziario30)
Contenitore di errore (da Errore10 a Errore30)
Questi aggiornamenti interessano i widget che utilizzano questi ruoli colore come valori predefiniti, ma durante i test non sono state osservate interruzioni.
Inoltre, il colore del bordo dei chip (Chip, ActionChip, ChoiceChip, FilterChip e InputChip) è stato aggiornato da ColorScheme.outline a ColorScheme.outlineVariant, migliorando la gerarchia visiva tra chip e pulsanti.
Deprecazione dei progetti iOS Objective-C
Da Flutter 1.9.1 (rilasciato nel 2019), i nuovi progetti iOS hanno utilizzato per impostazione predefinita Swift. Di conseguenza, la creazione di nuovi progetti iOS Objective-C è ora deprecata. Il flag flutter create –ios-language objc verrà rimosso in una futura versione di Flutter. Tuttavia, gli sviluppatori possono ancora aprire progetti Xcode e aggiungere file Objective-C, inclusi i plugin. Il flag flutter create –android-language java per il supporto Java nelle app Android rimarrà invariato.
Modifica del flag predefinito del collegamento profondo
In Flutter 3.27, il valore predefinito per il deep linking è cambiato da false a true, rendendo il deep linking opt-in di default. Se stai utilizzando la configurazione predefinita del deep linking di Flutter, non c’è bisogno di impostare manualmente il flag su true. Tuttavia, se stai utilizzando plugin di deep linking di terze parti, come:
collegamenti dinamici firebase
uni_link
app_links
Questo aggiornamento introduce una modifica dirompente. In questi casi, dovrai reimpostare manualmente il flag di deep linking di Flutter su false. Per maggiori informazioni su questa modifica, fai riferimento al documento di progettazione.
Eliminazione del supporto per SDK più vecchi negli IDE
Con l’evoluzione dei plugin Dart e Flutter per VS Code e IntelliJ, mantenere il supporto per le vecchie versioni di Dart SDK è diventato sempre più difficile. A partire da Dart 3.6, Flutter abbandonerà il supporto per le versioni di Dart SDK precedenti alla 3.0 (rilasciata a maggio 2023). Sebbene queste versioni possano ancora funzionare, il supporto ufficiale e le correzioni per i problemi specifici delle vecchie versioni di SDK non saranno più forniti.
Quando verrà rilasciato Dart 3.7 (previsto per il primo trimestre del 2025), il supporto per queste vecchie versioni dell’SDK verrà completamente rimosso e le future versioni del plugin potrebbero non essere compatibili con esse. Gli sviluppatori che utilizzano vecchie versioni dell’SDK Dart sono incoraggiati ad aggiornare a Dart 3.0 o versioni successive per continuare a ricevere supporto e aggiornamenti.
Questa modifica interesserà meno dell’1% degli utenti, ma consentirà al team di concentrarsi sul miglioramento dell’esperienza per la maggior parte degli sviluppatori.
Considerazioni finali
Per un elenco completo delle modifiche di interruzione e delle linee guida per la migrazione, fare riferimento alla pagina delle modifiche di interruzione. Un enorme ringraziamento alla community di Flutter per i vostri continui contributi. Il vostro feedback, entusiasmo e contributi aiutano a far progredire Flutter. Siamo entusiasti del futuro e non vediamo l’ora di vedere le incredibili app che creerete con Flutter 3.27!
(fonte)
Innovaformazione, scuola informatica specialistica promuove lo sviluppo Android/iOS con Flutter aiutando le aziende ad essere più velocemente operativi con il 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
Cosa è ZK framework
Guida SAP Clean ABAP
Lavoro Contabilità Bilancio Roma
Sviluppo API REST con ASP.NET Core
Come integrare l’AI negli ATM bancomat
