app nativa o web

Questa รจ la domanda che molte persone che si affacciano per la prima volta nel mondo mobile dovrebbero porsi. Se avete in progetto di voler realizzare una applicazione mobile, รจ bene che prima abbiate bene in mente la differenza tra le due tipologie.

Web App

E’ una pagina web, accessibile da qualsiasi smartphone che supporta un web browser ed รจ connesso a Internet. Scritta in HTML5, JavaScript e CSS ha le sue facce negative e positive.

I pro

โ€ข Costa poco svilupparla perche’ non richiede grosse competenze tecniche. Un webmaster รจ in grado di svilupparla facendo attenzione a scrivere i fogli di stile (CSS) senza dimensioni fisse (no width e height in px), quindi utilizzando solo dimensioni in percentuali. Inoltre vi sono dei plugin come jQuery Mobile che semplificano di molto il lavoro per coloro che non sono tanto esperti di JavaScript per la gestione degli eventi. Un evento รจ per esempio lo scroll, il touch su un elemento o lo swipe.

โ€ข Veloce da sviluppare: non richiedendo grosse competenze tecniche sia il tempo di sviluppo che di testing รจ dimezzato rispetto alla creazione di una applicazione nativa.

โ€ข Facile da aggiornare: essendo una pagina web รจ sempre disponibile online e con un semplice refresh della pagina dal browser del telefonino รจ possibile visualizzare aggiornamenti grafici, strutturali e testuali.

โ€ข Accessibile ovunque: basta avere qualsiasi dispositivo connesso a internet e la webapp รจ possibile visualizzarla su qualsiasi device. Che sia uno smartphone, un tablet o un minipc non importa, perchรจ grazie al foglio di stile scritto in percentuale (e non in dimensioni fisse), la GUI si adatta automaticamente alle dimensioni schermo facendola sembrare una vera e propria applicazione. Con dei meta tag speciali รจ possibile anche far scomparire la barra di stato, disabilitare il ridimensionamento automatico, lo zoom dell’utente e impostare l’icona dell’applicazione in caso l’utente decide di fare il bookmarking del sito. Tale icona sarร  visualizzata nel menu delle applicazioni, proprio come una vera app.

โ€ข Streaming media: rispetto a un’app nativa lo streaming dei contenuti multimediali รจ gestito meglio rendendo il tutto molto piu’ fluido e veloce.

โ€ข GPS, fotocamera e audio recorder grazie ad html5 sono sensori che possono essere utilizzati senza dover per forza far uso di applicazioni native.

I contro

โ€ข Non รจ possibile inviare a tutti coloro hanno installato l’applicazione le notifiche push. Tuttavia ci sono delle via alternative che si possono prendere per simulare una cosa simile alle notifiche push: far refreshare la webapp ogni tot ore in automatico e inserire all’interno dei semplici alert (popup) con il messaggio da visualizzare.

โ€ข Niente stores. Se volevate conquistare la vetta di Apple Store, scordatevelo. Anche se vi sono degli stores dedicati appositamente alle webapp (ci sono per Chrome, Apple e molti altri) non รจ assolutamente la stessa cosa, per ora. Unica eccezione la fanno i sistemi operativi con Android: molti riesco a pubblicare sul Market Android la loro webapp perchรจ usano il codice nativo per fare un “iframe” (termine tecnico: WebView) della pagina web e non essendoci controlli manuali di nessun genere da parte di Google, l’applicazione sarร  approvata e distribuita.

โ€ข Funziona solo online: se il telefono non รจ connesso a Internet i vostri utenti non potranno accedervi. In veritร  se lo sviluppatore ha adottato un sistema particolare di local caching si puo’ fare in modo che il telefono sia connesso a internet solo la prima volta che viene aperta la webapp. Le successive volte che si prova ad accedere alla webapp senza connessione alla rete viene utilizzata la cache per visualizzare i vostro contenuti.

Quando utilizzarla

โ€ข Necessitร  di essere compatibili con tanti dispositivi: mobile e non.

โ€ข Divulgazione di informazioni di consumo.

