LiftApp – Storage Classes

There is something very relaxing about creating storage classes when you think thru all you want to do and wrap it around in objects.

For the LiftApp I will need to store quite a lot of things:

  • A pre-set list of exercises containing:
    • Photo of the exercise (Maybe? If I can find something for free)
    • Name
    • Description
  • A workout containing
    • Day and Time of the Workout
    • Location
    • Workout Type – Feeding from a different table with a couple of pre-set types such as Arms, Chest or Running with the ability for the user to add new ones
    • % of Goal completed
    • A list of Exercises each exercise containing:
      • Reference to the Name and Description from the Pre-Set list
      • List of Sets which should be abstract or an Interface because I will need to implement it in two variants:
        • Counting reps
        • Counting time of the exercise
          So, for example, you will have a Wall sit for which you want to count for example 30 secs of staying it that position, or you will have Chin-Ups where you will count reps.
        • Each rep has a Weight attached to it, each time will have a time

So this is the basic design, time get coding I will attach the models folder link on GitHub once I am done :).

Edit:

I did some remodeling mainly to simplify the model classes not get buried in my own complexity while implementing so the complete Graph for now is:

ClassDiagram

So the abstract List of sets has now been converted into a solid SetPart that has a count and a unit to it. Realized that to the app itself it really does not matter whether I count reps or seconds that have passed I can do that in the ViewModel :), should simply the SQLite implementation, and make this all overall more readable.

P.S. Just found out I cannot use Entity Framework with iOS :(, oh well the one supplemented with Xamarin is very similar and I should not have too much trouble implementing.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s