App ibride o app native? Questo è il dilemma

Le protagoniste della svolta epocale portata dai dispositivi mobile sono senza dubbio le app: ma è meglio creare un'app nativa o una ibrida? Vediamolo insieme.

Innanzitutto devo spiegarti cosa significa app ibrida e app nativa, introducendo anche un terzo concetto che è quello di web app.

App native vs ibride

Premesso che siamo in ambito mobile, possiamo avere diversi tipi di applicazioni:

  • App native: sono applicazioni create appositamente per un certo sistema operativo mobile, scritte con il linguaggio della piattaforma su cui andranno a girare e installabili sul dispositivo. Ad esempio, nel caso del sistema operativo iOS, un'app nativa sarà scritta in linguaggio Objective-C o Swift e scaricabile da App Store, mentre per Android sarà scritta in Java e sarà possibile eseguire il download su Google Play Store.
  • Web app: sono le applicazioni accessibili tramite browser, non installabili su un dispositivo, scritte in un linguaggio cross-platform come HTML; queste applicazioni non sono disponibili negli store. Se provi ad esempio ad accedere a Twitter da browser mobile, vedrai che la pagina che ti si aprirà avrà un'interfaccia molto simile all'app Twitter nativa, ma non potrà essere installata sul dispositivo.
  • App Ibride: le app ibride sono applicazioni scritte in un linguaggio cross-platform (in genere Javascript + HTML5) come le web app, che però possono essere incapsulate tramite Web View nel linguaggio nativo di una certa piattaforma. Si possono quindi scaricare dagli store di riferimento ed installare sui rispettivi dispositivi: hanno un discreto accesso al sistema operativo anche se non sono state scritte interamente nel linguaggio specifico della piattaforma.

Il mondo degli sviluppatori è diviso su quale sia la strada migliore da seguire, in base a diverse caratteristiche tipiche di ciascun tipo. In questo articolo, non ti dirò qual è secondo noi l'approccio migliore, ma ti elencherò i pro e i contro che incontrerai nel commissionare l'uno o l'altro tipo di app.

Partiamo dalle app native: esse sono quelle che si interfacciano al sistema operativo mobile nel modo più completo. Essendo sviluppate per quella specifica piattaforma possono interfacciarsi del tutto con le API della stessa, andando così ad interagire totalmente con l'hardware e il software (o comunque con le parti hardware e software rese accessibili dal gestore della piattaforma). Ne consegue che potranno sfruttare le funzioni più importanti del device integrandole e potenziandole: stiamo parlando dell'accesso alla fotocamera, alla geolocalizzazione, alle funzioni di pinch-to-zoom e molte altre.

Senza dubbio, questo approccio fornisce una user experience sensazionale, ma ha anche dei punti negativi: se vuoi rendere disponibile il software su più piattaforme, dovrai trovare qualcuno in grado di programmare in linguaggi diversi. In più il tempo di sviluppo sarà molto lungo poiché, nonostante il risultato finale sia più o meno lo stesso in tutte le piattaforme, l'app dovrà essere scritta in linguaggi diversi.

Per quanto riguarda le web app, esse hanno lo svantaggio di non poter interfacciarsi con le API del sistema operativo e di non poter quindi accedere ad hardware e software del dispositivo. Esse non sono installate sul device ma su un server web, quindi sono accessibili solamente online in modalità “responsive". Il loro grande vantaggio è quello di non incidere particolarmente o per nulla sulla memoria RAM e sulla capacità di calcolo del dispositivo in uso: in sostanza, se ho uno smartphone con un processore mediocre e un altro con un processore potente, la web app funzionano con le medesime prestazioni su entrambi. La differenza qui la fa una connessione internet più o meno veloce.

Questo approccio è perfetto per applicazioni per cui non è strettamente necessario accedere alle funzioni “fisiche" del device e, se vuoi limitare i tempi di immissione sul mercato, probabilmente è quello che fa per te.

Le app ibride, dal canto loro, possiamo dire che raccolgano gli aspetti positivi delle prime due: time-to-market molto ridotto (devo programmare una sola volta e poi il codice verrà incapsulato, tramite certe operazioni, negli specifici “gusci" costituiti dai sorgenti di ciascuna piattaforma) e integrazione con le funzioni software e hardware del device.

Un'app ibrida non sarà mai fluida e ottimizzata come una nativa, e comunque richiederà un tempo di sviluppo superiore a un'app web. Essa però potrebbe essere la soluzione che fa per te se cerchi qualcosa che possa essere immesso sul mercato immediatamente ad un prezzo relativamente contenuto, o se il programmatore a cui ti rivolgi non conosce tutti i linguaggi di programmazione delle piattaforme mobile.

Detto questo, noi di DevInterface pensiamo semplicemente che non ci sia un approccio migliore di un altro, o meglio il migliore per noi è quello che che tu ritieni migliore. Il nostro obiettivo primario è quello di creare un prodotto eccellente, l'approccio che sceglieremo tra i tre verrà definito in base appunto alle tue esigenze.

Se desideri creare un'app per la tua azienda, faccelo sapere:

contattaci via mail, Facebook o Twitter.