logo gellify

Highlights

Siamo stati al Flutter Heroes e vi raccontiamo le novità

Siamo stati al Flutter Heroes e vi raccontiamo le novità

Il cuore della tecnologia pulsa ancora una volta in Italia con il ritorno della seconda edizione del "Flutter Heroes".  

Flutter Heroes GELLIFY

 

La conferenza, dedicata al framework open-source per app mobile creato da Google, si è tenuta a Torino lo scorso febbraio e si candida a diventare uno degli appuntamenti più importanti del panorama tecnologico italiano.  

 

In questo articolo, vi portiamo con noi nel vivo dell’evento per raccontarvi alcune delle novità introdotte e di come questi miglioramenti e nuove funzionalità possano aiutare a migliorare la qualità e l'efficienza dello sviluppo di app mobile. 

 

 

3 Strategie per lo sviluppo mobile 

Lo sviluppo di applicazioni mobile rappresenta uno dei touchpoint più importanti per la realizzazione di prodotti e servizi digitali e, grazie all’evoluzione del settore, sono state messe a disposizione diverse strategie di sviluppo, ognuna con i suoi pro e con i suoi contro. Oggi, possiamo individuare 3 strategie principali per lo sviluppo mobile: 

 

  • Nativa: prevede la creazione di un'applicazione specifica per ogni piattaforma mobile, come ad esempio Android o iOS.  Gli sviluppatori creano e ottimizzano l'applicazione per funzionare al meglio su ciascuna piattaforma, utilizzando i linguaggi di programmazione e gli strumenti di sviluppo nativi di ciascuna piattaforma. Questa può essere la scelta migliore per quelle applicazioni che richiedono funzionalità avanzate e che hanno il focus sulle performance (ad esempio le applicazioni di gaming); tuttavia richiede costi maggiori di sviluppo poiché è necessario creare e mantenere diverse applicazioni per ogni piattaforma, oltre a richiedere skills specializzate e quindi difficili da trovare sul mercato. 

 

  • Cross-Platform: Questa strategia si basa sull'utilizzo di framework e tecnologie che consentono di scrivere una volta il codice e renderlo utilizzabile su piattaforme diverse, come ad esempio React Native, Xamarin o Flutter. Questa strategia permette di creare e mantenere un’unica versione dell’applicazione, riducendo notevolmente i costi di sviluppo e accelerando i tempi di rilascio. Rispetto all’approccio nativo le limitazioni si possono verificare in termini di perfomance e utilizzo di funzionalità, specifiche delle piattaforme.

 

  • Progressive Web App (PWA): prevede lo sviluppo di un'applicazione web che offra funzionalità simili a quelle di un'applicazione nativa. Le PWA funzionano su qualsiasi dispositivo che abbia un browser web moderno e non richiedono il download e l'installazione di un'applicazione dallo store. Questa strategia può ridurre ulteriormente i costi di sviluppo e le skill necessarie, oltre a offrire una maggiore scalabilità, in quanto l'applicazione può essere aggiornata e distribuita più facilmente. Tuttavia, le PWA hanno limitazioni per quanto riguarda la pubblicazione all'interno degli store ufficiali e nell’utilizzo di alcune funzionalità native dei dispositivi mobili. 

 

Quale strategia scegliere? 

 

La scelta della tecnologia più adatta dipende dalle caratteristiche specifiche della soluzione che si intende sviluppare. In questo contesto, GELLIFY supporta e consiglia i propri clienti nell’identificare la strategia più idonea

 

Nella nostra esperienza, tra le 3 strategie indicate sopra, quella Cross-Platform rimane quella più apprezzata, da un lato per l’ottimo rapporto costi/benefici e dall’altro per l’affermarsi di framework sempre più all’avanguardia. 

 

Tra questi, Flutter è diventato uno dei framework di sviluppo mobile più popolari al mondo per lo sviluppo di applicazioni mobile multipiattaforma.  

 

Come ogni tecnologia, anche Flutter è in continua evoluzione e per rimanere aggiornati sulle ultime novità e tendenze è importante partecipare a conferenze come il Flutter Heroes

 

Durante l'evento, sono state affrontate numerose tematiche di grande interesse tra cui: la sicurezza, il Widgetbook e le architetture. Di seguito esploreremo le novità e le best practices che caratterizzano questi temi. 

Sicurezza  

 

La sicurezza delle applicazioni mobile è un tema sempre più critico e rilevante, soprattutto considerando la quantità di dati sensibili che vengono gestiti dalle app. 

 

Durante l’evento, sono state svolte una serie di dimostrazioni pratiche di possibili attacchi, presentando alcuni tool specifici per Flutter che possano essere utilizzati per contrastare tali minacce. 

 

Uno dei principali strumenti emergenti è FreeRASP, disponibile sia per le app native che per i principali framework ibridi (Flutter, React Native, Cordova).  Le principali minacce che FreeRASP si pone l'obiettivo di contrastare sono: 

 

  • Tentativi di reverse engineering: meccanismi di offuscazione del codice applicativo e delle stringhe per contrastare l'accesso alle informazioni ad un potenziale hacker 
  • Tampering dell'applicazione: verifica che il codice applicativo non sia stato modificato rispetto alla versione rilasciata 
  • Esecuzione in sistemi compromessi: un'applicazione in esecuzione all'interno di un sistema compromesso o con privilegi elevati è soggetta a maggiori rischi di sicurezza 
  • Installazione da fonti non certificate: un'applicazione che non è stata installata tramite gli store ufficiali (Play Store per Android e App Store per iOS) è priva della sicurezza garantita dai processi di rilascio e certificazione di Apple e Google 

 

