01 Feb Quale App? Nativa, Ibrida o Web?
Il mondo relativo allo sviluppo di applicazioni è stimolante e innovativo, ma a volte può risultare confuso. Spesso ci viene chiesto di sviluppare un’app che faccia una determinata cosa, ma non sempre si sa cosa chiedere o si riescono a capire le differenze di costo tra le varie soluzioni possibili. Native, Web o applicazioni ibride? Qual è la differenza?
Molto spesso siamo costretti a fare un vero e proprio interrogatorio al potenziale cliente, con il rischio di indispettirlo oppure di apparire eccessivamente zelanti. Solo occasionalmente riusciamo a far intendere che un’app può essere sviluppata in molti modi diversi e che ciascuna di queste tipologie di sviluppo comporterà costi e tempi molto differenti.
Spesso ci confrontiamo con chi, in totale buona fede, ha richiesto un preventivo per un “app” senza fornire dettagli specifici e ha ricevuto un certo costo (anche questo senza ulteriori dettagli). Dopodiché ci contatta, e noi partiamo con il “terzo grado” – come ci ha detto simpaticamente non molto tempo fa qualcuno – per raccogliere tutte le informazioni necessarie e proporre un preventivo. In taluni casi, il preventivo non rispecchia le aspettative iniziali… Qualcuno capisce, qualcuno sparisce, ma qualcuno approfondisce e ci chiede come mai?
C’è chi si era rivolto alla blasonata web agency vicina al proprio ufficio, che da subito ha proposto lo sviluppo di un’app nativa, anche quando non ne aveva realmente la necessità. Dall’altra parte, ci sono stati anche clienti che hanno ricevuto un preventivo molto contenuto per una “web app”. Tuttavia, alla richiesta di integrare geolocalizzazione e notifiche push, sono rimasti spiazzati quando hanno scoperto che bisognava rifare tutto da capo, a un costo nettamente più alto. Questo è accaduto perché il cliente ignorava cosa stava realmente ricevendo, ma al momento della scelta ha selezionato il preventivo più basso.
Non mi stancherò mai di ripeterlo, si paga in proporzione a quello che si riceve…
Quella che segue è una divagazione… importante ma pur sempre una divagazione, quindi saltatela se avete fretta.
Purtroppo, è una consuetudine (sbagliata) pensare che in ambito informatico ognuno faccia il proprio prezzo e che il risultato finale sia sempre lo stesso, un po’ come quando acquistiamo un telefonino. Se un negozio sotto casa vende un telefono a 200 euro e lo troviamo su internet a 150 euro, ci sembra un affare perché riceveremo comunque lo stesso prodotto.
Tuttavia, quando si tratta di richiedere un servizio, la questione non è affatto la stessa!
I costi per i servizi, se quotati con cognizione di causa, possono differire significativamente. Tra freelancer e freelancer, o web agency e web agency, le differenze di prezzo si aggirano solitamente intorno al 10%, mentre tra freelancer e web agency, queste possono arrivare fino al 30%. Qui sarebbe utile un approfondimento, ma rischierei di uscire dall’argomento principale, poiché lo stesso discorso vale per qualsiasi servizio web, inclusi i siti web.
Recentemente ho letto un articolo molto divertente che sottolinea il rancore dichiarato di molte web agency nei confronti di quei servizi web che offrono siti “gratis”, del tipo “fai-una-porcheria-da-te”, o a canone mensile, proponendo soluzioni del tipo “ti faccio credere che è gratis, ma in realtà te lo fai da solo, poi ti regalo qualche mese gratis e quando non ne puoi più, ti presento il conto con comode rate mensili a vita”.
Beh, io dico grazie a questi siti, proprio in netta contrapposizione con quanto affermato in quell’articolo!
Grazie di cosa?
Grazie per avermi evitato la fatica di fare un preventivo a chi vuole un sito con un budget di 30 euro (e credetemi, non sono personaggi di fantasia), e grazie per avermi fatto incontrare nuovi clienti – che, purtroppo a loro spese, hanno capito ciò che sostenevo prima: “si paga per quel che si riceve”.
Alla fine, sono proprio questi clienti – quelli che hanno un sito economico e scadente – che danno il giusto valore al mio lavoro. Hanno ormai acquisito la consapevolezza che, sebbene tutti possano provare a fare un sito, un sito di qualità, utile, funzionale e che venga trovato nei motori di ricerca, non può essere realizzato da chiunque.Un po’ come dire: io posso costruire un barbecue e una cuccia per il mio cane in muratura, ma se avessi bisogno di costruire una casa, beh, forse sarebbe meglio affidarsi a chi lo fa di mestiere… non siete d’accordo?
Quindi quale App ci serve? Come possiamo capirlo?
Non esiste una risposta definitiva su quale tipo di applicazione si dovrebbe scegliere, ma ci si può arrivare per gradi. Lo scopo di questo articolo è quello di agevolare la comprensione tra i diversi tipi di applicazioni realizzabili oltre che aiutarvi a decidere se vale la pena e in che modo e a quale costo farsi realizzare l’app dei propri desideri.
Prima distinzione, qual è la differenza tra iOS e Android? Quali sono le applicazioni native, ibride e web?
Le basi
La maggior parte dei dispositivi mobili utilizzano uno dei due sistemi operativi dominanti: Android e iOS (ma ce ne sono anche altri minori).
La differenza tra questi sistemi operativi e dei loro relativi dispositivi non è solo estetica: Proprio come il vostro MacBook non eseguire un’applicazione di Windows, per un telefono Android non è possibile eseguire un’applicazione costruita per iPhone – nella maggior parte dei casi, almeno.
Ecco una tabella riassuntiva di quanto segue nell’articolo.
Applicazioni native
Le applicazioni native sono ciò che balza in genere in mente quando si pensa a un app. La si scarica da App Store o Google Play, si installano all’interno del dispositivo e li si eseguono toccando la loro icona.
Ciò che distingue dalle applicazioni native le altre citate è che loro sono state progettate e codificate per un determinato tipo di dispositivo. Ad esempio, applicazioni per iPhone sono scritte in Objective-C, le applicazioni Android in Java, etc.
Ogni piattaforma mobile offre agli sviluppatori i propri strumenti di sviluppo, elementi di interfaccia e SDK standardizzato. Questo dovrebbe permettere a qualsiasi sviluppatore professionista di poter sviluppare un’applicazione nativa con relativa facilità.
Ci sono una serie di vantaggi nello scrivere applicazioni in questo modo:
- Offrono l’esperienza più veloce, più affidabile e performante agli utenti.
- Possono sfruttare le più ampie funzionalità del dispositivo; compresi i gesti la fotocamera, il microfono, la bussola, l’accelerometro ecc.
- Gli editori possono fare uso di notifiche push, avvisando gli utenti ogni volta che un nuovo contenuto viene pubblicato o quando è richiesta la loro attenzione. Questo non è assolutamente da sottostimare come potenzialità consentendo un raggiungimento di pubblico altamente mirato! Poichè chi ha scaricato l’app è sicuramente interessato al suo contenuto.
Lo svantaggio principale di una applicazione nativa è che non funziona con altri tipi di dispositivi. Se si scrive un’applicazione in Objective-C per iOS, non funzionerà quindi su Android a meno che non venga completamente ri-scritta in Java. Quando si sviluppa per più piattaforme, lo sviluppo di una applicazione nativa quindi può essere molto costosa, in quanto si sta richiedendo di costruire e mantenere più versioni separate della vostra applicazione. E ‘anche comune per gli sviluppatori di specializzarsi in una piattaforma, così spesso occorrerà trovare programmatori diversi per ogni piattaforma.
Se il vostro budget lo consente, in buona sostanza, le applicazioni native sono l’ideale, e quelle che offrono la migliore esperienza per l’utente. Quando la si richiede occorre pertanto essere consapevoli che sarà anche la soluzione più costosa.
Si ma quanto?
Tanto per fare un esempio, l’app Twitterific, ottimo client alternativo per Twitter su iPhone, è costata circa $250.000 tra usabilità, grafiche, realizzazione, test e bugfixing! E per fortuna che non era da fare anche la parte server… ok… tralasciamo queste assurdità incomprensibili per molti mortali…
Quindi, e se vi chiedessi io: “quanto costa comprare un’automobile ?”
In questo caso è molto più semplice capire che la risposta è… dipende! I prezzi delle auto vanno dai 10.000€ di un’utilitaria di marca poco nota ai 4-500.000€ di una Ferrari. Questo approccio è applicabile anche alla realizzazione delle applicazioni mobile:
- con una spesa relativamente contenuta si può realizzare un’app semplice, senza componenti server: insomma, fa una cosa sola ma la fa bene!
- con un investimento leggermente superiore, ma tutto sommato accettabile, si può realizzare un’app di fascia media, con grafica personalizzata e interfacciamento con un server remoto: un bel prodotto, adatto per la stragrande maggioranza degli scopi
- se invece avete bisogno di un app di livello veramente professionale, con diverse componenti (mappe, realtà virtuale, etc.) anche personalizzate e un’interfacciamento in lettura e scrittura con il server, dovrete considerare sicuramente un budget più importante ma disporrete di un prodotto “top”!
Web Apps?
All’opposto delle App native abbiamo le applicazioni web ottimizzate per dispositivi mobili o WebApps.
Se hai mai visto la ‘versione mobile’ di un sito, questo è ciò di cui stiamo parlando. Una “app” di questo tipo carica all’interno di un browser mobile, come Safari o Chrome, il sito web. Il fruitore non ha bisogno di fare alcuna installazione e nemmeno di avere spazio a disposizione sui propri dispositivi.
Le WebApps utilizzano JavaScript, CSS, HTML5 o altre lingue, lo sviluppatore non avrà accesso ad alcun SDK standardizzato. Lo sviluppo di una web app di questo genere può quindi essere semplice e veloce, tuttavia, la loro semplicità è anche il loro lato negativo.
Le WebApps hanno limiti in ciò che possono fare e richiederanno sempre una connessione a Internet per funzionare, saranno più lenti e meno intuitivi ed essendo progettate per funzionare su tutti i dispositivi non potranno sfruttare appieno le potenzialità di nessun device.
Le icone potranno essere salvate sui device solo come segnalibri e funzionalità fondamentali come le notifiche push non saranno assolutamente possibili. Inoltre non essendo scaricabili dagli stores difficilmente verranno trovate e usate da qualcuno che non ne conosca già l’esistenza.
Quali sono applicazioni ibride?
Ci sono oggi numerose soluzioni e tecnologie per lo sviluppo di applicazioni ibride, ma le due più popolari sono PhoneGap / Cordova e React Native.
PhoneGap / Cordova:
PhoneGap, ora chiamato Apache Cordova, permette di sviluppare applicazioni ibride utilizzando tecnologie web come HTML, CSS e JavaScript. Questi file vengono poi “avvolti” in una shell nativa per creare un’app mobile che può essere distribuita sugli store. Cordova garantisce l’accesso a componenti hardware essenziali come la geolocalizzazione, notifiche push, e la fotocamera, rendendole parzialmente accessibili, ma in modo limitato rispetto alle app native.
React Native:
React Native, al contrario, è un framework sviluppato da Facebook che consente la creazione di applicazioni ibride utilizzando JavaScript e il framework React. A differenza di Cordova, React Native permette di ottenere un’esperienza utente quasi equivalente a quella delle app nativamente sviluppate. Le app React Native offrono prestazioni più elevate e un’esperienza utente più naturale, pur mantenendo un’unica base di codice per iOS e Android.
Questi strumenti permettono di creare applicazioni che possono funzionare su diverse piattaforme, risparmiando tempo e costi di sviluppo rispetto alle app nativamente separate per iOS e Android. Tuttavia, rispetto alle app native, le app ibride possono comportare alcune limitazioni in termini di accesso completo alle funzionalità hardware del dispositivo e prestazioni, soprattutto in situazioni dove è richiesta un’interazione molto elevata o complesse animazioni.
Un vantaggio che le applicazioni ibride hanno rispetto alle App native è che è più veloce e più facile da svilupparsi. E ‘anche più facile da mantenere ed è possibile modificare le piattaforme. L’applicazione in sé non sarà veloce come un’applicazione nativa in quanto però dipenderà ancora dalla velocità del browser.
In sintesi, è un ottimo compromesso da prendere sicuramente in considerazione qualora non si abbiano specifiche esigenze non ottenibili con questo tipo di sviluppo e se non si vuole risparmiare eccessivamente ottenendo un prodotto sicuramente professionale.
Quindi se le esigenze non sono troppo particolareggiate, e se il sito è sviluppato con la giusta tecnologia (per esempio wordpress), si potrà ottenere un app ibrida ad un costo nella maggior parte dei casi accettabile.
Allora, qual’è la cosa migliore?
Questo dipende interamente da voi, noi vi potremo solo consigliare dopo esserci scambiati informazioni utili. Non c’è una risposta esatta.