Flutter Β· Agora Β· Firebase Β· Laravel

GymTaarβ€”FitnessPlatform

Flutter Mobile App Case Study

Built
2023
Timeline
9 weeks, brief to store submission
Role
Sole developer
Stack
Flutter Β· Agora Β· Firebase Β· Laravel
Status
Live on the App Store and Play Store
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

In their words

What the Client Said.

β€œNimesh developed our GymTaar mobile application with exceptional professionalism and technical expertise. He understood our business requirements quickly, implemented every feature efficiently, and delivered a smooth, user-friendly experience for both trainers and members. His communication, problem-solving ability, and commitment to quality made the entire development process seamless.”
Rajin AcharyaFounder, GymTaar Β· Nepal

Read what every client said β†’

Next steps

Want Something Like This.

The service behind it

A Flutter app on both stores, with real-time chat and video built in β€” this is what the Flutter service page describes, delivered end to end by one developer.

Flutter app development→

How the work runs

Written scope and a fixed quote before anything starts, a running demo every two weeks, and three to five hours of daily overlap with the UK, Europe, the US and Australia.

Who built it

Every project on this site was built by one person, working directly with the client β€” no account manager in between, and no team you never meet.

Chat on WhatsApp