Pular para o conteúdo principal
Voltar aos casos de estudo Zonehaven

Zonehaven — App pública de alertas e evacuação

Desenvolvemos a AWARE, a app cidadã da Zonehaven: zonas de evacuação em tempo real, alertas push e mapa offline-first. Adquirida pela Genasys.

Next.js React Mobile App Push Notifications GIS GovTech SaaS
155M+
Pessoas protegidas
100+
Países
50
Estados dos EUA
Zonehaven - Visão geral do projeto

A Soamee desenvolveu a AWARE, a aplicação orientada aos cidadãos da Zonehaven, uma plataforma de gestão de evacuações mais tarde adquirida pela Genasys Inc. (NASDAQ: GNSS), líder global em comunicação crítica e alerta em massa. Hoje essa tecnologia faz parte de um sistema que protege mais de 155 milhões de pessoas em mais de 100 países e nos 50 estados dos Estados Unidos.

O nosso trabalho foi a peça que chega à pessoa: a que transforma uma decisão tomada num centro de comando numa instrução clara no bolso de alguém que está prestes a ter de sair de casa.

O desafio

Uma app de emergências não se parece com nenhum outro produto digital. Quebra quase todas as regras de produto que damos como certas:

  • Não tem onboarding. Ninguém a descarrega “para experimentar”. Abre-a pela primeira vez quando já há fumo no horizonte, com as mãos a tremer e sem paciência para um tutorial.
  • Não tem tráfego médio. Fica semanas em repouso e de repente recebe uma avalanche de aberturas simultâneas na mesma zona geográfica, precisamente quando a rede móvel está mais saturada.
  • Não admite ambiguidade. Um texto que pode ser lido de duas maneiras não é um problema de UX: é uma pessoa que sai quando devia ter ficado abrigada.
  • Não pode depender da rede. Em incêndios florestais, inundações ou sismos, a infraestrutura de comunicações é muitas vezes a primeira coisa a cair.
  • Não pode pedir dados. Uma ferramenta de segurança pública que exige registo, conta e consentimentos perde exatamente as pessoas a quem precisa de chegar.

A isto soma-se a natureza do emissor. Os alertas não são escritos por uma equipa de marketing: são emitidos por bombeiros, proteção civil, forças de segurança e gestores de emergências, cada um com o seu vocabulário, os seus protocolos e a sua regulamentação. A app tinha de ser o denominador comum de todos eles sem trair nenhum.

A nossa solução

Colaborámos com a Zonehaven no desenvolvimento da AWARE com Next.js e React, com um objetivo muito concreto: responder a três perguntas em menos de cinco segundos — o que está a acontecer, se me afeta e o que tenho de fazer agora.

Mapa de zonas em tempo real

O coração da app é um mapa de zonas de evacuação. Cada zona é um polígono definido pelo organismo competente e tem um estado que muda ao vivo durante o incidente:

  • Ordem de evacuação — sair já, pela rota indicada
  • Aviso de evacuação — preparar a saída: documentação, medicação e animais
  • Abrigar-se no local — permanecer dentro, fechar acessos e ventilação
  • Zona segura — sem restrições ativas

O utilizador localiza a sua zona por geolocalização ou procurando uma morada, e vê o estado com a instrução associada sem ter de interpretar nada. Sobre o mapa sobrepõem-se as camadas que importam durante uma evacuação: rotas recomendadas, cortes de estrada, abrigos e centros de acolhimento, e pontos de encontro.

Alertas push geolocalizados

A app resolve a localização do utilizador contra os polígonos ativos e só notifica quando realmente o afeta. Esse filtro é o que separa uma ferramenta útil de uma fonte de ruído:

  • Alertas por localização atual, que seguem o utilizador se este se deslocar durante o incidente
  • Localizações seguidas (casa, trabalho, a escola dos filhos) que recebem alertas mesmo com o utilizador longe
  • Notificações imediatas sempre que muda o estado de uma zona seguida
  • Recursos de preparação: guias e checklists para estar pronto antes de a emergência acontecer

Priorizámos as notificações push nativas sobre qualquer canal ao vivo dentro da app por uma razão simples: chegam com a aplicação fechada e com o telemóvel no bolso, que é a situação real 99% do tempo.

Desenhado para ser lido sob stress

Todas as decisões de interface foram tomadas otimizando para o pior cenário, não para a demo:

  • Uma única ação visível por ecrã. A instrução principal sempre acima da dobra, sem scroll.
  • A cor nunca vai sozinha. Cada estado combina cor, etiqueta de texto e ícone próprio, para funcionar com daltonismo, a plena luz do sol ou numa captura a preto e branco reencaminhada por WhatsApp.
  • Contraste verificado contra WCAG 2.1 AA, com tipografia grande e áreas táteis amplas: a app é usada com pressa, com luvas ou com o telemóvel na mão errada.
  • Linguagem literal. “Saia agora pela Rota 1 em direção norte” em vez de “recomenda-se considerar a evacuação”.
  • Hierarquia por criticidade, não por cronologia: uma ordem de evacuação nunca fica abaixo de um aviso de obras.

Arquitetura offline-first

