Luca Tagliavini
Luca Tagliavini

Software Developer

Immagine di copertina

Tutto quello che è meglio (non) sapere quando vuoi realizzare un’app


Spesso nel nostro lavoro ci viene chiesto di poter sviluppare un App senza la reale concezione di cosa implichi realizzarlo. Vogliamo dare una risposta alle domande “Perché costa così tanto?” o “Ci servirebbe a fine mese: riusciamo?”. Sono domande lecite per i non addetti al lavoro, giustamente ignari dei vari processi che eludono la semplice schermata. E ’difficile dare risposte congrue a concetti astratti senza ricadere in tecnicismi e spiegazioni articolate per tutti coloro che bussano alla nostra porta con un solo obiettivo: vedere realizzato il proprio prodotto virtuale ben funzionante. Il software costa perché è un’architettura complessa: ha bisogno di fondamenta, materie prime e manutenzione. Questo risponde di riflesso alla domanda successiva: le grandi strutture, per essere ben costruite, necessitano di tempo. Avete presente il triangolo della qualità? Provate a togliere un elemento e leggete i due rimanenti.. togliendo la qualità cosa resta? Il rilascio frettoloso di un applicativo ha più rischio di errore: questo implica dover investire altre risorse nella riparazione di problematiche evitabili.

Vogliamo mostrare con estrema trasparenza cosa significhi creare un applicativo da zero: vogliamo mettere luce sulle varie fasi di sviluppo e mostrare come ci muoviamo quando ci viene commissionata un’app. Vogliamo elencare i diversi step che seguiamo nel nostro metodo di lavoro per consegnare al cliente ciò che vuole e cercare di fare comprendere il come e il perché creare un’applicazione non sia semplice né tantomeno economico.

1. Sei sicuro di volere un’app?

Il primo fondamentale passo per realizzare un’applicazione è validare l’idea che ci viene proposta. Spesso le necessità del cliente non combaciano con l’effettiva realizzazione di un applicativo mobile. Spiegando in maniera più chiara: per realizzare un’app servono funzioni ben specifiche e informazioni minime per garantire una navigabilità che giustifichi la sua creazione. Un’app non può presentarsi con un menù spoglio in cui le azioni si riducono a pochi passi: questo andrebbe a mortificare l’utente finale che potrebbe decidere di eliminarla dal proprio smartphone. Viceversa, non può essere troppo complessa per il motivo esattamente opposto: troppe informazioni non sono funzionali in un’app che deve sempre essere fruibile, intuibile e utile per chiunque la utilizzi. Tutto questo per mettere luce un concetto principale: ogni idea si può reindirizzare in un software ben specifico. A volte può essere sufficiente un sistema backoffice con accesso web e una condivisione cloud. In quanto softwaristi di App, mettere in risalto questo aspetto gioca a nostro sfavore? Forse. Ma come detto nella prefazione, vogliamo essere trasparenti. Non è necessario l’acquisto di una macchina – seppure comoda e bella – se la distanza da percorrere occupa pochi metri. Andremmo a inquinare, creare un prodotto non necessario e per di più costoso da mantenere, non concordate? Ascoltiamo l’idea e capiamo in primis se lo sviluppo di un app sia realmente sensato o se sia possibile sopperirla con alternative ugualmente funzionali.

2. A chi si rivolge e qual è il suo obiettivo?

La seconda domanda che poniamo è a chi si rivolge. Dobbiamo comprende chi siano gli utenti finali del software per poter comprendere il tenore del progetto, l’usabilità e soprattutto lo scopo. È quindi necessario comprendere la complessità dell’app per capire come progettarla e fare in modo che sia il più performante possibile. Serve a un parco clienti esistente o a componenti dell’organico aziendale per ottimizzare il quotidiano flusso lavorativo? O serve ad entrambi? Forse serve proprio per attirare nuovi utenti? Questo elemento cruciale determina come deve essere costruita. Comprendere l’obiettivo iniziale permette di raggiungere l’obiettivo finale. Fondamentale è individuare le funzionalità core – quindi quelle essenziali – per poi costruire il panorama circostante. Partiamo sempre dalle funzioni principali per poi arricchirle mano a mano con features aggiuntive accessorie.

3. Analizziamo la natura dell’App

