Flutter · Agora · Firebase · Laravel
Flutter Mobile App Case Study

The goal
GymTaar was conceived to bridge the gap between gym trainers and members, especially addressing the need for remote coaching and workout tracking. The client wanted a platform where members could book personal trainers, follow customized workout plans, and crucially, conduct 1-on-1 live video training sessions directly within the app.
The application needed to be cross-platform (iOS and Android) to maximize reach, highly responsive to handle video streams and real-time chat, and robust enough to manage subscriptions and scheduling.
How it was built
Flutter (Frontend): Chosen for its ability to deliver native-like performance on both iOS and Android from a single codebase. I implemented the BLoC (Business Logic Component) pattern to strictly separate the UI from the complex state management required for video calls, chat streams, and user sessions.
Agora RTC: Integrated for the core real-time video calling feature. Agora provides a highly reliable, low-latency SDK that performs exceptionally well even on fluctuating network connections, which is common in the target market.
Firebase & Laravel: Firebase Firestore was utilized for the real-time chat functionality and Cloud Messaging (FCM) for push notifications. A Laravel REST API handled the core relational data: user profiles, gym memberships, trainer schedules, and payment processing.
Technical hurdles
Managing the state of a video call (connecting, ringing, active, disconnected, muted, camera swapped) across different screens and background states in Flutter is notoriously complex and prone to memory leaks.
Created a dedicated `CallBloc` globally accessible via `BlocProvider`. This central nervous system listened to Agora engine callbacks and emitted strict states. It ensured the Agora engine was properly initialized before joining a channel and strictly disposed of when the call ended, eliminating memory leaks and zombie calls.
Users need to be notified of an incoming call even when the app is terminated or in the background, simulating a native phone call experience on both iOS and Android.
Integrated Firebase Cloud Messaging (FCM) combined with platform-specific packages (`flutter_callkit_incoming` for iOS CallKit and Android Telecom framework integration). This allowed the app to wake up and display a native-looking incoming call UI, vastly improving answer rates.
Results
GymTaar was successfully launched on both the Apple App Store and Google Play Store. It rapidly gained traction among local gyms, providing trainers with a new revenue stream through online sessions and members with unparalleled flexibility.
500+
Active Users
<200ms
Video Latency
4.8★
App Store Rating