App Nativa o Web App?

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 TagliaBlog.

Condividi su facebook
Facebook
Condividi su google
Google+
Condividi su twitter
Twitter
Condividi su linkedin
LinkedIn
Condividi su pinterest
Pinterest

15 Comments

  • post ben fatto ed equilibrato. Una carenza che c’é tuttora sulle webapp su ios e android <3.0 é il supporto agli editor wysiwyg e all'upload dei file via web browser.
    Luigi

  • L’articolo è interessante, anche se credo l’argomento non sia stato affrontato in maniera imparziale, è vero che creare un sito compatibile con i dispositivi mobile è semplice, qui però vengono descritti tutta una serie di vantaggi per quanto riguarda lo sviluppo di webapp sbilanciato:

    – E’ vero creare un sito che si possa navigare più o meno è semplice, se però inizi a voler integrare più plugin in jQuery Mobile, oppure scrivere il codice in Html 5 per utilizzare i componenti hardware non mi sembra una cosa così semplice da essere fattibile da “qualsiasi programmatore”.

    – Ho anche dei dubbi sulla cosa del layout scritto in percentuali con i css, è vero che le varie “porzioni” del layout possono essere scritte in percentuali ed essere elastiche, ma le varie proporzioni dei contenuti? Le immagini? Non si tiene con, ad esempio, della differenza di risoluzioni tra i vari dispositivi android, e soprattutto del fatto che sono diverse le proporzioni fra i vari schermi, poi vuoi metterci il fatto che ruotando da verticale ad orizzontale cambia tutto di nuovo? Insomma per far andare tutto, fluido, navigabile e compatibile in maniera ottimale ci vuole un mese, se invece lo vuoi perfetto ci vuole molto di più.

    – Completamente in disaccordo con il punto: “Streaming media: rispetto a un’app nativa lo streaming dei contenuti multimediali è gestito meglio rendendo il tutto molto piu’ fluido e veloce.” Non è così, ti sarai confuso, con la rete che abbiamo in italia voglio vedere come fai a far andare in streaming i vari filmati (di solito pesanti perchè i clienti non capiscono), le gallery con molte immagini ed altri contenuti multimediali. Posso darti ragione sul fluida solo se cambi “da qualsiasi dispositivo connesso a internet” con “da qualsiasi dispositivo connesso a internet tramite rete wi-fi (veloce).

    Ho guardato il sito, è interessante (anche se non c’è nulla di “rivoluzionario” o che non sia già fatto da altri), la cosa che mi incuriosisce di più è il plugin “miracoloso” per wordpress che dice di poter fare “qualsiasi cosa”, e di essere gratuito, però non si può scaricare perchè serve un “codice invito”.. Nessuna demo, nessun porfolio, nessun plugin da provare, insomma una bellissima landing page, ma il plugin?

  • @AscoltareMusicaGratis: Grazie per il tuo feedback, mi fa piacere il confronto e vado subito a risponderti:
    – A mio parere la curva di apprendimento di Object-C o Java o .NET in confronto a un linguaggio di markup come puo’ essere HTML5 è molto, ma molto, maggiore in termini di tempo.. Quindi permettimi, in questo paragono webapp vs native app, dire che è molto semplice.
    – Mi riferivo alla struttura e al layout. Se scrivi tutto in % anche con la landscape view orizzontale vedrai bene. Dal punto di vista dei contenuti se un’app nativa prende contenuti dal web ha li stessi problemi di una webapp, sarà poi compito del programmatore parsarsi i contenuti e le immagini presenti nel feed. Ma il parser della description deve essere fatto per le native come per le webapp.
    – Qui non mi riferivo al tipo di connessione sul dispositivo (mi pareva ovvio). Mi riferivo piuttosto alle prestazioni: nelle apps native vi sono problemi di audio, senza contare che su apple non vi è supporto per flash. Inoltre occorre usare un player integrato e gestire il flusso. Nelle webapp invece grazie al tag di html5 la gestione viene affidata direttamente al browser (quindi al sistema operativo) con prestazioni superiori.
    – Plugin: c’è il codice invito perche’ lo stiamo facendo testare a 500 persone, scelte da noi. Appena avremo tutti i feedback manderemo mail di avviso a tutti gli iscritti alla newsletter della landing page con il link diretto per il download.

  • Ma per capire il futuro non dovremmo forse guardare al passato?

    Sui sistemi desktop quale tipo di applicazione si è affermata?

  • @Luca: Bella osservazione! hai ragione, ormai si fa tutto online. Pero’ apple ci vive da sempre con i suoi stores e ci sono troppi interessi dietro legati a quest’ultimi. Ricorda che recentemente Apple aveva messo un bug in javascript apposta per rallentare le webapp.. (e questo ci dice tante cose…)

  • @Daniele: Non conoscevo questa storia del bug. Vedo comunque che allo stesso tempo sviluppano sui loro dispositivi dei browser molto evoluti, che supportano molto bene html5, che sembra fatto apposta per sviluppare applicazioni il più possibile vicine alle applicazioni native.

    La molteplicità dei dispositivi disponibili oggi è forse anche superiore al dominio di Microsoft 15 anni fa. Eppure anche allora, le applicazioni web si sono affermate su quelle native.

    Sarà comunque molto interessante e istruttivo vedere come andranno le cose.

  • Bella analisi!

    Comunque credo che andrebbe valutata la tipologia di applicazione che si deve sviluppare. Magari in alcuni casi la web app è sufficiente e più efficace di non altre.
    C’è anche da dire che avere un App dedicata apple lo sta facendo passare come status.

    Probabilmente su un progetto generale è bene infatti offrirsi su entrambe, si ha maggior possibilità di incontrare il favore dell’utente

  • Grazie Max, tieni conto che alla fine all’utente finale cambia poco perchè chi usa un tablet/smartphone usa internet ( webapp ) quanto gli stores ( native app ).

    Vedi i maggior portali di informazioni esteri come Mashable, hanno optato per entrambe le tipologie, ma alla fine noi utenti leggiamo le news sia dal loro sito, che da un app.. o da flipboard 😉

  • Secondo me la differenza sostanziale è il feeling nell’utilizzo (indicato nell’articolo con la reattività della GUI): quello di un’app nativa è nettamente superiore a quello di qualsiasi webapp, che deve pur sempre dipendere da un browser ed eventuali capricci (impuntamenti, rallentamenti, piccoli bug di visualizzazione).

    Anche ottime webapp come quella di Facebook ( http://touch.facebook.com/ ) soffrono degli stessi problemi.
    Come pro però c’è la velocità di aggiornamento che permette l’introduzione “On-the-fly” di nuove funzionalità, vedi messaggistica unificata assente nell’App Android e che rovina notevolmente l’esperienza di utilizzo (non so se è assente anche su quella per iOS).

  • Mi allineo con francesco, anche secondo me la GUI è un grande spartiacque tra web appl e nativa. Si pensi al mondo Symbian/nokia, che è quello più critico x’ non c’è un grande trend di sviluppo di appl native (come x android e ios), anche se gli smartphone nokia occupano ancora una grande fetta di mercato. Io ho provato touch.facebook su N8 ma è ‘molto’ browser depended, ossia col browser nativo ha diversi problemi, mentre funzionicchia con i vari opera …ma anche lì dipende dalla vers che si usa. Per non dire gli smart nokia non touch di 1-2 anni fa, come gli E7x che hanno ancora + problemi. Mentre le appl native nokia , come quelle geolocalizzate, se la cavano abbastanza (anche se sono meno fruibili delle cugine nate su sistemi operativi + ‘adatti’) e non sono paragonabili con quelle equivalenti web.
    Ero curioso di sapere da Daniele cosa ne pensa di J2ME o JavaFX come cross-platform mobile e cross-device. grazie

  • Ciao a tutti, mi sono trovato di persona a dover fare la scelta webapp vs app nativa, le ho provate entrambe, alla fine secondo me è meglio la nativa, per quanto si voglia far credere che le webapp sono multipiattaforma, non è proprio cosi…innanzitutto ci si mette in mano a framework (ne ho provati vari fra cui anche jquerymobile), perchè farsi da solo la gestione multipiattaforma è follia, che sono sempre in continua evoluzione non solo come funzionalità ma anche per risolvere bug, gli adattamenti alla rotazione sono lentissimi, lo stesso caricamento delle pagine è lento perchè devono renderizzarle on demand in base al dispositivo…inoltre ci sono sempre i problemi dei browser diversi e quindi ti devi mettere li ad adattare le cose per uno e per l’altro, soprattutto poi se si vuole dare comunque un certo device feeling. Certo se sei da solo forse conviene (ma quanto?), ma per una società…sviluppo del servizio web comune e giù di app nativa per i vari SO, ios e android in testa, ma anche windows phone…per la parte di user interface.

    Inoltre…onestamente penso che il futuro sia sempre più questo…diciamocelo..le cose “fighe”…che attirano gli utenti…si fanno col codice nativo!!!

  • Tempo fa mi sono avvicinato ad apps-builder ed all’inizio soddisfava le mie esigenze, poi ho iniziato a smanettare con obj c ed ho iniziato a realizzare da me le app.
    Leggendo il post ho rilevato delle inesattezze: tanto per cominciare non e’ vero che le app sviluppate in HTML non si possono pubblicare su app-store; basta creare il wapper object-c e poi attraverso httprequest chiamare una pagina HTML locale, successivamente collegare tutte le pagine remote online, ecco che la app rispetta le guide Lines Apple, soprattutto i famosi e temuti (da Apple) leaks, semplicemente con una UIWebView ed una HTTPRequest possiamo vedere la nostra app html5 su app-store (esistono centinaia di esempi, app enterasys secure-network, commscope, draga cable, la stessa app app-store etc.) sono tutte app in html5.
    Cordialmente,
    Ivan

  • Ciao ragazzi,
    io da sviluppatore iPhone posso assicurarvi che non c’è paragone tra un app nativa e una webapp.

    Per quanto una cosa possa essere semplice, un app nativa sarà sempre migliore, sia per le prestazioni, che l’accesso al dispositivo, che interazioni tra altri dispositivi!

    E’ vero che è più caro sviluppare nativamente, ma ci saranno pure i motivi… tra cui obbligatorio il possesso di un mac e dell’account da developer per i provisioning di distribution per i test su device; la programmazione non la impari in due o tre mesi come puoi fare per lo sviluppo web, serve esperienza e sapere come ottimizzare il codice per aumentare le prestazioni.

    Le webapp esistono per chi non si può permettere un applicazione su misura… vediamola come l’app nativa = sarto e web app = negozio abbigliamento, non ditemi che sono meglio i vestiti da negozio 😉

    Non sono paragonabili… Le app native vincono in partenza…

  • hai ragione Gino, anche io penso sia meglio l’app nativa soprattutto per non essere sempre dipendenti da internet e da connessioni a banda larga mancanti in molte zone, ma oggi (con la crisi attuale) su 100 persone quanti spenderebbero di più per andare dal sarto seppur con risultati migliori e quanti invece si vestono nei negozi di abbigliamento? circa 5% dal sarto e 95% nei negozi…

  • Quale tipo di formato audio è utilizzabile per una web app che funzioni sia su android che su IOS senza uscire dal Browser?????

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Max Valle

Max Valle

Da oltre 20 anni, fornisco consulenze per aziende e professionisti, che vogliono sviluppare il loro business, 
aumentando i clienti, utilizzando le ultime tecnologie e nel pieno rispetto delle normative vigenti in materia.

Seguimi sui social

Iscriviti alla Newsletter

Main sponsor

Scroll to Top

Utilizziamo i cookie per personalizzare contenuti ed annunci, per fornire funzionalità dei social media e per analizzare il nostro traffico. Condividiamo inoltre informazioni sul modo in cui utilizza il nostro sito con i nostri partner che si occupano di analisi dei dati web, pubblicità e social media, i quali potrebbero combinarle con altre informazioni che ha fornito loro o che hanno raccolto dal suo utilizzo dei loro servizi. Acconsenta ai nostri cookie se continua ad utilizzare il nostro sito web. Per maggiori informazioni visualizza la Privacy & Cookie policy