Simman supports live medical simulation sessions, where an instructor controls a scenario and students respond in real time. The app streams audio and keeps every participant's screen in sync.
I built the real-time audio streaming flows and used Firebase Realtime Database for instructor-to-student updates. I picked Realtime Database over Firestore because these updates are small, frequent, and latency-sensitive. GetX handled dependency injection and reactive state across the simulation screens.
The challenge was keeping the UI responsive while audio and live data changed constantly. I structured the listeners so only the widgets that needed new data rebuilt, which kept sessions smooth.
Stack
Flutter, Firebase Realtime Database, real-time audio streaming, GetX


