Skip to content

Flutter application with real-time alerting

SAVIOR — Voice-Activated Personal Safety App

A personal safety application built in Flutter with voice-command activation, emergency contact alerting and real-time location sharing.

Platform
Flutter, cross-platform
Activation
Voice command
Backend
Firebase realtime
Focus
Reliability under stress

Role

Mobile development and backend integration

Timeline

2025

Stack

Flutter, Dart, Firebase, Alan AI

Overview

SAVIOR is a personal safety application: a user in distress triggers an alert by voice, and the app notifies pre-configured emergency contacts with their current location and keeps that location updating. Built in Flutter for cross-platform reach, with Firebase for realtime data and Alan AI for voice command handling.

The problem

The design constraint that shapes everything is that this app is used in exactly the circumstances where interacting with a phone is hardest. A user may not be able to unlock a screen, find an icon and tap a button. Any interaction requiring visual attention and fine motor control is a design failure for this use case.

That is why activation is voice-first, and why the reliability requirements are unusually strict — a safety feature that works ninety percent of the time is not a safety feature.

Architecture

  • Voice command recognition as the primary activation path, with a physical-gesture fallback for noisy environments.
  • Firebase realtime database for location updates, so contacts see movement rather than a single stale pin.
  • Emergency contacts configured ahead of time, because configuration during an incident is not realistic.
  • Local queueing of alerts, so a triggered alert survives poor connectivity and sends when the network returns.

Technical challenges

False positives versus missed activations

Voice activation has two failure modes pulling in opposite directions. Too sensitive, and ordinary conversation triggers alerts — which trains users to disable the feature, and erodes contacts' trust in it. Not sensitive enough, and it fails when it matters.

The approach was a distinctive activation phrase unlikely to occur in normal speech, paired with a short cancellation window after triggering. The window is long enough to catch an accidental activation and short enough not to meaningfully delay a genuine one.

Working with unreliable connectivity

A safety app cannot assume network availability — the situations it exists for correlate with bad reception. An alert that fails silently because a request timed out is the worst possible outcome.

Alerts are persisted locally the moment they are triggered and retried until acknowledged by the backend, so the user's action is captured even if delivery is delayed. The UI distinguishes 'sending' from 'delivered' rather than optimistically claiming success.

Location updates against battery life

Continuous high-accuracy GPS drains a battery quickly, and a dead phone during an emergency is a serious failure. Standard background location settings were too aggressive to run continuously.

The app runs low-frequency location updates in normal operation and escalates to high-accuracy continuous tracking only once an alert is active. Battery is conserved during the ninety-nine percent of time nothing is happening, and accuracy is maximised for the period that matters.

Outcome

SAVIOR works as a cross-platform safety application with voice activation, resilient alert delivery and adaptive location tracking.

The lasting lesson from this project was how much the operating context should drive technical decisions. Nearly every meaningful choice — voice over touch, local queueing over direct send, adaptive over constant tracking — came from taking seriously the state a user is in when they need it, rather than the state a developer is in when testing it.

Published by Cenedy Udoy Palma.

Other case studies