Partimos do princípio de que a rede vai falhar, porque numa emergência real falha:

  • Service Workers que pré-carregam mapas base, geometrias de zona, rotas e guias de preparação ao instalar a app
  • Cache-first para todo o conteúdo estático, com revalidação em segundo plano assim que há ligação
  • Persistência local do último estado conhecido das zonas seguidas, sempre visível mesmo sem cobertura e com marca temporal explícita para o utilizador saber quão recente é
  • Sincronização automática ao recuperar o sinal, sem que o utilizador tenha de atualizar nada
  • Payloads mínimos e assets comprimidos, pensados para redes saturadas ou degradadas a meio do incidente

Desenhado para o pico, não para a média

O padrão de carga de uma app de emergências é um pico brutal e localizado. A arquitetura responde a isso: conteúdo estático servido a partir de CDN com caching no edge, respostas de API pequenas e cacheáveis, distribuição de notificações através de filas de fan-out, e degradação elegante — se algo tiver de cair, cai o acessório e nunca o estado de zona e a instrução de segurança.

O canal digital de um sistema maior

A AWARE não vivia sozinha: era o canal digital de um sistema de alerta que também chega à população por SMS, chamadas de voz, sirenes, rádio e televisão. Parte do nosso trabalho foi garantir que o canal digital falasse exatamente a mesma língua que os restantes — mesmos estados, mesmos nomes de zona e mesma instrução — para que ninguém recebesse duas versões diferentes da mesma ordem.

Arquitetura técnica

Arquitetura técnica da AWARE

Ciclo de vida de um alerta

Ciclo de vida de um alerta, do painel de emergências ao cidadão

Resultados

A plataforma Zonehaven foi adquirida pela Genasys Inc., validando a qualidade técnica e o valor do produto. Hoje a tecnologia da Genasys, incluindo a da Zonehaven, protege mais de 155 milhões de pessoas em mais de 100 países e nos 50 estados dos EUA. A plataforma foi destacada em meios como Fox News, NPR, Inc. Magazine e SF Gate.

  • 155M+ pessoas protegidas globalmente através da plataforma
  • Cobertura em 100+ países e nos 50 estados dos EUA
  • Disponibilidade offline garantida para os dados críticos de evacuação
  • Zero fricção de acesso: sem registo e sem barreiras no momento em que mais importa
  • Uma única linguagem visual de estados de zona, reutilizável por qualquer organismo emissor sem adaptações
  • Aquisição bem-sucedida pela Genasys Inc.

Decisões técnicas chave

  • Next.js com SSR: escolhido pela combinação de desempenho no primeiro render (crítico para acessos de emergência) e geração estática para os conteúdos de preparação.
  • Offline-first não negociável. Preferimos mostrar o último estado conhecido com a sua marca temporal a uma tela de erro: numa emergência, informação de há dez minutos é infinitamente melhor do que nenhuma.
  • Push nativo como canal principal, acima de WebSockets: é o único que chega com a app fechada, que é o estado normal da app.
  • Geometria no cliente sempre que possível. Resolver “estou dentro desta zona?” no dispositivo reduz a latência e funciona sem rede.
  • CDN com caching no edge, imprescindível num produto que opera em mais de 100 países com picos concentrados geograficamente.
  • Semáforo universal de estados, acessível e sem dependência do idioma, verificado contra WCAG 2.1 AA.

Stack técnico

  • Next.js (framework principal com SSR)
  • React (interface de utilizador)
  • Service Workers e armazenamento local (estratégia offline-first)
  • Push notifications (alertas de emergência)
  • Geolocalização e mapas interativos (camadas GIS: polígonos de zona, rotas, abrigos)
  • CDN com edge caching
  • Google Analytics (analítica)

O que levámos deste projeto

Trabalhar em tecnologia de emergências muda a forma de desenhar produto. As métricas habituais — tempo em ecrã, sessões, retenção — aqui não significam nada: o melhor resultado possível é que alguém abra a app, perceba o que fazer em três segundos e a feche. É um produto que se mede pela rapidez com que consegue que deixes de o usar.

Também nos deixou uma regra que aplicamos desde então em tudo o que construímos: desenhar para o pior dia, não para a demo. Se funciona com má rede, com pressa, com stress e com um telemóvel velho, funcionará o resto do tempo.

Precisa de uma app que funcione quando tudo o resto falha? Conheça o nosso serviço de desenvolvimento de apps móveis →

Metodologia

Como trabalhamos

Cada projeto segue o nosso processo artesanal, adaptado as necessidades especificas de cada cliente.

01

Discovery & Requisitos

Imersao no negócio, utilizadores e objetivos. Workshops de ideação, pesquisa de mercado e definição do escopo MVP.

02

Design & Arquitetura

Wireframes, protótipos interativos e arquitetura técnica. Validação com cliente antes de escrever código.

03

Desenvolvimento & Testing

Sprints de 2 semanas com demos. CI/CD, code review e testing contínuo. Feedback em cada iteração.

04

Entrega & Evolução

Deploy em produção, monitorização e suporte. Métricas pos-lançamento e roadmap de melhorias contínuas.

Pronto para construir algo incrível?

Vamos falar sobre como podemos ajudar a sua empresa a alcançar resultados como estes.

Agende uma call gratuita →