Mastery is a goal tracking app. The application allows the user to create goals and tasks for those goals. When the user wishes to commit time to intentional focus on a task, they choose an amount of time to focus on the task, then begin a session of directed focus.
My responsibilities in the project included completion of the "Today's Tasks" and focused session side of the app. I also designed the icon picker view as well as providing the code and animations for the task icon Xibs.
We needed the icons of each task to represent the goal they belonged to (consistent color scheme) and have their design easily reflect to the user the completion of the task as well as the purpose of the task itself. This lead us to a task icon and "task ring" design. The icon and ring widget was designed to be color coded to the tasks corresponding goal color. Below is the icon selection view and animation:
Below are the various animations of the icon and "task ring" widget:
Below is the landing screen of the "Today's Tasks" side of the app. This is where the user can see tasks they have created which are available to complete today. When a user creates a task they decide which days of the week they are available to work on it, this is reflected in this view.
Tasks can be sorted by priority and by deadline. Priority is represented by the fractional fill of the task ring out of 10. Deadline is represented by a task ring whose arc is masked depending on time remaining to the task deadline:
In the below image there is a task "fence" where the user has chosen a 25 minute focus time:
In the below image the user has completed their task "weightlifting" and has moved on to their mandatory 5 minute break. If the user sends the app to the background or locks their phone, the app will send a notification when the break is over:
A user can start a session for a task:
When the task ends the user begins a mandatory break:
The user can then finish the session:
Then add a note and save the recorded session:
- Swift
- Core Data
- Core Animation
- Local Notifications
- User Defaults