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
Ciclo de vida de um alerta
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 →
Como trabalhamos
Cada projeto segue o nosso processo artesanal, adaptado as necessidades especificas de cada cliente.
Discovery & Requisitos
Imersao no negócio, utilizadores e objetivos. Workshops de ideação, pesquisa de mercado e definição do escopo MVP.
Design & Arquitetura
Wireframes, protótipos interativos e arquitetura técnica. Validação com cliente antes de escrever código.
Desenvolvimento & Testing
Sprints de 2 semanas com demos. CI/CD, code review e testing contínuo. Feedback em cada iteração.
Entrega & Evolução
Deploy em produção, monitorização e suporte. Métricas pos-lançamento e roadmap de melhorias contínuas.