Skip to content
This repository was archived by the owner on Mar 7, 2023. It is now read-only.

heeyunlee/break

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[Archived]

This repository is archived. I started this repo when I was first learning mobile/flutter dev, and I've learned a lot since then. And well, there are way too many things to fix but a limited time.





Break

Break: Break Your Fitness Goals

Break is a health & fitness tracking app built with Dart (Flutter) and Firebase. From logging nutritions to working out with YouTube videos, I have been learning and adding many cool features over the months, and here are some quick snippets.


Table of contents



Screenshots

Android

Sign In & Preview Screen Routine Detail Screen Workout Miniplayer Speed Dial
sign in screen transition 1

iOS

Sign In & Preview Screen Routine Detail Screen Workout Miniplayer Speed Dial


Introduction

Why?

There are countless fitness apps available, yet I was never satisfied with just one app, and I always had to use multiple apps to log and track my physical activtivies—weightlifting and running—and nutrition consumption at the same time. For example, Yazio was very good for tracking nutritions consumptions, but tracking physical activities was never good there. Strong app was very good for tracking weight lifting exercises, but they didn't have the feautes to add nutritions consumptions. To achieve health & fitness goals such as dieting, both exercising AND eating are equally important, but no apps offered exceptionally good product for both.

That's why I started this project. The goal of this project is to create a all-in-one place for users to log and track their health & fitness. Users can log and track their body measurements, nutritions consumed, and workout data, and these data are transformed into customizable and easy-to-look dashboard, all in one app.

This project is a work-in-process. I am keeping learning and developing new features. Below is the breif roadmap:

Roadmap

Nutritions

  • Manaully add nutritions data
  • Add nutritions by scanning bar code
  • Automatically log nutritions data using credit card transactions data

Body Measurement

  • Manually add body measurements data
  • Automatically sync measurements data with Apple HealthKit and/or Google Fit

Exercise

  • Log weight lifting exercise data manually
  • Log other cardio workouts
  • Workout with YouTube Video


Architecture

For this application, I've (sorted of) implemented the MVVM architecture pattern to increase maintainability and testability.

Directory Structure

lib
│───models 
│   │───workout.dart
│   │───user.dart
│   │───routine.dart
│   │───nutrition.dart
│   │───measurement.dart
│   └───...
│───services
│   │───auth.dart
│   │───database.dart
│   │───firestore_service.dart
│   └───...
│───styles 
│   │───button_styles.dart
│   │───constants.dart
│   │───text_styles.dart
│   └───theme_colors.dart
│───utils
│   │───dummy_data.dart
│   └───formatter.dart
│───view
│   │───screens
│   │   │───animations
│   │   │───add_nutrition_screen.dart
│   │   │───add_workout_to_routine_screen.dart
│   │   │───...
│   │   │───library_tab.dart
│   │   │───preview_screen.dart
│   │   │───explore_tab.dart
│   │   └───...
│   └───widgets
│       │───...
│       │───builders
│       │   │───animated_list_view_builder.dart
│       │   │───custom_future_builder.dart
│       │   │───custom_list_view_builder.dart
│       │   └───custom_stream_builder.dart
│       │───buttons
│       │   │───appbar_back_button.dart
│       │   │───appbar_close_button.dart
│       │   │───keyboard_actions_done_button.dart
│       └───...
│───view_models
│   │───add_measurements_screen_model.dart
│   │───add_nutrition_screen_model.dart
│   │───add_workout_to_routine_screen_model.dart
│   └───...
└───main.dart   


Features

Workout Playlist



Libraries

I have used the following libraries to build this app:

About

Workout Player that records users' workout, nutrition consumption, and body measurement records.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages