Herbarium
Una guía de campo de bolsillo con 500 hierbas y flores silvestres, y un cuaderno para lo que encuentres.
- Rol
- Diseño y desarrollo, en solitario
- Tipo
- Proyecto personal, publicado en Google Play
- Periodo
- 2016–2020 (versión 4.2)
- Plataforma
- Android, Java nativo
El producto
Herbarium es una guía de campo que cabe en un bolsillo y funciona sin conexión: 500 especies, cada una con foto, descripción, distribución y hábitat en inglés e italiano, todo incluido dentro de la app.
Está construida en torno a la pregunta que de verdad te haces en un prado (¿qué es esta cosa morada que florece en septiembre a cuatrocientos metros?) y la responde filtrando por color de la flor, por lo que está en flor este mes y por la altitud que indica el teléfono. Después hace de cuaderno: cada observación se guarda con su posición, altitud, foto y notas.
- 500
- especies en el catálogo sin conexión
- 2
- idiomas: inglés e italiano
- 1M
- puntos de la malla del geoide incluidos para convertir la altura GPS en altitud
- 10k
- líneas de Java
Recorrido
La app en acción
Elige una grabación o salta directamente a un capítulo.

Grabado con la app real en un emulador de Android. Sin sonido.
Qué hace
De «¿qué flor es esta?» a una entrada con fecha en tu cuaderno
01
Un catálogo que se recorre con la vista
El catálogo es un muro de fotos que se desplaza en horizontal, dimensionado según la pantalla para que siempre quepan cuatro filas. Al escribir parte de un nombre científico, la lista se va acotando; un toque abre la planta.
02
Filtros que se ajustan a cómo encuentras una planta
Rara vez sabes el nombre; sabes qué aspecto tiene y dónde estás. Por eso los filtros son el color de la flor, si la especie está en flor este mes y si crece a tu altitud actual, leída del GPS. Se combinan libremente.
03
Una ficha para cada especie
Nombre común y científico, una foto con su autoría que se puede ampliar, descripción, distribución y hábitat. Un calendario de floración resalta el mes actual y una pequeña montaña muestra el rango de altitud con una línea a tu propia altura. Wikipedia y Wikimedia Commons se abren dentro de la app para saber más.
04
Un cuaderno de campo
Una observación marca el lugar en un mapa satelital y registra coordenadas, fecha y altitud. La altura GPS en bruto se desvía decenas de metros, así que la app promedia varias lecturas y las corrige con un modelo de geoide que lleva incorporado. Con una foto y una nota, la planta pasa a «My herbs», donde se guardan todas las observaciones de una especie.
Por dentro
Cómo se construyó
Offline first
Una base de datos SQLite de 33 MB viene incluida en la app y se descomprime en el primer arranque; después se lee a través de un ContentProvider con contratos tipados. Las actualizaciones de datos llegan como scripts de migración, así que los usuarios de una versión anterior reciben el centenar de especies añadidas más tarde sin perder sus propias observaciones.
La altitud, como es debido
El GPS indica la altura sobre un elipsoide matemático, no sobre el nivel del mar. La base de datos incluye la malla del geoide EGM96 con una resolución de un cuarto de grado (alrededor de un millón de filas) y la app busca la celda en la que se encuentra el usuario para convertir una altura en la otra, tras promediar varias lecturas.
Interfaz a medida, sin framework
Vistas escritas a mano dibujan el gráfico de altitud y dan forma a las fotos; los tamaños de la cuadrícula y de los elementos se calculan a partir de la pantalla para que el diseño se mantenga en teléfonos, tabletas y en horizontal. Google Maps para las observaciones, Glide para la carga de imágenes, consultas en segundo plano para que el desplazamiento sea fluido.
Reconstruir hoy una app Android de 2016
El código no había cambiado. Todo lo que lo rodeaba, sí.
El proyecto ya no compilaba: sus herramientas de compilación estaban obsoletas, el repositorio del que descargaba las bibliotecas había cerrado y una versión de una biblioteca había desaparecido. El código fuente en sí estaba bien.
- 1
Una compilación nueva alrededor del código antiguo
Un pequeño proyecto envoltorio compila el código fuente original donde está, sin tocarlo, con herramientas de Android actuales y repositorios que todavía existen.
- 2
Firmada como la original
Google Maps solo responde a una app firmada con el certificado para el que se registró. La app reconstruida se firma igual que la original, así que los mapas satelitales cargan.
- 3
Dos parches, aplicados al compilar
La cámara del emulador solo ve una sala de estar sintética, así que una cámara sustituta encuadra en su lugar una foto real de una planta. Y Wikipedia retiró sus direcciones móviles, lo que hacía que la página dentro de la app saltara al navegador. Ambos son sustituciones de una línea hechas durante la compilación; los archivos originales se quedan como están.
- 4
Grabada en un emulador, por un script
Un storyboard encuentra los widgets a través del árbol de accesibilidad de Android, envía eventos táctiles reales a la pantalla táctil del emulador, le proporciona posiciones GPS y graba la pantalla. Cada clip y cada captura de esta página se pueden regenerar con un solo comando.
Las fotos del catálogo se atribuyen a sus autores dentro de la app. La observación que se muestra se inventó para la grabación.

Una app nativa no puede ejecutarse en esta página: las grabaciones de arriba son la propia app, en un emulador.
Todas las pantallas
La colección completa de capturas
InicioDos puertas: el catálogo y tus propias hierbas. CatálogoTodas las plantas, en una cuadrícula de fotos con desplazamiento horizontal. Filtrar por color de la florElige uno o más colores: ¿cómo era la flor que viste? En flor ahoraSolo las especies que florecen en el mes actual. Búsqueda por nombreFiltrado en vivo por nombre científico a medida que escribes. Ficha de la plantaNombre común y científico sobre una foto a todo lo ancho. DescripciónAutoría de la foto, descripción, distribución y hábitat. Floración y altitudEl mes actual se resalta en el calendario de floración; la montaña muestra el rango de altitud. Más sobre la plantaWikipedia y Wikimedia Commons, abiertas dentro de la app, y el mapa de tus observaciones. Visor de fotosPellizca para hacer zoom en la foto de la planta. WikipediaLa página de la especie en el idioma del teléfono. Nueva observaciónLa posición del GPS en un mapa satelital, lista para guardarse con la planta. Coordenadas y altitudLa latitud, la longitud y la fecha se registran automáticamente; la altura GPS se promedia y se corrige con un modelo de geoide para obtener la altitud real. Tomar una fotoEn la compilación de la demo, una cámara sustituta encuadra una foto incluida en la app; en un teléfono, es la cámara del sistema. Foto y notas personalesLa foto recién tomada y una nota de texto libre para la observación. My herbsCada especie que has encontrado, con su última nota. Detalles de la observaciónTodas las observaciones de una especie: dónde, cuándo, a qué altitud, con sus fotos.
Siguiente caso de estudio
Automha →