FisherFitnessPal

FisherFitnessPal

FisherFitnessPal is my very own fitness app, originally developed for my college coursework it is my first fully fledged mobile application that encompasses a variety of fitness and dietary tracking functionalities It was built in around 3 months using Xamarin Forms and has been extensively documented as required for my coursework.

Development Log

As explainined in the documentation, FisherFitnessPal is an all-round fitness tracker that aims to combine functionality from the most popular existing solutions. Users can track the foods they eat, analyse their macro/micronutrient intakes, monitor weight over time and are suggested caloric manipulations based on their current weight trend to meet their fitness goals, as well as tracking their workouts and strength over time to ensure progress is made and the user is able to meet their fitness goals.

I achieved this by splitting the development of FisherFitnessPal into those three different functionalities, implementing them fully before moving onto the next, this helped break down the problem as I learn't and could re-use design solutions from earlier sections of the application which sped the development significantly.

Calorie Tracking

diarycalorie tracking

In order to meet any sort of fitness goal, whether it be lose weight or gain muscle, one of the most important factors is diet and more specifically the macronutrients that make up that diet, and the total calories that they make up.

FisherFitnessPal aimed to beat existing solutions such as MyFitnessPal by providing vast macro and micronutrient data for foods, which is powered using the Edamam food and nutrient database API. This required extensive implementation to allow users to track foods efficiently, allowing users to search for food items by directly querying this api as well as scanning the barcodes of the foods they consume. Edamam is also powerful in that each food added likely has a unique quantity identifier that allows portions to be easily assigned without guessing the weight they've consumed. An example of this would be a pizza having a "quantity" for a slice of pizza.

Weight Tracking

weight tracking monthly

FisherFitnessPal is also capable of tracking your weight over time, comparing it to your defined 'fitness goal' (i.e. lose 1kg a week) and tracks your progress compared to that goal and suggests a caloric manipulation from your trend in order to better meet that goal.

Workout/Strength Tracking

workout tracking

FisherFitnessPal also supports workout tracking. Users are able to define new exercises or choose from a database of exercises, they can specify the amount of sets/weight/reps for each exercise which will calculate an 'Arbitrary strength value' that can also be tracked over time which would be useful for strength athletes aiming to achieve progressive overload.

exercise

Learning

During the production of FisherFitnessPal I learnt a lot about mobile development, how to efficiently debug mobile applications, how to persist data locally and integrate APIs to my applications. This venture also improved my knowledge of C# by taking advantage of the languages asynchronous capabilities on certain functions such as API calls to make the application feel smoother.

© 2022 Made by Jack Fisher