Real Estate e processi aziendali: lo sviluppo custom Enterprise
Il miglioramento dei propri workflow operativi
Daniele Malgeri, Stefano Spagnolo
All’inizio dello sviluppo di un'applicazione mobile uno degli aspetti da tenere in considerazione è la scelta della tecnologia da utilizzare, con l’intento di completare il lavoro garantendo la qualità del prodotto finale, rispettando i tempi di consegna e ottimizzando le risorse a propria disposizione.
Quello che ci si può chiedere è quindi se l'utilizzo di una tecnologia ibrida, che attraverso l'utilizzo dei linguaggi HTML5, CSS e JavaScript promette di sviluppare una sola app da cui poi verranno facilmente create due versioni (una per iOS e un'altra per Android), possa effettivamente essere un'utile alternativa alla scelta di tecnologie native al fine di snellire il processo di sviluppo, ridurre il mantenimento del codice e garantire gli stessi risultati attesi.
Ciò che si potrebbe pensare è che: se è possibile sviluppare due applicazioni a partire dallo stesso codice, allora il tempo impiegato dovrebbe di conseguenza dimezzarsi.
Come si può immaginare non è così semplice e per questo motivo abbiamo sperimentato lo sviluppo della stessa applicazione sia con una tecnologia ibrida (Xamarin) che con tecnologie native (Android e iOS) al fine di analizzare concretamente i possibili vantaggi/svantaggi e capire se a livello di performance sugli stessi dispositivi vi fossero differenze.
Tramite Xamarin, la maggior parte delle schermate dell’app possono essere realizzate utilizzando delle componenti standard, denominate "controls", che realizzano l’interfaccia grafica dell’applicazione adattandola automaticamente al sistema operativo del dispositivo su cui è installata l’applicazione, permettendo di dimezzare effettivamente il tempo di sviluppo necessario alla realizzazione della stessa schermata.
Inoltre Xamarin è in grado di adattare l’esperienza utente a seconda degli standard del dispositivo utilizzato, apportando leggere modifiche al design dell’applicazione in funzione del sistema operativo.
Quest’ultima caratteristica può però talvolta essere un’arma a doppio taglio, in particolare quando è richiesto che l’applicazione rispetti un design condiviso ed identico indipendentemente dal sistema operativo. Le leggere differenze dal punto di vista grafico e stilistico, che si vengono a creare sfruttando questi meccanismi di adattamento automatico, possono portare così ad un aumento del tempo necessario allo sviluppo al fine di "forzarlo" a mantenere il layout concordato.
Motivo per cui la scelta di una tecnologia ibrida, in quest’ultimo caso, potrebbe non avvantaggiarci quanto ci saremmo aspettati, allineandoci quasi ai tempi necessari al tempo di sviluppo di due applicazioni native.
Tutte le funzionalità e i comportamenti considerati "di base" come: accesso alla fotocamera, accesso alla galleria fotografica, geolocalizzazione, interazione con il calendario del dispositivo, notifiche push, ecc. sono già presenti, e considerati stabili e performanti, all'interno del "pacchetto" Xamarin. Alle volte, però, le funzionalità concordate durante le fasi di analisi richiedono l'implementazione di alcuni comportamenti specifici per la singola piattaforma o dispositivo.
In questi casi è necessario intervenire puntualmente tramite la scrittura di queste funzionalità con il codice nativo, dunque 2 volte (Android+iOS), annullando, di fatto, quelli che sarebbero stati i possibili vantaggi dell'approccio ibrido.
Un'opzione è sempre quella di chiedere aiuto alla community. Le tencologie ibridie come Xamarin, infatti, sono ad oggi molto diffuse e seguite da community molto grandi di sviluppatori che crealizzano plugin di ogni tipo estendendo le funzionalità di base garantite dal "core" di Xamarine permettendo quindi, in alcuni casi, di dimezzare nuovamente i tempi di sviluppi e ottenere quindi quanto auspicato.
Un altro aspetto molto importante per poter decidere quale approccio utilizzare è sicuramente quello relativo alle performance dell’applicazione. In particolare, gli aspetti che si possono prendere in considerazione sono:
Di seguito i risultati dei nostri test:
Come si può vedere dal grafico, il consumo di CPU e RAM risulta leggermente inferiore nel caso dell’app nativa, ma è altrettanto vero che questo dettaglio può essere pressoché trascurabile poiché la maggior parte degli smartphone e dispositivi mobile è oramai dotato di caratteristiche RAM molto avanzate.
Non a caso, la differenza sopra evidenziata si va ad assottigliare nel momento in cui prendiamo un dispositivo più potente, dotato di hardware di più elevate prestazioni (in particolare una maggiore CPU).
La differenza sul consumo di CPU aumenta leggermente quando prendiamo in considerazione un dispositivo Apple/iOS.
Possiamo quindi affermare che l’utilizzo delle risorse è abbastanza simile tra le due implementazioni ed al crescere delle prestazioni hardware del dispositivo diminuisce la discrepanza tra ibrido e nativo fino a diventare impercettibile per l'utente finale.
Risulta quindi effettivamente vantaggiosa la scelta di una tecnologia ibrida come Xamarin qualora si tratti di applicazioni, come nel nostro caso, con funzionalità di base, comportamenti e design grafico standard rispetto a quelle che sono al giorno d’oggi le linee guida di Android e iOS.
Nel caso di app in cul le personalizzazioni grafiche avessero un ruolo più importante o sia necessaria un'integrazione completa con l'hardware e le API di uno specifico dispositivo, la scelta tra i due approcci sarebbe quindi equiparabile e dunque, senza i vantaggi promessi dall'utilizzo di tecnologie ibride, l'approccio nativo rappresenterebbe la scelta più sicura.
Certimeter Group crede nei valori, nella passione e nella professionalità delle persone.