Da zero a 700 download su Play Store in una settimana

Un piccolo esercizio di product launching

La storia di questa app inizia con un progetto che ci aspettavamo partisse, ma che subisce un ritardo a causa di un cliente un po' indeciso.

Al contempo è arrivato Fabrizio, il nuovo sviluppatore Android entrato a fare parte del team di Belka, che si è ritrovato inaspettatamente libero per cinque giorni.

E così è iniziata una mini-hackathon interna per accoglierlo nel team.

Requisiti

Le nostre linee guida per l'app erano:

  • realizzare un'app che totalizzasse almeno 500 download nella settimana successiva al rilascio,
  • che fosse una utility,
  • che contenesse almeno una piccola sfida tecnica, in modo da poter imparare qualcosa di nuovo facendola.

Di recente ci eravamo resi conto che su Play Store mancava un'app efficace per calcolare i rimborsi chilometrici. Alcune erano così vecchie che i collegamenti al web non funzionavano più, altre avevano recensioni così basse che non abbiamo neanche provato a scaricarle.

Ci sembrava potesse essere un buon punto di partenza per costruire qualcosa di significativo.

I dati

Purtroppo non esiste un database strutturato per le tabelle dei rimborsi chilometrici. In una realtà alternativa la gazzetta ufficiale struttura i dati in un database e fornisce un'API pubblica, ma nel mondo reale la situazione è un'altra.

Grazie per il formato standard!

I dati sono distribuiti su un file di testo, che non siamo riusciti a ricondurre ad alcun pattern. Per ovviare al problema abbiamo scritto un piccolo scraper che ha letto i dati e li ha strutturati su CSV.

In un mondo alternativo i dati sono già strutturati. Purtroppo la realtà è diversa.

Dato che l'app doveva essere online in cinque giorni non c'era tempo di costruire un backend ad-hoc. Per questo ci siamo appoggiati a Google Drive, che fornisce un servizio per esporre API da Google Sheets, il servizio simile a Excel presente nella suite di Drive.

Una volta popolato il foglio di Google Sheets potevamo fare query direttamente da lì, senza avere un "vero" backend.

Il design

Abbiamo optato per un design basato interamente sulle guidelines di Google Material Design, questo anche per semplificare anche la parte di sviluppo. Utilizzando elementi stock lo sviluppo procede più velocemente perché utilizza componenti già implementate e testate.

Il design si è svolto principalmente su lavagna, e con piccoli spunti su Sketch, per chiarire quali elementi di UI utilizzare.

Qui abbiamo definito l'elevation degli elementi.

Terminata la parte di UI siamo passati a realizzare un'icona bella. Considerato che non siamo visual designer è stata una delle parti su cui abbiamo fatto più fatica!

Dopo numerosi tentativi — alcuni dei quali veramente brutti — siamo arrivati a un'icona che è perfettamente a suo agio in questo mondo flat, ma non troppo, che è Material Design.

Da un punto di vista tecnico

Abbiamo deciso di utilizzare MVP come pattern architetturale per il progetto. Ci siamo appoggiati ad una libreria esterna, Mosby (che si chiama così in onore di Ted Mosby, da How I Met Your Mother!), per generare tutto il boilerplate e per dare la giusta impostazione al codice.

Lo so, è Barney, ma ci sono veramente pochi telefoni o app in HIMYM.

Model-View-Presenter (MVP) si basa sulla separazione netta della business logic (presenter) dalle activity/fragment (view). Le view delegano le richieste dei dati (model) al presenter, il quale si occupa si recuperarli e fornirli secondo le opportune considerazioni.

Grazie a questo pattern si evita di scrivere classi di activity/fragment da 1000+ righe di codice, tutti i metodi risultano molto succinti e la leggibilità del codice è ottima.

Il progetto è disponibile open source su Github, per i nerd più coraggiosi tra voi.


Risultati

L'app è stata accolta molto positivamente, tanto da conquistarci uno spazio su TuttoAndroid, uno dei punti di riferimento italiani per quanto riguarda il mondo del robottino verde.

Ci sono stati 750 download nei primi giorni, e siamo certi, vista l'assenza di questa utility sullo store, che sarà utile a molti altri.

Rimborsi chilometrici è disponibile gratuitamente su Play Store. Scaricala e fammi sapere che ne pensi!