Il mondo delle App dal punto di vista architetturale II

DaOutsourcing Italia- 28 / 07 / 2017

Aristide Di Francesco

Nel post precedente abbiamo introdotto il pattern architetturale MVVM nel contesto Mobile. In questo post illustreremo quanto spiegato con un esempio calato nella realtà.

Dobbiamo scrivere una App che consenta ad una compagnia aerea di vendere biglietti. Il nostro cliente avrà quindi una sezione di booking per l’acquisto dei biglietti. Dovremo predisporre una parte di presentazione ed una parte di colloquio con il server che restituirà i dati da visualizzare. Utilizzando il pattern MVVM potremmo dividere il gruppo di sviluppatori in modo tale che ci sia: chi si occupa della parte grafica del Booking, chi della parte di BackEnd (che metterà a disposizioni le API fornite in formato REST che permetteranno tutte le varie operazioni) e chi del Model per il formato dello scambio dei dati. In questo modo avremo un incremento della velocità di sviluppo ed una interazione minima tra gli sviluppatori. Sicuramente una App del genere non è troppo complessa – e, per i motivi che abbiamo già visto, utilizzare un pattern tipo MVC non conviene. MVVM è appunto un pattern più leggero, granulare e con una altissima separazione tra i vari layer. Il codice verrà scritto nel migliore dei modi e garantirà, oltre ad un aumento della velocità di sviluppo (Velocity), anche un risparmio di memoria (non ci dimentichiamo che stiamo lavorando su un dispositivo mobile che normalmente è carente sia di memoria che di capacità computazionale).

Come altro vantaggio a livello progettuale, possiamo continuare ad utilizzare la nostra parte di presentazione ignorando tutto il codice di controllo che vi sta “dietro” (CodeBehind).

Ricapitolando: per una App Mobile, mentre con MVC avremmo un inutile incremento della complessità architetturale (inefficienza) e della complessità di sviluppo (a discapito del team di risorse di sviluppo); MVVM ci garantirà invece una diminuzione significativa di personale e non sarà necessaria una conoscenza specifica di altre tecnologie.

Un possibile schema architetturale per la nostra App mobile che utilizza MVVM potrebbe essere il seguente:

Per renderci conto della flessibilità di questo pattern possiamo analizzare brevemente lo schema di cui sopra. La distinzione tra i vari layer di una architettura a tre livelli è netta.

Nel layer centrale, che riguarda la parte Mobile, c'è la nostra architettura a tre livelli che segue il pattern MVVM.

La View permette la sola visualizzazione dei dati.

Il ViewModel che fa da intermediario tra vista e modello, è responsabile della gestione della logica della vista.

Il model è connesso direttamente al db, oppure ad un eventuale BackEnd, attraverso chiamate di tipo REST.

Come possiamo immaginare, questo sistema apporta un vantaggio evidente: poichè il ViewModel è il responsabile dei dati della vista, li può fornire in un modo più efficiente ed i test possono essere effettuati qui, avendo quindi una netta separazione fisica con la vista.

Per concludere: ogni pattern architetturale, ha i suoi svantaggi e vantaggi. Questi sono però strettamente collegati all'uso che se ne fa, ed al suo contesto. Nel caso specifico, per le applicazioni per mobile di ultima generazione, il "Cross Platform" risulta essere molto interessante e estremamente conveniente di termini di tempistica per lo sviluppo, per il testing e per l’economicità del progetto.

Nel prossimo articolo parleremo di Cross Platform, e di quali vantaggi porti sia in termini di progettazione, che di sviluppo e di business.

 

 

 

Add new comment

Share