Validata l’idea e individuato lo scopo, si prosegue verso la definizione di un aspetto tecnico fondamentale: come crearla? Le app non sono tutte uguali. O almeno, non dietro allo schermo. In questa fase la scelta della natura dell’applicazione è decisiva e influenza anche il costo finale. Le strade possibili sono essenzialmente due: App Cross Platform (o Platform Independent) vs App nativa. Cosa significa? Proviamo a spiegarlo in parole semplici.

Partiamo dalle basi: i principali sistemi operativi sul mercato – Apple e Android – non parlano la stessa lingua. Ciascuno di essi prevede quindi un linguaggio di programmazione specifico non compatibile l’uno con l’altro. Diciamo sono due vicini di casa che provengono da nazioni diverse. Sviluppare una app Cross Platform significa creare un applicativo capace di comunicare con entrambi i sistemi iOS e Android. Tornando all’esempio di cui sopra, diciamo si tratti di un mediatore. Questo implica lo sviluppo attraverso un unico codice e, quindi, un abbattimento dei costi. Un unico linguaggio di programmazione implica un dispendio ridotto di risorse e di tempistiche e garantisce prestazioni che prescindono il tipo di hardware utilizzato.

E allora perché esiste l’app nativa? Ecco che, di nuovo, facciamo luce su problematiche concrete: una app cross-platform è più instabile rispetto alla nativa e meno tollerante agli aggiornamenti del software. In sostanza è meno performante e le possibilità di complicazioni a lungo termine, sono reali. Le due lingue faticano a fondersi poiché, di base, differenti. Certo, il traduttore aiuta ma sappiamo bene che non sarà mai capace di interpretare le varie sfumature del linguaggio originario. Vale la pena risparmiare agli inizi se poi la manutenzione, se non addirittura il rifacimento, deve essere eseguita con conseguente ulteriore spesa?

L’app nativa implica un doppio sviluppo: uno per i sistemi iOS (Swift / Objective-C) e uno per quelli Android (Kotlin / Java / C / Python). Si, avete capito bene, dobbiamo sviluppare due App per crearne una solamente (**Questa è la dura vita degli sviluppatori**). Due interfacce e due sviluppi grafici differenti seppure ben somiglianti. Come potrete comprendere, doppia app implica tempi di sviluppo maggiori e di conseguenza, costi indubbiamente maggiori. Questo tipo di processo, sebbene più lungo e articolato, permette un prodotto di qualità e stabilità maggiore. Questo permette un’ottimizzazione dell’esperienza utente e la garanzia di un prodotto efficace e performante. Aspetto da non sottovalutare è la possibilità di attingere a una rete di supporto valida grazie ad un’ampia community di sviluppatori che la popolano. Risoluzioni di eventuali problematiche più rapida, maggiore reattività agli aggiornamenti con un conseguente risparmio nella manutenibilità del codice.

In generale dobbiamo valutare l’app come una soluzione solida, non provvisoria. Un investimento che possa permetterci di utilizzare al meglio il prodotto nel corso degli anni senza incappare in problematiche evitabili con una visione più lungimirante. In base all’entità del progetto e alle funzionalità che devono essere integrate nell’app, è giusto valutare quale tipo di app sia più corretto sviluppare.

In questo breve video vi mostriamo in breve i pro e i contro di ciascuna di esse.

4. Il tasto dolente: i tempi

Esatto, nel nostro elenco di cose-da-fare non siamo ancora arrivati alla fase di sviluppo vero e proprio ma siamo ancora nell’analisi di una banale, semplice app. Questo – è duro da digerire – è spesso quello che si pensa. Un prodotto che si realizza in poco e, una volta pronto, si può utilizzare senza problemi. Sappiamo invece che i problemi, dietro allo schermo, sono all’ordine del giorno! Per citare una pubblicità degli anni ’80.. “C’è sempre qualcosa dietro”… L’analisi accurata e la definizione delle varie scelte da compiere, sono il reale primo step di sviluppo. Possiamo dire che l’app si concretizza per una grossa percentuale con la definizione di aspetti non trascurabili che permettono di operare in estrema correttezza, fornendo al cliente una consapevolezza sull’entità del servizio richiesto. La fase di sviluppo, anche se non pratico, parte da qui. I tempi di realizzazione sono ovviamente direttamente proporzionali alla natura dell’applicativo voluto e alla sua complessità strutturale. Ciò che ci preme mettere in chiaro sono i nostri tempi realistici di consegna e una pianificazione degli sprint (test) intermedi per garantire il corretto avanzamento dei lavori e degli sviluppi del progetto in corso. Il rispetto delle tempistiche accordate è un elemento su cui non trascendiamo: per rispetto, li rispettiamo. Questa è una nostra regola cui non possiamo (ne vogliamo) rinunciare.

