Skip to content

About

A basic pomodoro timer for macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PomodoroMenu

This is a pomodoro timer macOS app.

Process

The initial design of this app focuses on updating the UI between Timer Calls (synchronously). As-observed during runtime, this can create up to a 30 second delay over a 15 minute timer to update the UI during each session (you'll see the additional time in the Banner Notification at the end). This should be handled by using an event-based system that can dispatch a new thread to update the UI when a new event is fired every second. Below is a mermaid diagram to help assist with this explanation.

Before

sequenceDiagram
  participant cl as Clock
  participant ui as UserInterface
  loop Every 1 Second
    cl->>ui: New Event fired
    ui->>cl: Returns from updating the User Interface
    cl->>cl: Next second occurs
  end
Loading

After

sequenceDiagram
  participant cl as Clock
  participant eh as EventHandler
  participant ui as UserInterface
  loop Every 1 Second
    cl->>eh: New Event fired
    eh->>ui: [thread2] Updates the UI
    cl->>cl: Next second occurs
  end
Loading

Tasks

  • Build initial timer
  • Add Start/Stop Buttons
  • Disable user activity after timer start
  • Add local app notifications (request access to Sounds and Banner notifications)
  • Convert app to AppKit from SwiftUI (In progress)
  • Convert app to Objective-C from Swift (Soon ™️)

Contributions

  • Any contributions should be owned by the author
  • Any contributions made should not be built using Generative AI, or other AI platforms or systems (Copilot will promptly be denied all submissions to this repo)
  • Duplicate Issues and PRs will be closed, referencing the original Issue or PR that it links back to
  • Please feel free to fork and modify this repo to make it your own - this app is released under a GPLv2.0 License at this time

GPLv2 License Personal Intents and Interpretation

Please note that at this time, the main focus is to allow users to use this app for personal productivity use cases. This app does not have any intention of being released at-cost to any user for any reason at this time. This license allows others to fork, modify, redistribute, and commercialize future editions of this app as long as the app (and all future modifications) remain source-available to all users and non-users of the product.

About

A basic pomodoro timer for macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages