PomodoroCat

GitHub

Introduction

PomodoroCat title slide: an iOS app that keeps a virtual cat happy with toys earned from focusing, 2nd place out of 36 submissions at VTHacks 8

PomodoroCat is a tool that allows users to customize their work sessions by choosing the length of their short work sessions, breaks, and the number of working cycles before a long break.

Users earn cat coins based on the time they spend working, which can be used to buy decorations for their cat. Cat coins can also be boosted for a limited time, and the more decorations purchased for the cat, the higher the cat’s happiness index, with a maximum threshold of 100.

This positive reinforcement can help reduce the pressure of completing difficult tasks.

Demo Video

The Pomodoro Technique

The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s that uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. Each interval is known as a pomodoro, which is Italian for “tomato”.

Diagram of the Pomodoro Technique cycle showing work, short break, repeat, then a long break, beside a tomato-shaped kitchen timer

Inspiration

Working remotely can be challenging, especially amidst a worldwide pandemic that knocks everyone off balance. Identifying a way to avoid an overwhelming schedule while coping with pressure from either work or school is crucial to our mental health as well as physical health. After analyzing the current applications that target productivity, we decided to integrate a fun game that allows users to keep their own cats while keeping track of their time using the Pomodoro Technique.

PomodoroCat timer counting down 7 minutes of work, next to the work-and-break cycle diagram

PomodoroCat timer showing a 1 minute short break, next to the work-and-break cycle diagram

PomodoroCat timer showing a 13 minute long break, next to the work-and-break cycle diagram

PomodoroCat setup screen for choosing how many work sections to complete

Features

  • Set timer with user-defined durations
  • Interchange between the timer and the cat’s habitat
  • Tap on the shop button, purchase items, and speed up the timer
  • Shop for the cat to add items to the habitat

Three PomodoroCat screens: focusing to earn Catcoin, then spending Catcoin on toys in the cat shop

Three PomodoroCat screens showing an unhappy cat, a toy purchase, and the cat's happiness rising to 20 out of 100

How we built it

Our front-end developers utilized SwiftUI 2, Combine, and AVFoundation to create PomodoroCat’s timer feature. The UI was designed with two TabViews as subviews of a single NavigationView, making it easy to switch between the timer and cat game screens without duplicating NavigationView code.

SwiftUI 2’s newest @AppStorage property wrapper ensured a single set of data was shared and synced across the app. View models were created for each subview to take advantage of SwiftUI’s MVVM design, enabling future scalability.

To generate potential revenue, we implemented booster features that allow users to speed up their cat coin collection and unlock more cat decorations.

Four PomodoroCat screens: the work timer, the cat habitat, the settings page, and the team credits

Accomplishments that we’re proud of

We take great pride in our unique graphic designs, which we believe will captivate our future users. Our team has created original designs that are incorporated seamlessly into our clean and intuitive user interface. We have implemented positive reinforcement cycles throughout the app to encourage users to stay on task and meet their goals. The color themes of our user interface have been carefully selected to ensure a visually pleasing experience for all users.

Technologies

  • Programming Language: Swift
  • Libraries: SwiftUI, AVFoundation

Contributors

  • Shengyuan Lu
  • Jessie Yao
  • Susie Su
  • Max Liu