Flutter Architecture: corso gratuito in italiano
Come strutturare al meglio lo scheletro di app Flutter dal punto di vista della gestione e dello scambio di dati.

Flutter Architecture: corso gratuito in italiano udemy course
Come strutturare al meglio lo scheletro di app Flutter dal punto di vista della gestione e dello scambio di dati.
Qualsiasi tipo di app tu voglia sviluppare, che sia un avrai sempre bisogno di interagire con delle API e database/file locali, ottenere dei dati grezzi e mostrarli nelle varie schermate dell'app, gestire sessioni e stati a livello globale.
Imparerai a fare tutto ciò grazie alla guida e alle best practice del nostro formatore e sviluppatore Senior Flutter.
Il progetto
In questo corso vedremo come realizzare un’applicazione per controllare l’esito delle partite di calcio applicando una serie di best practices dal punto di vista architetturale ed ingegneristico.Andremo a costruire un’app le cui componenti saranno organizzate secondo la filosofia Pine, un pattern architetturale in cui gli elementi che lo compongono sono organizzati gerarchicamente e si scambiano informazioni seguendo una precisa direzione.
Data Transfer Object
La modellazione di un Data Transfer Object è importante quando si richiede di far transitare diversi oggetti da un layer ad un altro. Quando un repository richiede dei dati ad un layer inferiore come quello network o quello database, avere un oggetto di trasporto che non sia strettamente legato ad un model o una entity è di fondamentale importanza per far transitare i dati.
Mapper
Quando i DTO raggiungono il livello superiore di repository, essi devono essere trasformati in models, oggetti che hanno un significato all'interno della nostra applicazione. Molto spesso i DTO contengono dati troppo grezzi o inutili per essere utilizzati all'interno di un model che magari verrà utilizzato in un determinato contesto o in una specifica interfaccia.
Providers
Sono il cuore della logica di business. Questo layer si occupa di manipolare direttamente i dati, ad esempio eseguendo interrogazioni ad una base di dati, eseguendo query verso delle REST API, accedendo ai dati memorizzati sul file system, eccetera. I dati ottenuti dai services vengono successivamente inscatolati in dei DTO e inviati al layer superiore, solitamente quello di repository.
BLoC
Arrivati alla cima della nostra architettura a layer, si rende necessario mettere in comunicazione la logica di business con il layer di presentation, ossia le nostre interfacce grafiche. A questo livello possiamo utilizzare qualsiasi pattern di state management. Noi abbiamo scelto di utilizzare BLoC per sottoscriverci ad eventi, eseguire comportamenti, ed emettere stati in funzione dell'output ricevuto.
Ascoltare i cambi di stato
Oltre a costruire e ad iniettare i BLoC all'interno della gerarchia dei widget, abbiamo bisogno di reagire ai suoi cambi di stato per consentire alle nostre interfacce grafiche di reagire di conseguenza. È importante comunicare all'utente un feedback su cosa sta accadendo nel momento in cui scateniamo un'azione.
L'architettura Pine
È arrivato il momento di rimuovere l'implementazione artigianale di Pine per sostituirla con una libreria costruita appositamente per realizzare questo genere di architettura.