TakoonBede — Android emergency SOS app
TakoonBede is a personal-safety app for Android: the user shakes the phone or holds the SOS button, and the app texts their location to trusted contacts from their own SIM, then keeps sending location updates until they stop it. I built it for the same client as SandooghYar, from September to October 2026.
Every safety feature runs on the device with no internet: shake detection, the cancellation countdown, location, SMS sending, repeated updates and Stop. An Android foreground service owns the emergency session and depends on no screen, ViewModel or network, so an internet shutdown or a server outage cannot stop an SOS.
The safety-critical logic — the emergency state machine, message templates with SMS segment counting, and the shake classifier — lives in pure Kotlin modules. A Gradle check forbids Android imports there, so they are unit-tested on the JVM without an emulator. "Sent" never means "delivered": every recipient and every SMS part is tracked separately, and the home screen only says "ready" when SMS permission, an enabled contact, a selected SIM and a valid message are all in place.
Emergency contacts never leave the device and are encrypted with Room and an Android Keystore key. Users pick the sending SIM on dual-SIM phones, tune shake sensitivity and the cancel window, and run a "safe test" that checks readiness without sending a real SMS. The Jetpack Compose UI is Persian and right-to-left throughout.
A Django/DRF backend on PostgreSQL and Redis handles only one-time-code login, referrals and support, and is never in the emergency path.
Key features
- SOS by shaking the phone or holding the help button
- Emergency SMS from the user's own SIM with a location link
- Repeated location updates until stopped
- Fully offline; the server is never in the emergency path
- Contacts stay on the device, encrypted with Android Keystore
- SIM selection on dual-SIM phones
- Adjustable shake sensitivity and cancel window
- "Safe test" that checks readiness without sending a real SMS
- Emergency and shake logic in pure Kotlin modules with unit tests
- Persian RTL interface built with Jetpack Compose
Technologies
My role
End-to-end design and development of the Android app and backend
Release on Cafe Bazaar is in progress. The source code is private. The app does not replace the police or emergency services, and SMS delivery depends on the mobile network.
Screenshots