La gran parte dei metodi agili sviluppano il software in finestre di tempo limitate, chiamate iterazioni. Ogni iterazione è un piccolo progetto a sé stante e deve contenere un piccolo incremento nelle funzionalità del software
(da wikipedia)
FindMyDroid è un'applicazione nuova e davvero interessante, che ci permette con pochi semplici comandi, di tracciare la posizione del nostro telefonino Android.
Visto il minimalismo del prodotto, che fa una sola cosa e la fa molto bene, e la sua provenienza nostrana, l'Androide Minimalista ne ha intervistato lo sviluppatore. Si è parlato un po' della storia e del futuro del suo bel progetto, soffermandosi in particolare sullo stile di programmazione adottato per realizzarlo: FindMyDroid è infatti nato da uno sviluppo "agile", per molti versi vicino ai principi minimalisti.
Vincenzo Autiero è consulente presso una società di informatica di rilievo nazionale; esperto di progettazione di sistemi software e sviluppo agile, da poco si è appassionato all'ambito mobile.
Se non conoscete il suo FindMyDroid e volete saperne di più, potete leggerne una recensione su questa pagina di HDBlog, oppure scaricarla direttamente dal market con il link seguente.
Parlaci della "nascita" di FindMyDroid. Cosa ti ha ispirato e come lo hai progettato?
L'idea di sviluppare FindMyDroid è nata dal desiderio di approfondire l'SDK Android, unito all'esigenza puramente personale di avere un software che mi permettesse di localizzare il telefono.
Quando qualche anno fa persi il mio iPhone 3G, acquistato con non pochi sacrifici, cercai per giorni sul sito del supporto Apple un modo che mi permettesse di localizzarlo, poi scoprii che se avessi avuto un account MobileMe e un software preventivamente installato sul telefono avrei potuto farlo. Ed il servizio era a pagamento.
La decisione di pubblicare FindMyDroid e non utilizzarlo solo per le mie esigenze è maturata quando la realizzazione volgeva quasi al termine.
Quando qualche anno fa persi il mio iPhone 3G, acquistato con non pochi sacrifici, cercai per giorni sul sito del supporto Apple un modo che mi permettesse di localizzarlo, poi scoprii che se avessi avuto un account MobileMe e un software preventivamente installato sul telefono avrei potuto farlo. Ed il servizio era a pagamento.
La decisione di pubblicare FindMyDroid e non utilizzarlo solo per le mie esigenze è maturata quando la realizzazione volgeva quasi al termine.
Purtroppo mi sono introdotto in un contesto già saturo, dove erano presenti soluzioni simili, gratuite ed altrettanto valide (anche se alcuni hanno dichiarato funzionalità fasulle, non fattibili tecnicamente perchè violerebbero la sicurezza della piattaforma Android). La scelta migliore era, quindi, quella di pormi allo stesso modo di chi, più affermato di me, proponeva lo stesso prodotto e pubblicare anche la mia applicazione gratis; non escludo però l'ipotesi di creare una versione a pagamento di FindMyDroid con più funzionalità e che offra un canale di supporto più veloce.
Parliamo di sviluppo agile. Come hai utilizzato questo approccio per la tua applicazione?
Sono partito dai casi di test mirati, in modo da poter ragionare sulle funzionalità dei singoli componenti, isolandoli dal contesto.
In questo modo si lavora alla definizione delle interfacce di ogni singolo modulo scoprendo di volta in volta i nuovi requisiti (come fosse un mondo a sè stante. Ricorda da vicino il "monotasking" minimalista e diverse metodologie di focus, che consigliano di affrontare un singolo problema atomico alla volta [nota dell'Androide]).
Durante la progettazione ho individuato parecchi moduli software da implementare perchè sin da subito avevo l'intenzione di creare un'architettura flessibile, allo scopo di ridurre lo sforzo degli interventi futuri di manutenzione. Ho impiegato circa due mesi di lavoro per sviluppare il tutto: credo la scelta iniziale dell'approccio agile mi abbia agevolato ed abbia ridotto i tempi.
Qual'è stata la fase più difficoltosa del tuo lavoro?
La parte più delicata della realizzazione è stata la progettazione del modulo di localizzazione. Oggi giorno i telefoni cellulari sono sempre più sofisticati ed Android, a differenza di iOS per iPhone, è stato progettato per poter funzionare su dispositivi con diverse caratteristiche hardware. Le applicazioni per Android hanno di conseguenza molteplici target: i dispositivi sui quali FindMyDroid sarebbe stato eseguito avrebbero potuto avere il sistema GPS, l'AGPS o entrambi. Non è detto, inoltre, che al momento della localizzazione essi siano abilitati. Il modulo di localizzazione di FindMyDroid prevede, quindi, l'utilizzo di tutti i provider di localizzazione possibili per Android, selezionandoli dinamicamente in base alla migliore accuratezza.
Sempre su "L'Androide Minimalista":
Differentemente da altri applicativi simili però, FindMyDroid notifica la sostituzione illegittima della sim card; se non lo facesse infatti si perderebbe il controllo del dispositivo. Il software è inoltre tradotto in due lingue e con le future versioni saranno disponibili traduzioni aggiuntive.
Parliamo di sviluppo agile. Come hai utilizzato questo approccio per la tua applicazione?
Sono partito dai casi di test mirati, in modo da poter ragionare sulle funzionalità dei singoli componenti, isolandoli dal contesto.
In questo modo si lavora alla definizione delle interfacce di ogni singolo modulo scoprendo di volta in volta i nuovi requisiti (come fosse un mondo a sè stante. Ricorda da vicino il "monotasking" minimalista e diverse metodologie di focus, che consigliano di affrontare un singolo problema atomico alla volta [nota dell'Androide]).
Durante la progettazione ho individuato parecchi moduli software da implementare perchè sin da subito avevo l'intenzione di creare un'architettura flessibile, allo scopo di ridurre lo sforzo degli interventi futuri di manutenzione. Ho impiegato circa due mesi di lavoro per sviluppare il tutto: credo la scelta iniziale dell'approccio agile mi abbia agevolato ed abbia ridotto i tempi.
Qual'è stata la fase più difficoltosa del tuo lavoro?
La parte più delicata della realizzazione è stata la progettazione del modulo di localizzazione. Oggi giorno i telefoni cellulari sono sempre più sofisticati ed Android, a differenza di iOS per iPhone, è stato progettato per poter funzionare su dispositivi con diverse caratteristiche hardware. Le applicazioni per Android hanno di conseguenza molteplici target: i dispositivi sui quali FindMyDroid sarebbe stato eseguito avrebbero potuto avere il sistema GPS, l'AGPS o entrambi. Non è detto, inoltre, che al momento della localizzazione essi siano abilitati. Il modulo di localizzazione di FindMyDroid prevede, quindi, l'utilizzo di tutti i provider di localizzazione possibili per Android, selezionandoli dinamicamente in base alla migliore accuratezza.
Sempre su "L'Androide Minimalista":
Applicazione sicuramente interessante per la sua semplicità e funzionalità.
RispondiEliminaComplimenti allo sviluppatore.
Spero che in un futuro abbastanza prossimo questa applicazione possa essere implementata.
Bravo.
Un "Androidiano" .