Seismic Guard · Alertas sísmicas

Alertas de terremoto que también llegan al iPhone

Los teléfonos Android pueden recibir las alertas de terremoto de Google; los iPhone no. Construimos Seismic Guard, una app en Flutter con código nativo en Kotlin y Swift que reenvía esas alertas a los teléfonos cercanos y suma las de EMSC, SGC y USGS.

El mapa en vivo con la ficha de un sismo (EMSC, SGC, USGS) y su página de detalle. Build de demostración con datos reproducidos.
El mapa en vivo con la ficha de un sismo (EMSC, SGC, USGS) y su página de detalle. Build de demostración con datos reproducidos.
En resumen

Seismic Guard es nuestra app de sismos para Android y iPhone. Tiene tres vías de detección: los catálogos de EMSC, SGC, USGS y GEOFON, un relay que reenvía las alertas de terremoto de Google para Android a todos los teléfonos registrados en un radio de 500 km, y una red de acelerómetros de teléfonos que todavía corre en modo sombra. La app está hecha en Flutter, con plugins nativos en Kotlin y Swift, backend en Supabase y un admin en Next.js. Las pantallas de esta página vienen de un build de demostración con datos reproducidos e inventados.

Cliente
Seismic Guard · Alertas sísmicas
Sector
Información sísmica
Dónde
Bogotá, Colombia
Año
2026
Entregables
  • App Flutter para Android y iOS
  • Relay nativo en Kotlin
  • Plugin de sensores en Kotlin y Swift
  • Backend Supabase: 17 Edge Functions
  • Admin web en Next.js
3vías de detección independientes
11idiomas
500 kmradio de alerta por defecto
17Edge Functions y 15 migraciones
El contexto

El iPhone se queda sin la alerta de Android

Google envía alertas de terremoto a los teléfonos Android en las zonas que cubre, y la alerta aparece en la interfaz del propio Android. Un iPhone en la misma mesa no recibe nada, así que en una familia con teléfonos distintos unos se enteran y otros no.

Los catálogos del Servicio Geológico Colombiano (SGC), EMSC y USGS publican el sismo cuando ya empezó: sirven para informar, no para avisar antes. Queríamos una app que recibiera las dos señales sin confundirlas y que le dijera a cada persona, con honestidad, si su teléfono está configurado para que la alerta llegue.

Diseño y construcción

Tres vías de detección que no se mezclan

El relay está escrito en Kotlin nativo. En un teléfono Android con acceso a notificaciones, un NotificationListenerService detecta la alerta de Google, la puntúa con un clasificador local y la envía, firmada con HMAC, a una Edge Function de Supabase. El servidor la reparte a todos los dispositivos registrados dentro del radio de alerta (500 km por defecto), Android o iPhone, sin emparejarlos. Las demás notificaciones se clasifican en el teléfono y nunca salen de él. Flutter no está en ese camino, así que el relay sigue funcionando con la interfaz de la app cerrada.

La segunda vía consulta EMSC cada 10 segundos, el SGC cada 20 y USGS cada 60 (intervalos por defecto), y luego normaliza, deduplica y correlaciona los eventos. Un evento de catálogo se etiqueta como detección rápida y nunca se muestra como alerta temprana. La tercera vía convierte los teléfonos en sensores: un detector de dos etapas en Kotlin y Swift envía disparos, y solo el consenso del servidor, con al menos cinco teléfonos creíbles, confirma un evento. Sale en modo sombra: detecta sin alertar hasta compararse con sismos reales del SGC y EMSC.

Detrás hay 15 migraciones SQL, 17 Edge Functions en Deno y un admin de siete páginas en Next.js para fuentes, nodos de relay, red de sensores, reglas del clasificador y logs de entrega. La interfaz está en 11 idiomas, con las instrucciones de agacharse, cubrirse y sujetarse en la fórmula de cada idioma.

Recorrido de un build de demostración: inicio, sismo, mapa, alertas, Centro de protección y una alarma TAKE ACTION simulada.
  1. 01

    Alertas de Android, reenviadas al iPhone

    Un teléfono Android que recibe la alerta de Google la pasa a todos los teléfonos registrados en 500 km. El iPhone la recibe por push de APNs, sin Firebase en esa ruta.

  2. 02

    Alerta temprana y catálogo, separados

    Un aviso reenviado lleva la etiqueta de alerta temprana; un evento de EMSC, SGC o USGS es una detección rápida. Cada sismo muestra qué fuente lo vio y a qué hora.

  3. 03

    Centro de protección

    La app revisa seis condiciones que deciden si una alerta llega (canal de notificaciones, pantalla completa, batería, No molestar, entre otras), las puntúa y ofrece un arreglo de un toque para cada una.

  4. 04

    El acceso a notificaciones queda en el teléfono

    Solo se envía lo que el clasificador puntúa con 95 o más, es decir una alerta de Google confirmada. Las notificaciones de otras apps se filtran en el teléfono y no se guardan ni se transmiten.

Resultados

Lo que está listo y lo que sigue abierto

Seismic Guard está en la versión 1.0.0, con 34 pruebas en Flutter, una suite de backend y CI que bloquea el release si fallan la localización, las pruebas nativas de Android o la auditoría de secretos. Hay dos puntos abiertos, documentados como tales. Google no garantiza que su alerta sea visible para apps de terceros, así que el relay solo se considera fiable después de inspeccionar una alerta real en un dispositivo; el EEW Inspector de la app existe para eso. Y la red de sensores sigue en modo sombra hasta calibrar sus umbrales.

La app lo dice en pantalla: es un canal adicional de información sísmica, no reemplaza los sistemas oficiales de emergencia, y las alertas pueden llegar antes, durante o después del movimiento.

  • 3 vías de detección: si una falla, las otras siguen
  • 11 idiomas, 34 pruebas móviles, 17 Edge Functions
  • Datos: EMSC (CC BY 4.0), SGC y USGS; mapas © CARTO y colaboradores de OpenStreetMap
  • Pantallas y video de esta página: build de demostración, datos reproducidos e inventados, alarma simulada
Preguntas frecuentes

Las preguntas que escuchamos a menudo

¿Seismic Guard funciona en iPhone?

Sí. El iPhone no recibe las alertas de terremoto de Android, pero cuando un teléfono Android registrado recibe una, nuestro servidor la reenvía por push a los iPhone dentro del radio de alerta, 500 km por defecto. El iPhone también recibe las alertas de catálogo de EMSC, SGC y USGS.

¿La app predice terremotos?

No. Ninguna app puede predecirlos. Seismic Guard reenvía alertas tempranas cuando existen y avisa de sismos detectados por las redes científicas. No todos los sismos se detectan, y una alerta puede llegar antes, durante o después del movimiento.

¿De dónde salen los datos?

De EMSC (licencia CC BY 4.0), el Servicio Geológico Colombiano, USGS y GEOFON como respaldo, más las alertas de Android reenviadas. Los mapas usan teselas de CARTO con datos de OpenStreetMap.

Hablar con Slash

Pongámoslo en producción

Cuéntanos tu reto. Respondemos en menos de 24 horas laborales con una primera lectura honesta: si podemos ayudarte, te diremos cómo; si no, te diremos quién puede.

Contesto personalmente. Sin formularios eternos ni respuestas automáticas.

Escribirle a Esteban