Tres piezas que se construyen a la vez: una app para iOS y Android, el servidor
que le da los datos y la web que la presenta. La web ya está publicada; la
app y el servidor siguen en construcción. Todavía no hay resultados que
contar, así que esta ficha explica qué es cada pieza y en qué punto está.
Qué es
Una app que enseña qué está pasando en las zonas que elige cada usuario
y en el resto del mundo y avisa cuando ocurre algo en ellas. Cada dato indica qué
organismo lo publica, a qué hora y con qué enlace. Con los datos que va archivando
calcula además lo que la fuente no da: si lo de hoy es normal en ese lugar, cuánto
suele durar y cada cuánto se repite. No es un agregador de titulares.
Qué se está construyendo
Las tres piezas a la vez: el servidor que recoge y ordena los datos,
la app para iOS y Android y la web de captación. Hay una cuarta que no se vende: el
panel interno con el que se opera todo lo demás.
Estado
La web, publicada; la app, en construcción. El servidor ya archiva
datos de más de noventa fuentes públicas y la app ya se puede recorrer entera.
Todavía no está en las tiendas y no hay fecha de salida publicada.
Entre la fuente y la app hay un servidor que toma tres decisiones con cada
dato: si es un hecho o es ruido, a qué lugar del mapa pertenece y a qué usuarios hay
que avisar. Esa es la parte más grande del proyecto. La app es la parte que se ve y
la más pequeña.
La app solo puede enseñar lo que el servidor ha ordenado antes. El trabajo más grande es el del servidor y es el que no se ve.
Por dónde va
Las tres piezas, una por una.
Se construyen a la vez porque dependen unas de otras. Cada una está en
un punto distinto y aquí se cuenta cuál.
8idiomas, en la app y en la web
+90fuentes públicas, cada una con su licencia
3ámbitos en la app: naturaleza, transporte y salud
2plataformas, iOS y Android con el mismo código
El servidorRecoge los datos de las fuentes, los archiva sin duplicados y asigna cada hecho
a su municipio. Está hecho con Java y Spring Boot sobre PostgreSQL con extensión
geográfica. Los cambios de la base de datos están versionados y las pruebas se
ejecutan contra una base de datos real.
La appHecha con Expo y React Native: el mismo código para iOS y Android, en ocho
idiomas. Tiene tres ámbitos —naturaleza, transporte y salud— y cada uno enseña las
zonas que el usuario ha guardado: el mapa, los avisos en vigor con su nivel y su
fuente, las cámaras públicas de tráfico cuando las hay y el histórico de cada cifra.
Además hay dos vistas generales. Mundo enseña los sucesos activos del planeta.
Pulso compara lo que pasa en el planeta con lo habitual —los terremotos, el
sol, las temporadas— y no lleva avisos. El envío de avisos está
programado en el servidor y en la app; falta probarlo en móviles reales.
La web de captaciónEs estática y está publicada en los mismos ocho idiomas que la app. Enseña el
catálogo de fuentes, que sale de los mismos datos que usa el sistema, con la licencia
literal de cada una. También enseña los planes y las reglas editoriales. La descarga
aparece como «próximamente» hasta que la app esté en las tiendas. La web todavía
describe los seis ámbitos anteriores: se reescribirá cuando la app esté
cerrada, para no hacer el trabajo dos veces.
La app, hoy
Cuatro pantallas de la app.
Mundo, un terremoto con los municipios afectados, Transporte y Pulso. Son capturas reales, con los datos
del día en que se hicieron y cada cifra con su fuente y su hora.
Mundo
Un terremoto
Municipios afectados
Transporte
Pulso
Lo que cambió por el camino
Dos cambios de rumbo y lo que costó cada uno.
Ninguno de los dos estaba en el plan. Los dos se decidieron con el producto
ya construido, que es cuando cambiar sale más caro. Por eso se cuentan aquí con su
coste.
De seis ámbitos a tresLa app tenía seis ámbitos y se quedó con tres. La decisión salió de contar lo
que de verdad se había publicado: los veinte sucesos de conflicto del mundo estaban
todos por debajo del nivel de aviso y más de un tercio del catálogo de series era de
economía, un ámbito sin un solo suceso. El coste: se desactivaron treinta y
siete fuentes y se retiraron sus pantallas, sus iconos y sus reglas de color. No se
borró nada: lo archivado sigue guardado y cada fuente se reactiva cambiando una
línea, así que la decisión se puede deshacer.
Rediseño visual sin tocar la estructuraSe cambió todo el aspecto de la app: fondo crema de día y gris de noche, la
tipografía del sistema en lugar de tipografías empaquetadas, cifras de ancho fijo y
un juego de iconos propio. Salió barato porque la regla se escribió antes de empezar:
cambia la estética y los elementos se quedan. Cada pantalla conserva las
mismas piezas en el mismo orden y el color se reserva para la escala de gravedad. Si
una pantalla ganaba o perdía algún elemento con el cambio, estaba mal hecha. Con esa
regla el rediseño fueron dos fases de trabajo acotado y no hubo que reescribir
nada.
Decisiones de partida
Tres decisiones tomadas antes de escribir código.
Se dejaron por escrito antes de la primera línea de código, porque
cambiarlas después obliga a reescribir. Son las que más han condicionado el resto del
trabajo.
Cada dato lleva su fuente a la vistaCada dato indica el organismo que lo publica, la hora y el enlace. Una categoría
no se enseña hasta que tiene detrás una fuente con competencia sobre el asunto. Es
más lento de construir, pero sin esa regla sería un agregador de noticias.
Modelos de aprendizaje automático entrenados con el propio archivoCon los datos archivados se entrenan modelos de detección de anomalías.
Detectan si lo que acaba de pasar se sale de lo normal en ese lugar o si una fuente
ha empezado a dar datos raros. Son modelos interpretables: cada resultado enseña de
dónde sale y se puede recalcular. Es ciencia de datos; aquí ningún modelo de lenguaje
resume textos.
Cobertura mundial desde el primer díaNo se empezó por un país para ampliar después. Eso obliga a tener un catálogo
de lugares de todo el planeta y a que la asignación de cada hecho a su lugar sea
rápida desde el principio, en vez de encontrarse el problema al salir a otros
países.
¿Tenéis un producto que construir?
Lo aprendido construyendo estas
tres piezas a la vez sirve para el vuestro. Media hora para ver qué piezas necesita, en
qué orden y desde cuánto sale.