โ€ข Convertire un sito web in un sito ottimizzato per dispositivi mobile. App Nativa: Le applicazioni native sono sviluppate in linguaggio macchina e devono essere scritte e compilate appositamente per ogni tipo di sistema operativo supportarto dal device. Per esempio le applicazioni per iOS (iPhone/iPad/iPod) sono scritte in Object-C, quelle per Android sono sviluppate in Java mentre quelle per Windows Mobile 7 sono sviluppate ambiente .NET. Anche le applicazioni native hanno i loro pro e contro.

I pro

โ€ข Possibilitร  di inviare delle notifiche push geolocalizzate. Le notifiche push sono dei messaggi che si possono inviare a tutti coloro che hanno installato la vostra applicazione. Simili a degli SMS sono molti utili per fare marketing sul mobile.

โ€ข Accesso a tutti i sensori hardware installati sul dispositivo: NFC, accellerometro, GPS, fotocamera, magnetometro, sensore di prossimitร , di luminositร  di posizionamento e altri.

โ€ข Pubblicazione gli stores: รจ una delle voci piu’ importanti perche’ tali applicazioni consentono di essere reperibili nei negozi virtuali di Apple, Google, Blackberry e Microsoft.

โ€ข Modalitร  offline: le applicazioni native devono essere scaricate e installate su ogni dispositivo mobile. Una volta compiuta questa semplice operazione sarร  possibile utilizzarla sia online che in modalitร  offline. Le applicazioni per l’Apple Store seguono una procedura un po’ complessa per la compilazione dell’applicazione prima di poter essere installata perchรจ necessita la creazione di diversi certificati (sviluppatore e id applicazione); se ti interessa approfondire il processo vedi qui.

โ€ข GUI piu’ reattiva perchรจ vengono effettuate chiamate dirette di sistema e il codice non รจ interpretato come nelle webapp da un browser ma รจ scritto direttamente in codice macchina.

I contro

โ€ข Costosa: sviluppare una applicazione nativa base, pur quanto semplice possa essere tra sviluppo e beta testing vi sono almeno 30 giorni di lavoro, quindi il costo di un applicazione custom nativa non รจ meno di 5.000 euro per sistema operativo.

โ€ข Poco flessibile: se necessiti di aggiornamenti rapidi della GUI o comunque variazioni importanti di usabilitร  dell’applicazione vi sono tempi di sviluppo e di approvazione negli stores troppo lunghi.

โ€ข Tempi di aggiornamento possono variare a seconda dello stores: per Android l’aggiornamento รจ quasi istantaneo, per Apple invece puo variare da 10 a 20 giorni. Ci sono stati casi di applicazioni anche molto famosi che sono state approvate dopo un anno o addirittura non sono state approvate per via dei contenuti che erano contro le policy di Apple: l’esempio piu’ eclatante e’ stato quello di South Park.

โ€ข Le native apps, essendo native per definizione, funzionano solo per specifici dispositivi per cui sono state scritte e compilate. Di conseguenza un’app compilata per iPhone non funzionerร  su un telefono che supporta come sistema operativo Android e viceversa.

Quando utilizzarla?

โ€ข Se vuoi far comparire il tuo brand sugli stores e utilizzare i pagamenti in-app.

โ€ข Realizzazioni di giochi.

โ€ข Esigenza di accedere a particolari sensori hardware messi a disposizione dal dispositivo e non utilizzabili via HTML5.

โ€ข In generale, di tutte le cose che non si possono fare con pagine web.

Il futuro?

La differenza tra le due tipologie di applicazioni si sta sempre piรน assottigliando grazie al continuo sviluppo dei markup HTML5 per l’ottimizzazione sugli smartphone. Il futuro ci dirร  quale delle due prenderร  il sopravvento, per ora noi di Apps Builder abbiamo abbiamo deciso di puntare su entrambe le tipologie fornendo ai nostri utenti sia applicazioni native per iPhone, iPad e Android sia la webapp accessibile via QR code, in modo totalmente gratuito.

Autore: Daniele Pelleri, Founder & CEO di Apps Builder, per il Max Valle.