Software

Sviluppo app mobile: nativo (apple e Android) o ibrido (Xamarin) ?

Le differenze nella programmazione delle applicazioni mobile

Andrea Pileci, Stefano Spagnolo Gennaio, 2020
Sviluppo app mobile: nativo (apple e Android) o ibrido (Xamarin) ?

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.

Due app nella metà del tempo

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.

Interfaccia grafica ed esperienza utente (UI/UX)

Standardizzazione delle componenti dell’interfaccia grafica

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.

Flessibilità dell’esperienza utente

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.

Personalizzazioni per lo specifico dispositivo

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.

Confronto sulle performance

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:

  • Tempo di compilazione
  • Tempo di installazione
  • Uso della CPU
  • Uso della RAM
  • Dimensione dell’APK

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.

Conclusioni

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.

Articoli correlati

Software

Articoli in evidenza

Approfondimenti

UNISCITI A NOI. INVIA LA TUA CANDIDATURA

Certimeter Group crede nei valori, nella passione e nella professionalità delle persone.