Front-end, back-end, full-stack. Sistemisti, databasisti, web-developer. Per molto tempo ho pensato che “sviluppatore”, calco dall’inglese “developer” (cioè in parole povere: “programmatore”) fosse un sostantivo singolare. Al massimo, da arricchire con qualche aggettivo (mi viene in mente “bravo” e “mago”, ma lo dico sorridendo).
Invece, scrivendo e facendo il giornalista nel settore della tecnologia ho scoperto che non esiste “lo sviluppatore”: esistono invece “gli sviluppatori”, sostantivo sempre plurale. E quella lista di nomi che ho messo all’inizio in realtà è parziale. C’è chi ne ha identificate almeno 19 varianti diverse e il discorso mi torna, perché dopotutto è così anche per molte altre professioni. Anche medico e giornalista sono due parole solo plurali. Se ci pensate, molte altre professioni sono così: compatte se viste dall’esterno, ma in realtà molto più articolate e differenziate, con molte specializzazioni, se viste dall’interno.
Qualche settimana fa eravamo andati a vedere il cantiere di sviluppo della app di Anobii. Per noi avere una buona app per mobile è fondamentale. Quando Greg Sung ha creato Anobii nel 2006 non esistevano ancora iOS e Android, non c’erano gli app store e i telefoni “intelligenti” era piuttosto primitivi e poco diffusi. Adesso invece la maggior parte delle persone naviga il web dal telefonino e questo torna anche guardando gli accessi al sito che abbiamo registrato in questi mesi. Per questi motivi, e anche perché la casa madre di Anobii, cioè Ovolab, è specializzata nella realizzazione di app per smartphone, l’obiettivo non è solo fare un buon sito ma anche realizzare una ottima app.
In particolare, un po’ di tempo fa avevamo visto lo sviluppo dell’interfaccia utente. A che punto siamo oggi? La parte grafica è già molto avanzata, le nuove fondamenta sono state disegnate, l’app manterrà una copia locale persistente (ovvero preservata fra un uso e il successivo) di un sottoinsieme degli oggetti (utenti, libri, recensioni, e altro) immagazzinati su cloud, insieme alle relazioni fra questi oggetti (ciò che in informatichese viene chiamato “object graph”), e ciò consentirà partenze più rapide e la possibilità di usare alcune funzionalità dell’app anche offline, cioè in assenza di connessione Internet. Quindi sarà più veloce, più stabile e più completa di un semplice wrapper web.
Rispetto alle funzioni, quando sarà pronta la prima versione della app ci saranno ovviamente il feed, la libreria utente, la wishlist, il profilo, le notifiche con le attività e i messaggi, i profili degli altri utenti, lo scanner dei codici a barre per il riconoscimento veloce dei libri. Sarà quindi possibile cercare libri, aggiungerli al proprio scaffale, votarli e scrivere una recensione, ma anche partecipare alle discussioni o scambiare messaggi con i singoli utenti. Questo è il grosso del lavoro, nei rilasci successivi aggiungeremo pian piano altre funzionalità sia per completare quelle disponibili sul sito sia per aggiungere alcune cose a cui stiamo cominciando a lavorare. Il tutto nel massimo rispetto delle tecnologie per l’accessibilità, perché vogliamo che l’app sia il più inclusiva possibile e possa essere l’app di tutti, anche di chi ha bisogno di un aiuto.
Come dicevo prima, il lavoro va avanti in parallelo su iOS e su Android. Questo vuol dire che ci sono due sviluppatori diversi: uno specializzato su iOS e l’altro su Android. Ve li presento: Marco Celestino (iOS) e Giovanni Perrone (Android). Gli ho fatto qualche domanda per farveli conoscere meglio. Perché il codice di cui sono fatti i software non li scrive il computer, ma delle persone come tutte le altre.
Come siete diventati sviluppatori?
Marco: Finite le superiori ho provato altri lavori, ma ho sempre avuto la passione e soprattutto la curiosità di scoprire cosa ci fosse dietro a quelle applicazioni, siti o programmi che tanto mi piaceva usare. Così ho cercato un corso e mi sono trasferito a Roma dalla Calabria per frequentarlo. Finito il corso ho avuto la fortuna di poter fare uno stage presso un’azienda e caso ha voluto che servisse uno sviluppatore iOS. Amavo già il mondo Apple e sono sempre stato fedele all’ iPhone, quindi non potevo esserne più felice.
Giovanni: Il mio percorso è piuttosto semplice, sono un perito informatico, lavoro come sviluppatore dal 2001. Ho scoperto la programmazione con il Turbo Pascal durante il biennio alle superiori e da allora è nata una passione. Una volta diplomato ho passato 10 anni nel mondo server enterprise (Java Backend/Frontend) e dal 2010 su Android fino ad oggi con Kotlin. Sono affascinato e ho sempre supportato il mondo open source e i sistemi aperti.
A parte la passione, cosa ci vuole per diventare un buono sviluppatore? Talento per la matematica, mente analitica, tanta applicazione?
Marco: Non bisogna essere per forza un genio in matematica (se lo sei che ben venga). Sicuramente ci vuole capacità di analisi di un problema: spesso capire il problema è più difficile che risolverlo. Un altro aspetto fondamentale a mio avviso è saper collaborare, soprattutto in una realtà aziendale.
Giovanni: La passione c’è all’inizio, poi scatta qualcos’altro nella testa. Un meccanismo mentale a cui non puoi più fare a meno. E’ ovvio che la base scientifica sia al centro delle competenze ma conta di più la determinazione nel volerlo fare. Oggi c’è molta richiesta di sviluppatori perché non tutti sono in grado di farlo per tanto tempo in modo continuativo.
Sviluppare app sta cambiando man mano che cambiano le tecnologie utilizzate dalle due piattaforme di cui vi occupate: quali sono le nuove possibilità che uno sviluppatore può sfruttare?
Marco: Il sistema operativo iOS è in continua evoluzione, così come il linguaggio e i tools di casa Apple. Le novità aprono nuovi scenari e spesso facilitano il lavoro a noi sviluppatori, quindi è buona norma restare il più possibile aggiornato.
Giovanni: Google nell’ultimo periodo ha riorganizzato lo sviluppo per Android mettendo a disposizione Android Jetpack una serie di librerie, tool e linee guida per uno sviluppo ottimale. La nuova App di Anobii seguirà le best practices delineate dal team Google.
Qual è la prima sfida che incontri ogni volta che devi iniziare un nuovo progetto? Ammesso che sia possibile dire che ce n’è una uguale per tutti
Marco: Ogni progetto è frutto di un’analisi. Comprendere i requisiti per impostare al meglio il progetto è la prima sfida.
Giovanni: La sfida più grande per chi sviluppa per questo OS è quella di arrivare a più persone. Devi pensare prima di tutto ai migliaia di modelli di device in commercio, che hanno svariati form factor e componenti (display, fotocamera), nonché versioni del sistema operativo. In generale, questa frammentazione di Android ci limita e ci rallenta molto lo sviluppo, ma Anobii è progettata per supportare anche smartphone non recenti. L’attenzione sarà dedicata alla velocità di esecuzione e al consumo di memoria.
Ultima domanda: qual è il pezzetto della app che hai costruito e di cui sei più orgoglioso?
Marco: La scheda di dettaglio di un libro è sicuramente la parte che mi ha dato più soddisfazione.
Giovanni: Mi sono letteralmente divertito nella gestione delle animazioni dell’App (transizioni, elementi dinamici, ecc.). Attualmente credo che ce ne siano troppe, immagino che molte verranno sfoltite in fase di beta pubblica. Non a tutti (purtroppo) piacciono, attendo feedback a riguardo.
Infine, un’ultima cosa: visto che Giovanni faceva riferimento alla beta pubblica, cioè alla possibilità per gli utenti di utilizzare e testare (per aiutarci a trovare problemi e bug del software) l’app di Anobii: tra qualche settimana inizia. Se siete interessati, questo è l’indirizzo mail a cui potete scrivere per segnalare la vostra disponibilità: contact@anobii.com