Hobby project: HIIT buddy (mobile app)

Introduction

HIIT stands for High Intensity Interval Training. This a well known type of training where you do a streak of exercises with a brief moment of rest in between.

HIIT buddy helps as an audio guide to execute such a training. It’s not a unique app at all, there are loads of apps in the App store. But I always wanted to publish a mobile app in the App store and my girlfriend Fleur started doing HIIT workouts using her phones stopwatch. So if I could build an app for this I would have her as my first user.

HIIT logo

Functional

No user registration

For now the app doesn’t have user login, so the created workouts are bound to the device the app runs on. A benefit is that theres no need to register before using the app. Downside is that app content is also bound to that particular phone, a new phone will mean loss of workouts that were made. To fix that, I’m planning to add a user login part.

Prepare workout

The app allows to create multiple workouts. Each workout can have multiple exercises which can vary in duration. A workout can have multiple rounds, which will repeat all exercises with x seconds rest in between.

Workout execution

Once the workout is fully prepared, it can be executed. The audio guide will give instructions about what exercise to do and show an on screen counter with the total workout time and time until the next exercise.

Technical

The app itself is built with Flutter, which makes it easy to develop for both Android and iOS phones. Persisting workout and exercise data is done through a REST API built in PHP and the Symfony framework. The audio guide utilises the Text-to-Speech client of Google for creating the voice commands.

Roadmap

  • User registration
  • Sharing workouts
  • Workout catalog with predefined workouts
  • Exercise instructions
  • Executed workout history

Download the app

Cover art

HIIT buddy
View in Play store | View in App store (not available yet)

Leave a Reply

Your email address will not be published. Required fields are marked *