Back to Portfolio

Health Mentor - App Built for Trainers and Coaches

#
Digital Health
#
Mobile App

About the Project

A cross-platform coaching app for fitness and lifestyle professionals.

Built with Flutter, Health Mentor supports goal setting, progress tracking, and data-driven insights through integrations with HealthKit and Google Fit.

We developed a custom health plugin, implemented seamless historical data sync for billing, and customised Twilio’s Flutter package to support in-app messaging with push notifications. A dynamic time zone system ensures smooth functionality worldwide.

Technology Stack

  • Flutter
  • Redux
  • GraphQL
  • Twilio
  • Firebase
  • Google Fit
  • HealthKit

Initial Request from the Client

We were asked to create a proof of concept (PoC) for the app using the Health Flutter plugin to validate users’ data transfer on iOS (through HealthKit) and Android (through Google Fit APIs).


The idea was that users will allow data exchange between nutrition apps like MyFitness Pal and Health Mentor via Health and Google Fit.


Then, Health Mentor would have data entries from the apps people are already using and, utilising a modified Flutter plugin, would be able to break these data to include additional information about people’s nutrition.

As a result, users would be able to:

  • See detailed data visualisation for daily nutrient consumption (segments for protein, fat, carbohydrates, calories, etc)
  • Add entries on nutrients by themselves within Health Mentor
  • Refresh the app and synchronise Health Mentor with other nutrition apps and pull the new data from them.

That is exactly what we did. The process was interesting and challenging — so let’s talk about the issues we’ve encountered and the ways we’ve solved them.

What We Did: Challenges and Solutions

During our work on the project, we:

  • Developed an iOS/Android app via Flutter using Redux for architecture.
  • Implemented GraphQL API Backend for data transfer control.
  • Created a messenger using Twilio.
  • Integrated Push Notifications using Twilio & Firebase.
  • Set Health Data fetch via our plugin.
  • Performed Background Sync using WorkManager.
  • Used internal.io to build the admin panel.

Now, let’s move to challenges.

Challenge #1: Integrating Health Plugins in Flutter

Gathering health data from Apple Health and Google Fit in a single Flutter repository was challenging. These platforms manage data in their own ways. This makes synchronisation tricky, especially for background data fetching on iOS.

Our Solution:

Our team customised an open-source Flutter health plugin, enhancing it to:

  • Pull only the relevant health data to prevent unnecessary data mix-ups.
  • Maintain precise data formatting between iOS and Android.
  • Ensure the background sync remains reliable, even when the iOS device is locked.

We made a flexible Flutter health plugin with the newest HealthKit and Google Fit SDKs.

Challenge #2: Building a Flexible Billing System

Health Mentor needed a billing system that could handle complex scenarios, including:

  • Daily or per-client billing models
  • Subscription changes mid-billing cycle
  • Retaining old pricing for existing users
  • Managing free-tier functionality with dynamic access

Our Solution:

We implemented a historical data sync system, ensuring the app continuously updates its billing records while maintaining pricing consistency. This robust solution prevented errors and allowed users to make smooth billing transitions.

Challenge #3: Using Twilio Conversations with Flutter

Coaches and clients needed a reliable chat feature. But Twilio stopped its Programmable Chat API while we were building the app. Twilio Conversations' replacement was still in beta and did not support Flutter.

Our Solution:

We modified Twilio's existing Flutter package to be compatible with Twilio Conversations SDK. After months of debugging and fine-tuning, we finally integrated push notifications. Our hard work paid off! We became one of the first Flutter teams globally to integrate Twilio Conversations successfully.

Challenge #4: Managing Time Zones Accurately

Coaches and clients often operate across different time zones, making it crucial that:

  • Scheduled tasks align with client time zones
  • Progress tracking remains accurate, even when travelling

Our Solution:

We set up a dynamic time zone system. It adjusts time-sensitive data without manual input. This ensures a smooth, hassle-free experience for users, no matter where they are.

Final Results - Flutter-Powered App

Health Mentor is now a fully functional mobile app. You can find it on both iOS and Android. It offers:

  • Private messaging between clients and coaches
  • Push notifications for motivation and habit tracking
  • Seamless login via Apple, Google and Facebook
  • Real-time synchronisation with fitness and nutrition apps
  • Custom coaching plans tailored to users' needs
  • Workout and goal tracking with visual progress charts
  • A content library full of expert health and fitness advice
  • Sleep monitoring for holistic wellness tracking

Users love Health Mentor, and the app makes a real difference.

If you want to develop a Flutter-based wellness or healthcare app, let's chat!

Challenge #3: Using Twilio Conversations with Flutter

Coaches and clients needed a reliable chat feature. But Twilio stopped its Programmable Chat API while we were building the app. Twilio Conversations' replacement was still in beta and did not support Flutter.

Our Solution:

We modified Twilio's existing Flutter package to be compatible with Twilio Conversations SDK. After months of debugging and fine-tuning, we finally integrated push notifications. Our hard work paid off! We became one of the first Flutter teams globally to integrate Twilio Conversations successfully.

Challenge #4: Managing Time Zones Accurately

Coaches and clients often operate across different time zones, making it crucial that:

  • Scheduled tasks align with client time zones
  • Progress tracking remains accurate, even when travelling

Our Solution:

We set up a dynamic time zone system. It adjusts time-sensitive data without manual input. This ensures a smooth, hassle-free experience for users, no matter where they are.

Have a project in mind? Let's talk

Out technical, design, sales & marketing teams will gladly share their expertise and help bringing your idea to life!

Book A Meeting
Have a project in mind? Let's talk

Out technical, design, sales & marketing teams will gladly share their expertise and help bringing your idea to life!

Book A Meeting
Have a project in mind? Let's talk

Out technical, design, sales & marketing teams will gladly share their expertise and help bringing your idea to life!

Book A Meeting