An open API service indexing awesome lists of open source software.

https://github.com/flngsquirrl/spractice

Personal practice app | iOS
https://github.com/flngsquirrl/spractice

ios16 swift5-7 swiftui

Last synced: about 2 months ago
JSON representation

Personal practice app | iOS

Awesome Lists containing this project

README

          

programs_dark

# SPractice

## Intro

How do you practice? Do you prefer workout or yoga?
Well, good news is you can combine or alternate.
And use your time wisely.

This is an application for you personal practice.

### Exercises

There are 3 types of exercises, that define how you practice.

- flow
You decide when you finish and notify the app by pressing a button.
Good, when you go at your own pace (Sun Salutations) or count (how about 50 squats, uh?).

- timer
You set the time and practice with the count down.
2 minutes of Cat-Cow or Jump Rope.

- tabata
It is a famous HIIT technique, repeated intervals of activity and rest.
Works good with all sorts of Planks.

### Programs

Programs are built out of exercises.

You probably have a favourite sequence or a few.
But even if you don’t, try different combinations to find something that feels right.

### Examples

Some examples are provided by default.
You can modify or delete them at any time.
And restore from [Settings](#settings), if you change your mind later.

But feel free to create your own exercises and programs.

See screenshots


programs_dark
exercises_dark

programs_light
exercises_light

### Create an exercise

Give the exercise a name and, optionally, a description.
You can stop here, if this is what you want to use as a template.
Or continue by settings its type, duration and intensity.

See screenshots


exercise_flow_dark
exercise_timer_dark
exercise_tabata_dark

exercise_flow_light
exercise_timer_light
exercise_tabata_light

### Create a program

Start by giving the program a name and, if needed, a description.
Then build a sequence selecting exercises from templates or creating new.

Take a look at the program's duration.
This is how long the practice will last.

See screenshots


program_create_dark
program_select_dark
program_select_2_dark
program_personal_dark

program_create_light
program_select_light
program_select_2_light
program_personal_light

### Configure a practice

There are some helpful configs to improve your practice.

First, you can **add rest intervals** between the exercises.
Use them to prepare for the next exercise or take a sip of water.

Second, you can **pause after every exercise**.
It means, when an exercise is over, you should press "Run" to start the next.
This gives you more control, but requires more interaction.

Third, you can **turn the sound notifications on and off**.
When on, the sound signal will let you know when the exercise or its task is about to finish.

Ready? Then lets practice!

See screenshots


program_details_dark
practice_settings_dark

program_details_light
practice_settings_light

### Practice

You can pause, restart an exercise or the whole practice at any moment.
You can also turn the sound on and off, view exercise details or practice summary.

Press "Run" and start practicing)

See screenshots


practice_dark
practice_2_dark
practice_3_dark
ex_info_dark
practice_summary_dark

practice_light
practice_2_light
practice_3_light
ex_info_light
practice_summary_light

### Settings

In Settings you can:
- set intervals for tabata exercises;
- set name and duration for rest intervals;
- configure auto-finish for flow exercises;
- manage modified examples.

See screenshots


settings_dark
about_dark
tabata_dark
rest_dark
flow_dark
examples_dark

settings_light
about_light
tabata_light
rest_light
flow_light
examples_light

## Demos

### Onboarding

https://user-images.githubusercontent.com/95634326/190871112-ebf494da-b7f5-4de4-8bb4-0772a64deffe.mp4

### Launch

https://user-images.githubusercontent.com/95634326/190870383-7f771f50-3ff1-4e14-8543-6db7ed6cc08c.mp4

### Run practice

https://user-images.githubusercontent.com/95634326/190870208-7bdeae32-3d40-49fe-8295-bcb6129d6bbb.mp4

### Add rest intervals

https://user-images.githubusercontent.com/95634326/190870575-1c660d23-0ced-4206-aa05-73b0781009de.mp4

### Edit program

https://user-images.githubusercontent.com/95634326/190869809-976a9964-615e-4cef-9192-96a6d0edf61b.mp4

### View info

https://user-images.githubusercontent.com/95634326/190869964-9fc43b22-51d1-4572-842f-fef08e7969b1.mp4

### Reset modified example

https://user-images.githubusercontent.com/95634326/190869969-7f9777dd-b92e-4690-892c-449bb133542f.mp4

## Additional screenshots

### iPad layout

Screenshots


ipad_programs_dark
ipad_exercises_dark
ipad_settings_dark
ipad_practice_dark

ipad_programs_light
ipad_exercises_light
ipad_settings_light
ipad_practice_light

### Light vs Dark

Screenshots


programs_light
programs_dark


program_details_light
program_details_dark


practice_light
practice_dark

## Targets

iOS 16
iPhone, iPad

## Implementation details

Implemented with Swift and SwiftUI.
Exercise and program templates are stored as JSON files in the app directory on the device.
The application doesn't need access to any of the user's private information.

## Build instructions

- clone the repo
```
git clone https://github.com/flngsquirrl/SPractice.git
```
- download Carthage dependencies
```
carthage bootstrap --use-xcframeworks --platform iOS
```
- build the project in Xcode