Infine, è stato posto il focus sui principali rischi elencati dalla fondazione no-profit OWASP e sulla situazione attuale delle applicazioni mobile presenti sul mercato in ambito di security. 

 

Widgetbook 

 

Oltre all’applicazione per il mondo del “gaming” o l'utilizzo di funzionalità di realtà aumentata, un tema di grande interesse è stata la presentazione di Widgetbook: uno strumento collaborativo per la presentazione di librerie componenti che possano andare a definire un “Design Language” composto da elementi di UI per applicazioni mobile che siano omogenei e riutilizzabili all’interno delle organizzazioni.  

 

La versione base consente di visualizzare i componenti e le relative varianti e di modificarne le proprietà dinamicamente direttamente dall'interfaccia dello strumento. La versione cloud aggiunge la possibilità per i designer di confrontare il componente sviluppato con la rispettiva controparte in Figma e decidere se accettare o rigettare il task. 

 

Se paragonato a Storybook, ovvero l'equivalente per il mondo web, è sicuramente ancora acerbo mancando di funzionalità evolute come, ad esempio, la generazione automatica del codice o l'integrazione automatizzata con piattaforme esterne come ZeroHeight. Va però considerato che si tratta di uno strumento molto recente e che sarà sicuramente evoluto nel corso dei prossimi mesi. 

 

Per quanto riguarda la nostra esperienza, stiamo utilizzando con successo Widgetbook all’interno di un progetto per la realizzazione di uno UI Kit mobile condiviso dall'intera organizzazione. I limiti evidenziati però non hanno costituito un impedimento. Infatti, è stato comunque possibile integrare i componenti sviluppati all'interno di ZeroHeight, seppur con un maggiore effort nella fase di setup. 

 

Architettura 

 

Non potevano ovviamente mancare tematiche architetturali come la navigazione, l’integrazione con il codice nativo e la gestione dello stato:  

 

Il team Flutter ha investito un effort importante per introdurre una nuova metodologia di navigazione che fosse sufficientemente evoluta per supportare casistiche più complesse come il deep linking o la navigazione tramite URL (ne abbiamo già parlato in questo video). Nonostante gli sforzi, questo nuovo strumento è stato percepito dalla community come troppo complicato, a causa dell'elevato numero di componenti e di flussi da dover gestire e ciò ha aperto la strada al successo di GoRouter, libreria per la navigazione che si sta affermando come standard. 

 

La possibilità di riutilizzare moduli realizzati in Kotlin e Swift e persino mostrare schermate native all'interno di una applicazione Flutter (o viceversa) sta diventando sempre più semplice, ampliando il ventaglio di casi d'uso in cui tale framework si rivela una soluzione efficace. Sarà sempre più semplice integrare sezioni realizzate in Flutter all'interno di app native già esistenti, dovendo prestare però le dovute attenzioni a garantire consistenza sia a livello di UI che nella gestione dello stato. 

 

Proprio per quest’ultimo, nonostante la crescente popolarità di Riverpod, BLoC rimane ancora lo state manager più popolare ed è stato infatti l'argomento principale di uno dei talk più seguiti della conferenza. La semplicità di utilizzo, la documentazione ricca di esempi e la chiara separazione fra le responsabilità dei vari elementi sono fra i motivi per cui ne abbiamo fatto uso in praticamente ogni progetto realizzato in Flutter. 

 

Degna di nota è anche la presenza di un talk dedicato a Frog, framework che consente la realizzazione di servizi di back end utilizzando Dart, il medesimo linguaggio di sviluppo di Flutter. Pur essendo una tecnologia ancora giovane ed acerba, testimonia la continua crescita che l’ecosistema di Dart sta avendo negli ultimi anni. Oggi infatti tale linguaggio, anch’esso realizzato da Google, può essere utilizzato per la realizzazione di applicativi mobile, web e desktop (grazie a Flutter), servizi di backend e console application. 

 

Conclusioni

 

Gli argomenti e i talk presenti in questa conferenza danno un'idea molto chiara del percorso di crescita che Flutter sta seguendo e sono in linea con quanto già emerso durante Flutter Forward, l'evento in live streaming internazionale che si è tenuto il 25 gennaio. 

 

Uno dei principali obiettivi è quello di aumentare i casi d'uso che Dart e Flutter sono in grado di supportare. Abbiamo citato in precedenza lo sviluppo backend e la realizzazione di videogame; oltre a ciò, sono già in cantiere l'interoperabilità con gli altri elementi presenti all'interno delle pagine HTML ed il supporto a Web Assembly. 

 

Nello specifico, quest’ultimo punto dichiara l’intenzione di Flutter di porsi sempre più come uno strumento in grado di rispondere alle principali sfide del futuro, senza però perdere di vista le casistiche odierne. Insomma, un framework moderno con un occhio al futuro. 

 

The latest

Purple News