App Native vs Web App


Qual è la scelta migliore?


A cura di Matteo Giurdanella,


App Native vs Web App

L’introduzione degli smartphone e dei tablet ha rivoluzionato il modo di concepire le comunicazioni mobili e il concetto tradizionale di telefono cellulare, trasformando e sviluppando il mercato dei dispositivi mobili nell’ultimo decennio. Si tratta di un mondo ancora in continua evoluzione, sia per l’incessante diffusione dei dispositivi mobili sopra citati, sia perché questo nuovo modo di comunicare e il continuo utilizzo di tali dispositivi con funzionalità sempre innovative ha reso necessario l’introduzione di un nuovo tipo di Marketing: il mobile Marketing. Questo ha permesso la realizzazione di nuovi prodotti che prima non si avvicinavano neanche lontanamente all’utilizzo di un telefono cellulare. Tali prodotti sono appunto le “APP”, applicazioni che vengono sviluppate dai programmatori appositamente per i dispositivi mobili. Il motivo che ha permesso la diffusione di questo nuovo tipo di mercato è dato dal fatto che le persone trascorrono buona parte del loro tempo davanti a tali dispositivi; e dunque le aziende, che prima offrivano solo servizi tramite PC, adesso con l’utilizzo di “APP” sono in grado di farlo anche attraverso un dispositivo mobile. Negli anni si sono sviluppate diverse tipologie di App Mobile.

Tra le più comuni vi sono le App Native e le Web App. Sviluppare un’APP non è una cosa da poco. Il grado di difficoltà dipende molto dall’idea alla base del progetto. Inoltre, i grandi colossi dell’informatica che producono S.O mobile non aiutano i programmatori in questo, in particolare nel caso in cui il programmatore decide di scrivere un’App Nativa. Un’App Nativa, infatti, deve essere scritta con il linguaggio nativo del S.O mobile (Objective-C/Swift su iOS, java su Android, .Net su WindowsPhone) e ciò comporta che debba essere riscritta ogni qual volta si decida di cambiare S.O. Allo stesso tempo, un’App Nativa porta con sé numerosi vantaggi quanto a prestazioni, peculiarità e visibilità per lo sviluppatore o la software/house. Il vantaggio principale di tale tipologia consiste nel poter interagire direttamente sia con il S.O che con l’hardware del dispositivo così da poter sfruttare al meglio le risorse offerte da quest’ultimo, evitare lo spreco di risorse ed eventualmente creare un’app che funzioni offline, così da sprecare meno batteria e connessione dati, migliorando le prestazioni dell’intero sistema.

 

Parlando in termini di visibilità, tutti i S.O in commercio hanno un proprio Store nel quale le APP vengono “pubblicate” (possibilità di scaricare in maniera gratuita o a pagamento), così da creare una “vetrina” di app come un vero e proprio negozio. Questo procedimento porta con sé dei piccoli svantaggi. E’ necessario acquistare una licenza per poter pubblicare sul singolo Store di ogni S.O e, inoltre, prima che l’app venga pubblicata ne vengono analizzati i contenuti, per verificare se essi rispecchino o meno le direttive. Lo stesso non si può affermare per le Web App. Esse sono normali applicazioni Web che permettono di simulare l’aspetto di un’app nativa, poiché quest’ultima è certamente più orientata all’user experience.

Per la loro natura molto mutevole, in quanto applicazioni web, esse non possono essere pubblicate negli Store, poiché è impossibile garantirne il contenuto. Questo potrebbe essere un vantaggio per lo sviluppatore o la software/house che non deve pagare alcun tipo di licenza per la pubblicazione dell’app, ma anche uno svantaggio, in quanto l’app può essere visitata solo dal web, in cui non esiste alcun tipo di “vetrina”. Le Web App sono per certi aspetti più semplici da sviluppare delle App Native, poiché non vanno in contro a tutti i problemi di adattabilità della risoluzione tipici di quest’ultime (bisogna gestire a mano i layout dell’app in base alla risoluzione e grandezza dello schermo). Inoltre sono sempre aggiornate, poiché i contenuti vengono ricaricati ad ogni richiesta di collegamento. D’altro canto esse non possono comunicare né con il S.O, né con l’hardware del dispositivo. Esse interagiscono con il dispositivo tramite il browser, ciò comporta un enorme spreco di risorse, poiché è come se aprissimo un’app nell’app, e un grande spreco di connessione dati, poiché necessita di una connessione ad internet per tutta la durata dell’utilizzo.

Negli ultimi anni si è sviluppata una nuova forma di app che consiste in un ibrido tra le due appena descritte: App Ibride. Esse consistono nel creare una guscio esterno che consiste in una vera e propria App Nativa, così da poter interagire con il dispositivo, e un core interno dotato di strumenti per la gestione di interfacce HTML tipiche delle Web App, così da essere orientata più al multi-platform rendendo la vita più semplice agli sviluppatori. E’ difficile affermare quale tipologia di App sia migliore di un’altra. Di certo è necessario stabilire a priori se l’app debba interagire con l’utente o semplicemente esporre dei contenuti (ad esempio l’app nativa di Linkedin manda le notifiche push quando una persona compie gli anni o quando si viene taggato, invece la web app non è in grado di farlo). Bisogna inoltre, in base alle funzionalità, stabilire se è necessario l’utilizzo di hardware dedicato da parte dell’app oppure no, come ad esempio nel caso di alcuni giochi che utilizzano l’accelerometro.