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.