# User Interface ## Tabs Each tab is a root of its own navigation stack. - Workout Log - Reports - Settings ## Workout Log - toolbar - left bar button: none - title: Workout Log - right bar button: Add Workout - main view: - List of WorkoutLog objects - Grouped by date, in descending order - Group header shows date and split name - Each row shows: - Time - Exercise - Sets - Reps - Weight - When main view list has no entries, show a placeholder view with text "No workouts yet." and a button "Start Split" ### Start Split View Start Split View slides on top of Workout Log View navigation stack. - left bar button: default (back to Workout Log) - title: Start Split - right bar button: none - main view: - list of available splits - button "Start [SplitName] Split" -> Workout Split ### Workout Split View Workout Split View slides on top of Workout Log View navigation stack. - left bar button: default (back to Start Split) - title: [SplitName] Split - right bar button: Add Exercise - main view: - list of exercises in the split - actions: - on row slide to left - button "Edit" - on row slide to right - button "Completed" - on row tap - open Exercise View ### Exercise View Exercise View slides on top of Workout Split View navigation stack. - left bar button: default (back to Workout Split) - title: [ExerciseName] - right bar button: Edit (pencil icon) - action: open Add/Edit Exercise Assignment View - main view: - form sections: - split - split name - exercise assignment (titled "Planned") - exercise - name - setup - description - muscles - weight - sets (read only) - reps (read only) - weight (read only) - workout log (titled "Actual") - date (date/time picker) - sets (integer picker) - reps (integer picker) - weight (integer picker) - status - Completed (checkbox) - actions: - swipe left - open Exercise View for the previous ExerciseAssignment - swipe right - open Exercise View for the next ExerciseAssignment ### Add/Edit Exercise to Split View This view should be opened as a sheet. - left bar button: default (back to Workout Split) - title: Add/Edit Exercise to Split - right bar button: Save - main view: - before an exercise is selected - list of available exercises - button "Add [ExerciseName]" - after an exercise is selected - a form for model SplitExerciseAssignment - sets - reps - weight ## Settings - left bar button: none - title: Settings - right bar button: none - main view: - list - Splits - Exercises - Muscle Groups - Muscles - Exercise Types - actions: - on row tap - open corresponding list view (e.g. for "Splits" open "Splits List View") ### (Splits|Exercises|Muscle Groups|Muscles|Exercise Types) List View - left bar button: default (back to Settings) - title: [ListName] - right bar button: Add (plus icon) - action: open corresponding add/edit view (e.g. for "Splits" open "Splits Add/Edit View") - main view: - list of [ListName] - actions: - on row tap - open corresponding add/edit view (e.g. for "Splits" open "Splits Add/Edit View") ### (Splits|Exercises|Muscle Groups|Muscles|Exercise Types) Add/Edit View Add/Edit views typically open as sheets. - left bar button: default (back to Settings) - title: [Add/Edit] [ListName] - right bar button: Save - main view: - form with editable fields