Magazine Informatica

C’è app e app…

Creato il 30 ottobre 2012 da Andreachiarelli
Mobile apps

Fonte: Cristiano Betta su Flickr

Un po’ sulla scia delle dichiarazioni di Zuckerberg a proposito della scelta di fare marcia indietro nella creazione di app basate su HTML5, ho assistito ad alcune discussioni online e offline sulla validità dell’approccio nativo rispetto a quello Web o viceversa. Spesso ho avuto l’impressione che i sostenitori di una corrente di pensiero e dell’altra sostenessero le loro tesi un po’ per partito preso, probabilmente ignorando i dettagli della soluzione antagonista. Tra l’altro, sembra essere quasi ignorata o sottovalutata l’esistenza di una terza alternativa, quella della app ibride.

Proverò in questo post a delineare i tre approcci e i relativi vantaggi e svantaggi che presentano nello sviluppo di app per le più diffuse piattaforme mobile.

App native
Sono le app scritte e compilate per una specifica piattaforma utilizzando uno dei linguaggi di programmazione supportati dal particolare sistema operativo. Tra i principali vantaggi segnaliamo:

  • efficienza
    essendo compilate le app hanno maggiori prestazioni e la possibilità di effettuare chiamate di sistema dirette senza componenti intermedi
  • accesso all’hardware locale
    le app native possono accedere a tutte le funzionalità hardware del dispositivo: fotocamera, GPS, accelerometro, ecc.
  • integrazione
    le app native sono maggiormente integrate nel sistema operativo del dispositivo ospitante ed il loro look and feel è omogeneo con quello della specifica piattaforma
  • funzionamento offline
    normalmente le app native possono funzionare senza necessità di essere connesse ad Internet, a meno che non lo richiedano le specifiche funzionalità
  • app store
    per ciascuna piattaforma esiste un repository centralizzato in cui cercare le app e da cui installarle con pochi passaggi; per certi versi, però, questo potrebbe essere considerata una limitazione

Tra gli svantaggi possiamo segnalare:

  • costi
    in linea di massima i costi di sviluppo di un’app nativa non sono modici, considerando anche che ciascuna piattaforma richiede competenze differenti
  • mancanza di portabilità
    una app sviluppata per una piattaforma non può essere eseguita su una piattaforma diversa; occorre pertanto sviluppare app diverse per ciascuna piattaforma
  • gestione degli aggiornamenti
    la pubblicazione su un app store richiede l’approvazione del gestore e può richiedere giorni o settimane, senza contare che le policy di approvazione possono cambiare richiedendo un adeguamento della propria app

Web app
Si tratta di pagine Web ottimizzate per dispositivi mobili sfruttando le tecnologie Web, in particolare HTML5, JavaScript e CSS3.
Tra i principali vantaggi evidenziamo:

  • accessibilità
    l’app è accessibile tramite una semplice connessione Internet, indipendentemente dal tipo di dispositivo (smartphone o tablet) e dal tipo di piattaforma
  • relativamente economica
    per la realizzazione di una Web app vengono in genere riutilizzate competenze e strumenti già noti agli sviluppatori Web, quindi in linea di massima lo sviluppo risulta più economico delle app native; naturalmente questo dipende anche dal grado di complessità della specifica applicazione
  • distribuzione libera
    non è necessario pubblicare l’app su un web store, dal momento che sostanzialmente si tratta di un sito web; in certi casi una Web app viene inclusa in una app nativa soltanto per poter essere inclusa nell’app store e somigliare ad un’app nativa, ma rimane sempre una Web app
  • indipendenza dalla piattaforma
    essendo basata sugli standard Web una Web app girerà su tutte le piattaforme senza necessità di adeguamenti
  • aggiornamento istantaneo
    trattandosi sostanzialmente di un sito Web, l’aggiornamento delle pagine segue le stesse regole, pertanto è sufficiente un semplice refresh

Gli svantaggi più evidenti sono:

  • connessione attiva
    per poter utilizzare una Web app occorre essere connessi ad Internet
  • efficienza
    le prestazioni sono mediamente inferiori a quelle delle app native, a casua sia dalla latenza del trasferimento dati sia dal rendering delegato al browser, soprattutto per applicazioni che utilizzano molta grafica
  • mancato accesso alle risorse locali
    una Web app non può accedere al file system o ad altre risorse hardware come ad esempio la fotocamera

App ibride
Sono le app che cercano di sfruttare il meglio dei due approcci: sono scritte con tecnologie Web ma vengono eseguite localmente all’interno di un’applicazione nativa.
Tra i vantaggi elenchiamo:

  • accesso all’hardware locale
    come avviene per le app native, anche le ibride possono accedere alle risorse locali grazie all’infrastruttura creata dallo specifico framework utilizzato, come ad esempio PhoneGap o Titanium
  • funzionamento offline
    la parte Web delle app ibride è contenuta all’interno del wrapper nativo, quindi possono essere eseguite in locale senza necessità di una connessione Internet attiva
  • appstore
    una app ibrida è considerata alla stregua di un’app nativa, quindi può essere pubblicata su un app store
  • indipendenza dalla piattaforma
    il fatto di utilizzare tecnologie standard consente normalmente di riutilizzare lo stesso codice per le diverse piattaforme

Tra gli svantaggi possiamo evidenziare:

  • efficienza
    rispetto alle Web app, le app ibride azzerano i tempi di latenza dovuti al caricamento delle pagine Web, ma il rendering grafico è in ogni caso affidato ad un motore HTML; diciamo che dal punto di vista delle performance possono essere collocate a metà strada tra le Web app e le app native
  • dipendenza dal framework
    le funzionalità di interfacciamento con le risorse locali dipendono dal framework utilizzato, quindi potrebbero non essere complete o non supportate per alcune piattaforme
  • gestione degli aggiornamenti
    le problematiche di aggiornamento sono analoghe a quelle delle app native, quindi è necessario seguire l’iter di approvazione che può richiedere qualche tempo

Queste tre categorie di app rappresentano gli approcci più comuni allo sviluppo di software mobile e ciascuna ha aspetti positivi e negativi non in assoluto ma in relazione al compito che un’app deve assolvere. Come al solito, le diatribe sulla migliore tecnologia o sul migliore approccio rimangono sterili senza un obiettivo concreto ed ogni scelta è sempre un compromesso tra diversi fattori.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :

Dossier Paperblog