Code Monkey home page Code Monkey logo

hourglass's Introduction

Hourglass ⏳

Codemagic build status Static Badge Static Badge Static Badge

Hourglass is a menu-bar Pomodoro tool with custom controls to select your focus and rest time-blocks.

  • No distractions, no pausing, no bloat. Commit to focus for the duration of the timer.
  • Customize your timer presets. A break is suggested, and then forced, after a set amount of focus time.
  • View your completed time-block history in an interactive chart.

This is for folks who agree that traditional Pomodoro technique is too rigid. Need a bigger time-block for your task? Take it. Want a shorter rest period? Go ahead. You choose how to manage your time, and Hourglass will remind you to take a break before getting back to work.

hourglass's People

Contributors

isiahmanns avatar

Watchers

 avatar

hourglass's Issues

Notification Behavior

Decide on notifying user that timer is completed.
We want to give the user the option to choose another time block.
Play sound FX (always).

Notification options

  • Make the app display visible with a macOS alert dialog
  • Send a notification to the device, with option to open the toolbar (without alert dialog)
  • Customizable options with user defaults

Deployment version

Update codemagic script and xcode deployment version

  • xcode version 14.3.1 (codemagic latest)
  • sdk macosx13.3

Timer state behavior

  • Create model
  • States
    • Active
    • Inactive
  • Paths
    • Tap to start
    • Tap again to cancel (prompt)
    • Tap another timer to prompt to cancel current timer and start new timer

Analytics and event tracking

Fix getAnnotationPlacement bug

  • Logic should check for first 5 days of the total day span of the data set, not of the dates of the data set.
  • Replicate: data set that consists of 3 days, spread out across a large day span, with a time chunk at top of chart (annotation would appear above chunk, causing chart to jump)

Statistics time tracking

  • Persist hours and minutes for all focus and break spans per day
  • Show results with Swift Charts
  • Weekly and monthly views

Launch

  • Product page (very simple)
    • About
    • Help, how to use
    • Get Started call to action, link to App Store
  • Portfolio page
  • Product Hunt submission
  • Maybe a twitter

Create UI components

Figma
Image

  • Timer button states
    • Ongoing
    • Default (not active)
  • Focus and Break section headers
  • Logo
  • Settings button

Settings menu - break suggestion, force break

  • Allow user to set time limit for break warning, and enforce break
  • Toggle ability to focus/rest
    • Can repeat focus timers until warning/force-break setting
    • TBD
      • Do we allow breaks to be taken at will (this , or disable rest until a focus block has been completed?
        • "Get back to work after rest" setting
      • This eliminates the "issue" of duplicate timer availability.
      • Break warning can be toggled on/off
      • Force break can be toggled on/off
  • State manager object that can mutate timer model states
  • Disabled state for timer buttons

Snapshot tests for Charts

Try injecting data set into StatisticsView for snapshot testing.
May need to use conditional compiling.

Create "Set Reminders" flow for settings menu

  • Instead of leaving rest warning and enforce rest settings as mutually exclusive, make a flow to set each setting one after the next, and filter setting values based on appropriate logic
  • Allow choice for rest warning value. then only show appropriate enforce rest values. e.g. enforce rest value can be either off, or > rest warning value
  • If rest warning value is off, then expose all possible options for enforce rest

Settings menu - sound FX

  • Toggle enable/disable

Experiment:

  • Looping sound FX during break (soothing)
  • Looping sound FX after focus (alarm)

Troubleshoot alert + popover conflict

  • When an alert shows up via popover notif, it takes two menu toggles to dismiss the app back into the menu bar after relieving the alert
  • The popover is not "showing" until a manual call to show is made. Since the alert forces the app to show up anyway, we see the UI even though the popover hasn't registered a call to show yet.

Experiment with popover layout

There seems to be a bug with how NSPopover is laying out the SwiftUI Stack.

Depending on the padding, the background color bleeds into the popover (3136a50), but if we use fixedSize(), the normal behavior of placing a view controller in the NSPopover occurs, where the content view is using the frame of the NSPopover minus the arrow.

  • Figure out a way to properly get the NSPopover frame including the arrow to consume the content view controller
  • Experiment with creating a custom window to do the job

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.