Dopo diversi mesi di sviluppo Flutter guadagna la sua prima versione stabile, questo UI toolkit di Google promette davvero bene e la nuova build introduce delle succose novità per tutti gli sviluppatori interessanti a creare interfacce, con una native experience, per Android e iOS su singola codebase.
Lo sviluppo mobile multipiattaforma oggi è un ecosistema che necessita diversi compromessi, gli sviluppatori sono costretti a scegliere tra creare la stessa App più volte, nel di un'App nativa per più sistemi, o sfruttare framework di sviluppo che generano applicazioni ibride multpiattaforma (PWA) ma che, comunque, non possono sfruttare tutte le caratteristiche dell'hardware come le applicazioni native.
Caratteristiche di Flutter
Flutter è dunque la riposta di Big G a questo dilemma, il progetto offre infatti una soluzione che da accesso al meglio di entrambi i mondi: grafica e interfaccia utente con accelerazione hardware e codice nativo per le piattaforme hardware ARM.
Flutter non sostituisce i tradizionali modelli di App iOS e Android, si infatti tratta più di "un motore di App" che è possibile incorporare in un'App esistente o utilizzare per un'App completamente nuova. Flutter è stato pensato inoltre per realizzare applicazioni esteticamente uniformi con lo stile dei due OS di riferimento.
Flutter consente di controllare ogni pixel sullo schermo e le sue potenti funzionalità di compositing permettono di sovrapporre e animare grafica, video, testo e controlli. Include poi un set completo di widget che offrono delle pixel-perfect experience sia su iOS che su Android. Questo toolkit è alimentato dal motore grafico Skia 2D che garantisce la medesima accelerazione hardware che sta alla base di Chrome e Android.
Il codice di Flutter è supportato dalla piattaforma Dart che consente la compilazione su codice ARM nativo a 32 e 64 bit per iOS e Android.
Flutter 1.0
Flutter 1.0 introduce lo stateful hot reload, una nuova funzionalità per sviluppatori e designer per l'iterazione con le App in tempo reale. Con la ricarica hot stateful è possibile apportare modifiche al codice dell'applicazione in sviluppo e vedere immediatamente i risultati senza riavviare l'App o perdere lo status corrente. La ricarica hot stateful trasforma il modo in cui gli sviluppatori creano e sviluppano la proprie applicazioni.
Sempre su Flutter 1.0 gli sviluppatori hanno introdotto il supporto al pixel-perfect per le App iOS e alla Dart platform 2.1. Sono anche arrivate due nuove feature in forma di "preview" ovvero Add to App e platform views. La prima riguarda la possibilità di aggiungere Flutter all'interno di applicazioni già precedentemente sviluppate, infatti non tutti i clienti potrebbero avere la necessità di sviluppare un'App da zero, molti di essi vogliono semplicemente migliorare una soluzione già esistente con nuove funzionalità.
L'architettura di Flutter supporta bene questo modello di sviluppo, del resto ogni App Flutter include un contenitore host Android e iOS ed è molto semplice condividere le risorse tra Flutter e il codice host. Tuttavia tale caratteristica rimane ancora in fase sperimentale e andrà migliorata nelle prossime versioni.
Platform views ha invece la funzione opposta a Add to App, ovvero serve a incorporare un Android/iOS platform control all'interno di un'App Flutter.
Flutter è un progetto open source rilasciato sotto licenza BSD e include i contributi di centinaia di sviluppatori di tutto il Mondo. Si è già creato un vivace ecosistema con migliaia di plug-in disponibili in Rete e, poiché ogni App Flutter è un'App nativa che utilizza gli strumenti di sviluppo Android e iOS standard, è possibile accedere a qualsiasi elemento o risorsa del sistema operativo sottostante, incluso il codice e l'interfaccia utente scritta in Kotlin o Java su Android e Swift o Objective-C su iOS.
Flare
Durante la presentazione di Flutter 1.0 è stato lanciato anche Flare, sviluppata da 2Dimensions, un tool per i designer con cui creare animazioni vettoriali che possono essere incorporate direttamente in un'App Flutter, con la possibilità di manipolate direttamente il codice.
Flare elimina la necessità di progettare un'unica App, animare in un'altra e convertire tutto in risorse e codici specifici del device. Le animazioni create con Flare possono essere incorporate in un'App Flutter come widget, supportate direttamente tramite il compositor e sovrapposte ad altri testi, livelli grafici o persino widget dell'interfaccia utente.
Via Google Blog