Herbarium
Una guida da campo tascabile a 500 erbe e fiori spontanei, con un taccuino per ciò che trovi.
- Ruolo
- Design e sviluppo, da solo
- Tipo
- Progetto personale, pubblicato su Google Play
- Periodo
- 2016–2020 (versione 4.2)
- Piattaforma
- Android, Java nativo
Il prodotto
Herbarium è una guida da campo che sta in tasca e funziona senza connessione: 500 specie, ognuna con foto, descrizione, distribuzione e habitat in inglese e in italiano, tutto incluso nell’app.
È costruita attorno alla domanda che ti fai davvero in mezzo a un prato (cos’è questa cosa viola, che fiorisce a settembre, a quattrocento metri?) e risponde filtrando per colore del fiore, per ciò che è in fiore questo mese e per l’altitudine indicata dal telefono. Poi tiene un taccuino: ogni ritrovamento viene salvato con posizione, altitudine, foto e note.
- 500
- specie nel catalogo offline
- 2
- lingue: inglese e italiano
- 1M
- punti della griglia del geoide inclusi nell’app per trasformare la quota GPS in altitudine
- 10k
- righe di Java
Tour guidato
L’app in azione
Scegli una registrazione, o salta direttamente a un capitolo.

Registrate dall’app vera su un emulatore Android. Senza audio.
Cosa fa
Da “che fiore è?” a una voce datata nel tuo taccuino
01
Un catalogo da sfogliare con gli occhi
Il catalogo è una parete di foto che scorre di lato, dimensionata sullo schermo in modo che ci stiano sempre quattro righe. Basta digitare parte di un nome scientifico perché l’elenco si restringa mentre scrivi; un tocco apre la pianta.
02
Filtri che rispecchiano come si incontra una pianta
Il nome lo si conosce di rado; si sa che aspetto ha la pianta e dove ci si trova. Per questo i filtri sono il colore del fiore, se la specie è in fiore questo mese e se cresce alla quota in cui sei, letta dal GPS. Si possono combinare liberamente.
03
Una scheda per ogni specie
Nome comune e scientifico, una foto con i crediti dell’autore che si può ingrandire, descrizione, distribuzione e habitat. Un calendario delle fioriture evidenzia il mese corrente e una piccola montagna mostra la fascia altimetrica, con una linea alla tua quota. Per approfondire, Wikipedia e Wikimedia Commons si aprono dentro l’app.
04
Un taccuino da campo
Un ritrovamento fissa il punto su una mappa satellitare e registra coordinate, data e altitudine. La quota GPS grezza sbaglia di decine di metri, quindi l’app fa la media di alcune letture e le corregge con un modello del geoide che porta con sé. Aggiungi una foto e una nota, e la pianta entra in “My Herbs”, dove sono conservati tutti i ritrovamenti di ogni specie.
Sotto il cofano
Come è stato realizzato
Offline first
Un database SQLite da 33 MB è incluso nell’app e scompattato al primo avvio, poi letto tramite un ContentProvider con contratti tipizzati. Gli aggiornamenti dei dati arrivano come script di migrazione, così chi aveva una versione precedente riceve le cento specie aggiunte in seguito senza perdere i propri ritrovamenti.
L’altitudine, fatta come si deve
Il GPS fornisce l’altezza rispetto a un ellissoide matematico, non sul livello del mare. Il database include la griglia del geoide EGM96 con risoluzione di un quarto di grado (circa un milione di righe) e l’app cerca la cella in cui si trova l’utente per convertire l’una nell’altra, dopo aver fatto la media di più rilevazioni.
UI su misura, senza framework
View scritte a mano disegnano il grafico dell’altitudine e danno forma alle foto; le dimensioni della griglia e degli elementi sono calcolate in base al display, così il layout regge su telefoni, tablet e in orizzontale. Google Maps per i ritrovamenti, Glide per la gestione delle immagini, query in background per uno scorrimento fluido.
Ricompilare oggi un’app Android del 2016
Il codice non era cambiato. Tutto il resto sì.
Il progetto non compilava più: gli strumenti di build erano obsoleti, il repository da cui scaricava le librerie aveva chiuso e la versione di una libreria era sparita. I sorgenti, invece, erano a posto.
- 1
Una nuova build attorno al vecchio codice
Un piccolo progetto contenitore compila i sorgenti originali lì dove si trovano, senza toccarli, con una toolchain Android attuale e repository che esistono ancora.
- 2
Firmata come l’originale
Google Maps risponde solo a un’app firmata con il certificato per cui è stata registrata. L’app ricompilata è firmata come l’originale, così le mappe satellitari si caricano.
- 3
Due patch, applicate in fase di build
La fotocamera dell’emulatore vede solo un salotto sintetico, quindi una fotocamera sostitutiva inquadra al suo posto la foto di una pianta vera. E Wikipedia ha dismesso i suoi indirizzi mobile, il che faceva saltare al browser la pagina aperta nell’app. Sono entrambe sostituzioni di una riga fatte durante la build; i file originali restano come sono.
- 4
Registrata su un emulatore, da uno script
Uno storyboard trova i widget attraverso l’albero di accessibilità di Android, invia veri eventi touch al touchscreen dell’emulatore, gli fornisce posizioni GPS e registra lo schermo. Ogni clip e ogni screenshot di questa pagina si possono rigenerare con un solo comando.
Le foto del catalogo sono accreditate ai loro autori all’interno dell’app. Il ritrovamento mostrato è stato inventato per la registrazione.

Un’app nativa non può girare in questa pagina: le registrazioni qui sopra sono l’app vera e propria, su un emulatore.
Ogni schermata
La raccolta completa degli screenshot
HomeDue porte: il catalogo e le tue erbe. CatalogoTutte le piante, in una griglia di foto che scorre in orizzontale. Filtro per colore del fioreScegli uno o più colori: com’era il fiore che hai visto? In fiore adessoSolo le specie che fioriscono nel mese corrente. Ricerca per nomeFiltro in tempo reale sul nome scientifico, mentre si digita. Scheda piantaNome comune e nome scientifico sopra una foto a tutta larghezza. DescrizioneCrediti della foto, descrizione, distribuzione e habitat. Fioritura e altitudineIl mese corrente è evidenziato nel calendario delle fioriture; la montagna mostra la fascia altimetrica. Per saperne di piùWikipedia e Wikimedia Commons, aperti dentro l’app, e la mappa dei tuoi ritrovamenti. Visualizzatore di fotoZoom con due dita sulla foto della pianta. WikipediaLa pagina della specie nella lingua del telefono. Nuovo ritrovamentoLa posizione GPS su una mappa satellitare, pronta per essere salvata con la pianta. Coordinate e altitudineLatitudine, longitudine e data vengono registrate automaticamente; la quota GPS viene mediata e corretta con un modello del geoide per ottenere l’altitudine reale. Scattare una fotoNella build della demo una fotocamera sostitutiva inquadra una foto inclusa nell’app; su un telefono qui c’è la fotocamera di sistema. Foto e note personaliLa foto appena scattata e una nota libera sul ritrovamento. My HerbsTutte le specie che hai trovato, con la nota più recente. Dettagli dei ritrovamentiTutti i ritrovamenti di una specie: dove, quando, a che quota, con le loro foto.
Prossimo caso di studio
Automha →