A simple SwiftUI app that shows a client's workout performance over time.
- Shows a single client their progress over time for each exercise.
- Data must be glanceable, could be in table format but must have an additional format to quickly indicate to the client what their progress is.
- List of exercises.
- Progress will be derived from comparing ExerciseSetSummaries for an Exercise over time, instead of comparing it to the Exercise Set.
- Use the WorkoutsController to load in the WorkoutSummaries.
- I updated the data so that it was more recent since in a real world situation most exercise data would be within the past year.
Here are some screenshots showcasing the app's features:
- Used MVVM architecture for better separation of code and easier testing.
- Used Core Data to save all of the model-related data and goals, rather than having to fetch and iterate through the raw JSON each time and rely on AppStorage for saving goals.
- Added unit and UI tests.
- Refactored the code so there isn’t duplicate functionality throughout the chart code.
- Fixed the runtime Swift Charts warning.
- Fixed some minor UI bugs (for example: the GoalGaugeSection not stretching across the screen properly in landscape mode and values on charts being slightly to the left).
- Added a description for each exercise on the ExerciseDetails screen since some of the lesser known exercises aren't as obvious as to what they are.
- Added better preview data code, perhaps using more realistic data similar to the json data provided.