Flutter · Agora · Firebase · Laravel

GymTaar — Fitness Platform

Flutter Mobile App Case Study

GymTaar Flutter App UI

The goal

Project Context.

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

Architecture & Tech Stack.

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.

Tech Stack

  • Mobile FrameworkFlutter
  • State ManagementBLoC
  • Video CallingAgora RTC Engine
  • Real-time ChatFirebase Firestore
  • Backend APILaravel (PHP)
  • DeploymentApp Store & Play Store

Technical hurdles

Challenges & Solutions.

Challenge: Video Call State Management

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.

Solution

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.

Challenge: Background Call Notifications

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.

Solution

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

The Outcome.

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