6 cose che devi sapere prima di sviluppare un’applicazione
Durante la mia carriera come sviluppatore, ho avuto l’occasione di vedermi sfilare davanti centinaia di progetti imprenditoriali della App Economy, molti dei quali mi sono trovato a sviluppare insieme al team di Baasbox.
Ho deciso di raccogliere in questo articolo le principali domande che abbiamo ricevuto negli ultimi anni da parte di imprenditori che volevano avventurarsi nello sviluppo di un’applicazione.
Un po’ di numeri…
Analizzando le statistiche di Sensor Tower inerenti al terzo trimestre del 2020, possiamo riscontrare un aumento del 31% degli acquisti su App Store rispetto allo scorso anno, per un totale di 19 miliardi di dollari.
Segue Google Play con un incremento del 33.8% ed un totale di 10.3 miliardi di dollari.
Di conseguenza, anche il numero di download delle app in questo terzo semestre è cresciuto del 23% rispetto allo stesso trimestre del 2019, arrivando ad un totale di 36.5 miliardi di app scaricate.
Al primo posto tra le app più scaricate nel periodo che va dal primo luglio al 30 settembre del 2020 troviamo TikTok, seguita da Facebook e Zoom
Quanto costa fare un’app?
Spesso ho ricevuto la domanda “Ma quanto costa sviluppare un’app?”.
Purtroppo però, la risposta non è così scontata ed anche la formulazione di un preventivo è un’attività molto complessa e composta da molti step.
Quando un imprenditore viene da noi in Baasbox, seguiamo un flusso ben strutturato per arrivare alla definizione di un prezzo finito per lo sviluppo di un’app, che inizia sempre con una prima call conoscitiva e la raccolta dei requisiti.
Durante la prima call, si discute sulla tecnologia più adeguata al progetto imprenditoriale e una volta definita, viene compilato il documento di “Macro Requisiti”che verrà poi inviato al cliente per eventuali aggiunte o correzioni.
Sulla base del documento redatto ed approvato dal cliente, possiamo formulare il primo preventivo inerente alla fase di Product Design, che avrà come output:
- Documento tecnico che illustrerà tutti i percorsi di navigazione che ciascun attore potrà scegliere di seguire all’interno dell’app;
- Mockup navigabile a bassa fedeltà (Wireframe);
- Mockup navigabile ad alta fedeltà (UI);
- Test di usabilità;
- Asset di sviluppo.
Ed una prima forbice inerente allo sviluppo dell’applicazione, che sarà più o meno larga a seconda del numero di incognite che verranno poi risolte nelle fasi che caratterizzano il Product Design.
Il prezzo finale di un’applicazione, può essere influenzato da una serie di fattori, tra cui:
- Tecnologia adottata;
- Numero di screen che compongono l’applicazione;
- Integrazione con servizi di terze parti;
- Numero di funzionalità introdotte;
- Numero di attori;
- Infrastruttura adottata
Terminata la fase di Product Design, verrà consegnato al cliente un “Dev Pack” con tutto l’occorrente per iniziare lo sviluppo del prodotto.
Sulla base degli output della fase appena conclusa, si potrà finalmente formulare un preventivo finale per lo sviluppo dell’applicazione.
Quali fasi caratterizzano lo sviluppo di un’applicazione?
Generalmente, quando viene richiesto lo sviluppo di un’applicazione, non si tiene conto che in realtà andranno sviluppate almeno 3 componenti, tra cui:
- App Android
- App iOS
- Back-End
In alcuni casi anche una Web App Amministrativa per gestire l’applicazione.
Infatti, qualora si scelga di sviluppare un’applicazione nativa, il codice sorgente che comporrà l’app Android, sarà completamente diverso da quello dell’app iOS, poiché andrà scritto utilizzando i linguaggi di programmazione imposti dal sistema operativo su cui risiederà l’applicazione.
Un altro componente che molto spesso si tralascia dalle valutazioni, è il Back-End, il vero e proprio “cuore” dell’applicazione che permette alle app di funzionare.
Sostanzialmente, la differenza tra Front-End (applicazione) e Back-End sta nel fatto che il Back-End è tutto ciò che l’utente non vede, ossia quel componente che si occupa di interfacciarsi con il database, gestire l’autenticazione o eseguire elaborazione dei dati.
Generalmente il Back-End è situato in un server remoto, e viene connesso al Front-End tramite delle API (Application Programming Interface).
Immaginiamo ad esempio un’applicazione che ci mostra i principali articoli di alcune testate giornalistiche:
il Front-End (client) “chiederà” al Back-End (server) di ottenere tutti gli ultimi articoli, quest’ultimo risponderà al Front-End con le informazioni che necessita (lista con articoli e foto).
Il Front-End si occuperà infine di mostrare le notizie all’interno dell’applicazione seguendo la UI progettata dal team di Product Design.
Il Back-End ovviamente non è richiesto per tutte le applicazioni, ma solo da quelle che hanno bisogno di poter comunicare con l’esterno.
Una tradizionale calcolatrice ad esempio, non ha alcun motivo per dover comunicare con un Back-End remoto, in quanto può svolgere tutti i calcoli che gli vengono richiesti direttamente sul Front-End.
Infine, la Dashboard amministrativa, è a tutti gli effetti il “pannello di controllo” dal quale poter gestire l’intera applicazione.
Ponendo l’esempio che l’applicativo sviluppato (il nostro aggregatore di notizie) fosse un servizio in abbonamento, potrebbe essere necessario avere un pannello per poter visualizzare gli utenti con i relativi abbonamenti, per tenere sotto controllo i KPI o per normali operazioni di Customer Care.
La dashboard amministrativa può essere utilizzata anche per inviare notifiche push (messaggi istantanei che verranno recapitati direttamente sullo smartphone dell’utente) o inserire/aggiornare dei dati.
Generalmente le dashboard amministrative sono delle Web App accessibili da un comune browser, protette da un’autenticazione per garantire l’accesso esclusivamente agli operatori autorizzati.
Come si guadagna con un’applicazione?
Esistono 4 modelli di revenue principali per monetizzare un’applicazione:
1. App a pagamento:
Il modello è semplice, decidere un prezzo per il download di un’applicazione.
Entrambi i principali store, App Store e Play Store permettono di specificare un prezzo di distribuzione dell’app.
App Store (Apple) impone dei prezzi standard per le applicazioni, divisi in Tier, che vanno dai 0,00 USD fino ad arrivare ai 999,99 USD
Non è possibile quindi inserire un prezzo personalizzato (ad esempio 0,50€) ma bisognerà necessariamente adattarci alla fascia più vicina: 0.99 USD (corrispondenti a 1.09 €).
Sia App Store che Play Store applicano una commissione del 30% sugli acquisti.
2. Pubblicità In-App:
Esistono moltissime compagnie di In-App advertising, come ad esempio Ad-Mob di Google, che consentono di inserire dei banner pubblicitari all’interno delle applicazioni.
Purtroppo però, questo modello di business risulta poco profittevole qualora non si raggiunga un elevato numero di utenti.
3. Acquisti In-App:
Un altro dei modelli di business più diffusi è quello di proporre l’applicazione gratuitamente con delle funzionalità limitate e successivamente permettere all’utente di acquistare dei servizi aggiuntivi.
Ciò può avvenire con pagamenti una-tantum (ad esempio, dare la possibilità di rimuovere tutti i banner pubblicitari o sbloccare una funzionalità aggiuntiva) oppure, con un abbonamento ricorrente.
Anche in questo caso gli store trattengono una percentuale del 30%, ma che si riduce al 15% dopo un abbonamento ricorrente di almeno 12 mesi.
4. Utilizzare un gateway di pagamento esterno per bypassare le commissioni imposte dagli store:
Molte app, propongono di pagare per i propri servizi attraverso un gateway di pagamento esterno (ad esempio PayPal) per usufruire dei servizi, ma qui si entra in alcuni aspetti abbastanza controversi delle politiche di approvazione della App
Stando a quanto riportato dalle “App Store Review Guidelines” alla sezione 3.1.1 In-App Purchase:
“If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, etc. Apps and their metadata may not include buttons, external links, or other calls to action that direct customers to purchasing mechanisms other than in-app purchase.”
In poche parole, qualora vengano utilizzate altre metodologie al di fuori del meccanismo di In-App Purchase di Apple, l’app non verrà approvata per la pubblicazione negli store.
Ma in realtà, come già sappiamo, grandi colossi utilizzano dei gateway esterni per gestire le proprie sottoscrizioni, come ad esempio Spotify o Netflix, ma ciò rientra nel contesto indicato nella sezione 3.1.3(a) “Reader Apps”:
“Apps may allow a user to access previously purchased content or content subscriptions (specifically: magazines, newspapers, books, audio, music, and video). Reader apps may offer account creation for free tiers, and account management functionality for existing customers.”
Quindi, è possibile consentire l’accesso a contenuti già precedentemente acquistati anche al di fuori di App Store (come appunto nel caso di Spotify o Netflix).
Infine, qualora la tua app venda l’accesso a “beni o servizi” al di fuori dell’applicazione stessa, gli acquisti dovranno essere processati necessariamente al di fuori dell’app store, come specificato dalla sezione 3.1.3(e) Goods and Services Outside of the App:
“If your app enables people to purchase physical goods or services that will be consumed outside of the app, you must use purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry.”
Proprio a causa delle limitazioni che Apple e Google impongono nel terzo scenario, per l’acquisto di contenuti e per le alte fee, ci fu la famosa causa tra Apple ed Epic Games per il suo videogioco Fortnite.
Epic Games infatti, aveva introdotto all’interno del videogioco (scaricabile anche da smartphone e tablet) un sistema di pagamento diretto per gli acquisti In-App per aggirare la tassa del 30%, ciò ha comportato la rimozione del gioco dagli store.
[Fonte: BBC]
Quanto costa mantenere un’applicazione online?
Oltre alle fee imposte dagli store per gli acquisti in app e gli abbonamenti, che abbiamo approfondito, per mantenere un’app “online” bisogna far fronte ad una serie di costi fissi e variabili, che possono oscillare dai pochi euro al mese, fino ad arrivare a migliaia.
Innanzitutto è fondamentale considerare il costo dell’iscrizione al programma sviluppatori delle piattaforme sulle quali vogliamo rilasciare l’applicazione.
Il programma sviluppatori Apple ammonta a 99 dollari l’anno, mentre quello di Google a 25 dollari una tantum.
Completata la registrazione ai rispettivi programmi, sarà possibile pubblicare le app senza ulteriori costi aggiuntivi.
Qualora però un’app utilizzi un Back-end, il codice che compone questo fondamentale componente deve necessariamente risiedere su un server remoto.
Il costo dell’infrastruttura informatica necessaria per il funzionamento della tua app dipende da alcuni fattori, tra cui:
- Tipologia di operazioni che dovrà eseguire l’app:
qualora l’applicazione esegua dei calcoli molto complessi o elabori molti dati, sarà necessario predisporre un’infrastruttura più performante; - Numero di utenti che eseguiranno la tua applicazione:
se l’applicazione esegue delle operazioni su un server remoto ed è utilizzata da moltissimi utenti, sarà necessario progettare un’infrastruttura che sia resiliente anche a picchi di utenza molto elevati.
Inoltre saranno da considerare i costi inerenti alla manutenzione dei server (aggiornamenti, crash, malfunzionamenti…).
Di recente stanno prendendo sempre più piede infrastrutture in Cloud, come approfondito in un nostro precedente articolo: Kubernetes: lo strumento di orchestrazione per il cloud
Un altro costo importante da considerare è quello dei servizi terzi integrati all’interno dell’applicazione:
qualora la tua app debba inviare delle email transazionali, andrà acquistato un servizio di invio mail, con prezzi che si aggirano intorno agli 0,80$ per 1000 email.
Ma i servizi che possono essere integrati sono innumerevoli, come ad esempio le mappe di Google Maps:
se l’app dovrà contenere una mappa di Google, bisognerà pagare a Google il costo di questo servizio a consumo, anche se molto spesso si rientra nelle tier gratuite.
Tra i costi da considerare possiamo aggiungere inoltre la manutenzione: con il tempo le app potrebbero smettere di funzionare o essere rimosse dagli store, a causa dei frequenti aggiornamenti dei sistemi operativi o delle revisione alle Guideline di pubblicazione sugli store.
Ciò potrebbe comportare nuovi interventi di sviluppo.
Come scelgo la tecnologia migliore per la mia applicazione?
La scelta della tecnologia da adottare è uno step cruciale nello sviluppo di un prodotto digitale.
Ciò infatti può impattare enormemente sul costo dello sviluppo o sulle performance.
Per agevolare gli imprenditori digitali nella scelta della tecnologia migliore, abbiamo scritto questo articolo che evidenzia le principali differenze tra le varie tipologie: Qual è la tecnologia migliore per il tuo business?
Sviluppare un’app può essere un’attività molto profittevole, ma potrebbe anche sfociare in un grosso buco nell’acqua qualora non si facciano le scelte giuste.