[MOBILE] Tipologie di applicazioni "mobile"

Rispondi
Roberto
Amministratore
Messaggi: 160
Iscritto il: 19/12/2009, 19:30

[MOBILE] Tipologie di applicazioni "mobile"

Messaggio da Roberto »

I telefoni di oggi (o meglio, smartphone) riproducono musica, scattano foto, registrano video, si connettono a reti Wi-Fi, accedono al web, supportano i formati piu' comuni di documento (PDF, Word, Excel), ma soprattutto e' possibile integrarli di funzionalita' ulteriori attraverso le APP, applicazioni di terze parti.

Piu' della meta' del traffico online arriva su dispositivi mobili e circa il 90% del tempo viene trascorso utilizzando delle app piuttosto che servizi accessibili tramite browser web. Questo perche' le app sono piu' facili da usare rispetto ai browser, permettono di consumare in modo migliore i contenuti su un telefono cellulare e possono funzionare anche in assenza di connessione.

Un altro grande vantaggio delle app mobili e' avere a disposizione l'utilizzo delle notifiche PUSH che, come canale di comunicazione, si distingue di gran lunga dall'e-mail e da altri strumenti con tassi di apertura e tassi di coinvolgimento molto piu' elevati.

Esistono diverse tipologie di “app mobile”:
  • App mobile native
  • App mobile web
  • App mobile ibride
  • App mobile multipiattaforma
Un'app nativa e' un'applicazione software creata appositamente per un dispositivo mobile. Essa utilizza un linguaggio di programmazione specifico per il sistema operativo del dispositivo per cui la si sta realizzando, nel caso di Android il linguaggio principale e' Java ma negli ultimi anni ha anche preso piede anche Kotlin mentre nel caso di iOS per diversi anni il linguaggio di riferimento e' stato Objective-C e poi ancora Swift.

Cio' significa che un'app nativa puo' funzionare solo nell'ambiente per cui e' stata sviluppata, ad esempio un'app iOS non puo' essere eseguita su dispositivi Android, dovrebbe essere ricodificata.

Un'app web non e' altro che la classica Web Application realizzata con tecnologia "responsive" in modo tale da adattarsi alla tipologia di dispositivo con cui la si sta utilizzando. Questi tipi di applicazioni permettono un facilissimo accesso dai dispositivi mobili ma non permettono l'utilizzo dell'hardware del dispositivo e trovandosi su server remoti non e' possibile l'accesso off-line.

Un'app ibrida e' un'applicazione software che implementa e fa coesistere funzionalita' native e caratteristiche tipiche di una Web Application. Una piattaforma completa per lo sviluppo di app ibride e' Cordova, un framework distribuito da Adobe che permette di realizzare applicativi con tecnologie web, "impacchettandoli" in una base nativa attraverso l'utilizzo di un componente chiamato Webview che lavora come fosse un browser.

Un browser web per dispositivi mobili e' in genere formato da due componenti, un motore che legge del codice e lo trasforma in informazioni visive per l'utente e poi c'e' l'interfaccia utente che e' composta dalla barra degli indirizzi, schede, segnalibri, estensioni, etc. etc... Una Webview e' fondamentalmente solo il motore del browser, senza l'interfaccia utente e cio' consente di sostituirla con elementi dell'interfaccia utente mobile, facendo sembrare che una pagina web faccia effettivamente parte di un'app mobile senza bisogno di implementare codice nel linguaggio di programmazione del sistema operativo del dispositivo.

Un altro framework per lo sviluppo di app ibride e' Ionic, il cui stack tecnologico e' composto da Cordova, che fornisce l'infrastruttura, e Angular per strutturare i componenti dell'applicazione.

Un'app multipiattaforma invece fa ricorso ad un unico linguaggio di programmazione per la scrittura dell'app, che potra' poi essere riconvertita e adattata ai vari sistemi operativi supportati traducendola nei loro linguaggi nativi. Si sono affermati diversi framework per lo sviluppo cross-platform, tra cui Titanium, Xamarin, Flutter e Dart, in cui il framework si interpone tra il codice sorgente dell'applicazione e il sistema operativo del dispositivo.

Da quanto raccontato finora possiamo individuare due tipologie di app mobile, ibride e native.

VANTAGGI DI UN’APP IBRIDA:

- semplicita' di sviluppo, per un'app di tipo nativo infatti avremo bisogno di uno sviluppatore mobile per ogni sistema operativo per cui l'app dovra' funzionare e di uno sviluppatore web, mentre le app ibride sono sostanzialmente delle Web Application con un po' di codice mobile

- semplicita' di aggiornamento dei contenuti, ogni volta che si aggiorna il contenuto della Web Application, anche il contenuto dell'app ibrida si aggiorna, cio' comporta meno lavoro e complessita' a lungo termine da gestire

- velocita' di sviluppo, lo sviluppo di app native richiede molto tempo, in genere almeno sei mesi per una prima versione, le app ibride richiedono appena una frazione di quel tempo, la maggior parte del lavoro, infatti, e' gia' fatto con il codice della Web Application

- costi di sviluppo, un app mobile nativa, a seconda della sua complessita', può costare tra i 10.000 e i 100.000 euro per tipologia di dispositivo (nel caso di iOS e Android il costo, quindi, raddoppia) oltre al costo di manutenzione che di solito si aggira attorno al 10-20% del costo di sviluppo. Lo sviluppo di un’app ibrida e' invece molto piu' economico (i costi partono dai 1.000 euro) oltre al fatto che sono anche piu' economiche da mantenere poiche' richiedono meno manodopera e competenze

- integrazione piu' semplice delle funzionalita' del sito web, con un'app ibrida, infatti, tutto cio' che funziona sulla parte web funzionera' allo stesso modo nell'app mobile. In un'app nativa invece in base al tipo di dispositivo per cui la si sta creando potrebbero esserci difficolta' a ricreare alcune funzionalita'

VANTAGGI DI UN’APP NATIVA:

- flessibilita' di sviluppo, sviluppare un'app nativa permette di avere il controllo su ogni pixel dell'app, ogni interazione, ogni schermata puo' essere personalizzata nel modo desiderato

- migliori prestazioni, le app native generalmente offrono prestazioni piu' elevate in quanto sono create appositamente per il sistema operativo del dispositivo su cui sono installate. Cio' le rende piu' veloci e fluide nella maggior parte dei casi e possono funzionare anche senza una connessione

- compatibilita' hardware, essendo progettate per i dispositivi mobili, le app native semplificano l'accesso alle funzionalita' hardware (fotocamera, microfono, GPS, etc. etc..). Anche un'app ibrida puo' utilizzare le funzionalita' del dispositivo ma generalmente e' un po' piu' difficile farlo

- semplicità di approvazione degli App Store, per le app native il processo di approvazione degli store iOS o Google e' piu' semplice ma anche le app ibride app di alta qualita' sono indistinguibili dalle app native e superano anch'esse agevolmente i test di approvazione degli store

Possiamo pertanto concludere che va preso in considerazione lo sviluppo di un'app nativa se questa è il fulcro del modello di business e i servizi vengono utilizzati quasi esclusivamente su dispositivi mobili; le app ibride sono le migliori per convertire siti Web o Web Application esistenti per essere utilizzati su dispositivi mobili.
Rispondi