Body Hack - Workout Routine Builder and Tracker

Body-hack-app-previews

Overview

Introducing: Body Hack. This app was inspired and developed by my brother and me. We were tired of using antiquated pen and paper, or online spreadsheets to track our workouts; we wanted something better. Body Hack started as a concept and eventually made it as a released app on the Apple and Google app stores!

Read about the app’s features on its very own promotional website

Tech Overview

The app was built with .NET for the mobile client and REST API, and the web app uses React.

Mobile App

The mobile client uses Xamarin Forms: a cross-platform library for writing apps in C#. We chose this library because we wanted a single code base for iOS and Android, and I had a lot of experience with developing previous applications with C# and .NET. Some notable libraries we used:

Xamarin Forms Shell

Provided a base navigation framework and page layout with flyout menu behind a hamburger menu and navigation tabs.

Syncfusion

A UI library for Xamarin that has tons of pre-built controls available. We only used a couple for the initial version of the app, but are seeing opportunities to use more.

Community blogs and content

The community around Xamarin Forms was very helpful, and there were many good resources when we got stuck or wanted to brainstorm ideas.

Web App

The web site is for personal trainers to assign workouts to their clients and track their progress. It is developed using React. We didn’t want to rely on the API to manage workouts, so it currently looks ‘bare bones.’ Down the road, we would like to add the functionality of personal trainers managing their clients.

API

The API is written using ASP.NET Core and exposes all of the HTTP endpoints, such as user accounts, workout routines, exercises and more, for the mobile and web applications. The API uses an object-relational mapper (ORM) called Entity Framework Core to represent a code-first data model. Data is stored in managed Azure SQL Server database, and the API is deployed as an Azure App Service

Continuous Integration and Deployment

Builds and deployments of the mobile, web, and API are triggered once a commit reaches a git branch, eliminating the need to manually deploy build artifacts. Azure DevOps was used to describe the build and deployment steps with a YAML file. Beta deployments are deployed to Visual Studio App Center and TestFlight for the iOS build. Deploying the applications to the Apple App Store and Google Play Store is still a manual process, but we hope to automate that soon.

Next steps

Just wanted to share the new app and a quick look at some of the tools we used to build it. Stay tuned for future posts where I’ll dive in to specifics of each component and what we learned along the way!