5. Tutto molto bello ma... passiamo alla pratica

Praticamente... accordati e accertati gli obiettivi, i tempi e l’investimento, si procede allo sviluppo effettivo. A giorni cadenzati concordati, mostriamo come si stia concettizzando l’app e come stia prendendo forma. Sia chiaro.. al cliente non verrà chiesto di guardare uno o più schermi pieni di righe di codice... rilasceremo l’app in versione demo per poterne testare l’usabilità, valutarne l’interfaccia e la comprensione. Si lavora affinando il progetto sulle sembianze dell’idea originaria cercando di creare IL prodotto.
Si delinea lo stile estetico che si desidera seguire grazie a prototipi grafici capaci di dare l’interfaccia estetica complessiva. Si comprende come debba essere impostata per ottimizzare al meglio l’esperienza utente. Modifiche, accorgimenti, cambi nel flusso di navigazione durante questa fase sono frequenti e comuni (sarebbe anormale il contrario). Insieme si costruire su misura un applicativo che rispecchi appieno ciò per cui tutto è iniziato con l’aggiunta dei nostri suggerimenti e consigli tecnici per ottimizzarne la qualità del software. Stringiamo un contratto che va oltre il puro aspetto economico e, lo assicuriamo, non si tratta di retorica ma bensì di etica.

6. Si pubblica!

Questo momento è sempre il più emozionante. Al termine dello sviluppo, solo dopo l’”ochei” definitivo del cliente, si passa allo stadio terminale della realizzazione dell’App. Attenzione: anche questo passaggio non è per nulla scontato. L’applicazione dovrà essere autorizzata e approvata dalle grandi madri della tecnologia (Google ed Apple) e la cosa non è immediata. Per poterne fare parte devono rispettare requisiti di idoneità ben specifici (se vuoi sapere quali, poi dare un’occhiata qui.

Può implicare tempo per essere autorizzate e possono essere richieste modifiche per poterla inserire negli stores.. Questo implica correzioni, rinnovo della richiesta di pubblicazione e di nuovo, ulteriore attesa. Una dilatazione dei tempi che spesso, in prossimità di rilasci urgenti, spazientiscono programmatori ma soprattutto clienti. Ecco perché ogni singola fase deve essere mirata e accurata e perché è importante affidarsi a professionisti che, dotati di esperienza e conoscenza, sanno come evitare spiacevoli sorprese.

Diciamolo, una volta che l’app è finalmente pubblicata sugli stores.. so’soddisfazioni. Pronto al download e pronto all’uso.

7. Last but not least..

Ultimo aspetto ma non di importanza riguarda il mantenimento dell’app. Per poter permettere che abbiano una vita duratura e performante, non va abbandonata. Così come una pianta che va innaffiata o un mezzo che va alimentato, anche l’app necessita di essere preservata. Bastano piccoli accorgimenti per mantenerla attiva e garantire la sua presenza sugli stores. Un frequente refactoring del codice permette un’ottimizzazione della funzionalità dell’app e anche una migliore indicizzazione sui motori di ricerca. Senza dimenticare i feedback degli utenti che recensiscono il prodotto e che, tralasciando l’eventuale aspetto estetico prettamente soggettivo, se la utilizzano al meglio senza problematiche dovute a funzionalità datate, nobilitano e alimentano la sua presenza sui propri dispositivi.

Questo è ciò che accade quando si costruisce un app mobile. Se mai ne avrai il bisogno o se sentirai qualcuno che necessita di averla, forse saprai anticipargli tu stesso quali sono le fasi da valutare, sensibilizzandolo sull’argomento tempi/costi oltre che su vari aspetti da tenere in considerazione. Per garantire un’attuabilità del prodotto, è giusto che tutto sia chiaro sin dagli inizi, per tutti (clienti, utenti e team di sviluppo).

Quando scaricate o utilizzare le vostre app mobile sappiate che… oltre allo schermo, c’è di più!

  • App

Condividi l'articolo

Leggi altri articoli