dobrovolskiy.com
RU
← all workmobile · 2026

Bro Locator

Compass-style live locator for cycling crews, with contacts exchanged over sound.

Bro Locator is an Android app (Jetpack Compose) plus a FastAPI backend for group rides: a foreground service streams fused GPS samples over a WebSocket, and a full-screen compass view shows...

Bro Locator

Bro Locator is an Android app (Jetpack Compose) plus a FastAPI backend for group rides: a foreground service streams fused GPS samples over a WebSocket, and a full-screen compass view shows each friend as a labeled arrow at the correct bearing and distance.

Friends are added phone-to-phone acoustically using the ggwave data-over-sound codec with a slotted-ALOHA collision-avoidance scheme so a whole group can swap IDs at once.

The backend keeps users, contacts, rides and positions in SQLite with in-memory pub/sub and is live behind Caddy; Play Store assets and a privacy policy are prepared.

What it does

  • Foreground location service (foregroundServiceType=location) pushing GPS samples over a WebSocket ride stream with REST fallback
  • Compass UI: sensor-fused azimuth, friends drawn as arrows around the screen perimeter sorted by bearing, distance labels
  • Acoustic contact exchange with real ggwave plus a wall-clock slotted-ALOHA layer with adaptive transmit probability for 5-20 phones
  • Ride lifecycle (start / end / members / history) persisted locally in Room and remotely
  • Backend REST + WebSocket API with in-memory pub/sub, admin page, privacy policy and demo video for store listing
  • One-command release pipeline (build -> private registry -> ssh compose pull) shared with the other apps

Real-time GPS streaming over WebSockets, custom compass rendering in Compose Canvas, and a novel acoustic multi-phone pairing protocol (slotted ALOHA over ggwave); signed release APK/AAB and store assets exist.

Gallery

Bro LocatorBro LocatorBro Locator

Want something like this?

I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.

$50 / hourBook an hour

More projects

RYTA: freight & machinery marketplaceOffline-first, over-the-air-updated freight/transport load board for Android, web and the MAX messengerUltimate App TemplateAndroid WebView shell with self-updating web bundles, rollback and behaviour analytics.Sober: day counterMinimal sober-days counter with a friends circle that shares streaks.