General
Pomodoro Sprints is a Pomodoro-style work management app for Garmin watches, with a number of additional features not usually found in Pomodoro applications.
The basics
The idea behind the app is to help the user break work down into consecutive work and break periods. In this sense there is also a resemblance to the sprint iteration cycles of Agile development – which is where the name of the Pomodoro Sprints app originates from.
Work periods or pomodoros (called “sprints” in this app) should be focused and continuous, without unnecessary breaks. They should be followed by breaks which should involve a break away from the work and doing some other activity.
The app displays a count down of sprint and break minutes, and the number of sprints done on the current day. The display is updated once every minute.
The count and display of sprint and break minutes is synchronized with the time display. Thus, when the user starts a project sprint, first there is a wait period until the beginning of the next full minute of the time display, at which point the count down of the sprint minutes starts.
Projects
Another idea is that the user might want to work on a number of different projects every day – for example computer programming for a few hours, then studying for another few hours and then working on a video for some time. The app allows to define a number of projects in the Settings on the phone, and to move freely from one project to another while the app is running.
Time line
The time line is the sequence of sprints and breaks in time.
The time line can be common to all projects. Thus, for example, if the user starts with Project 1, and during the third sprint switches over to Project 2, the sprint number remains the same. The only change is that now the sprint minutes are counted for Project 2 and not for Project 1.
The time line can also be project-specific: each project has its own time line. In the above example, when the user switches to Project 2, the sprint number will change to the current sprint number stored for Project 2. Also, sprint and break parameters (sprint, short and long break length and number of sprints before a long break) are specific for each project, if project-specific time line is chosen.
When using the common time line, switching to another project happens immediately – we simply continue with that other project. In contrast, switching to another project when using the project-specific time line first results in a synchronization with the app’s time display, and thus there is a waiting time until the beginning of the next full minute.
In both cases, we store the sprint minutes spent working on projects for each project separately, just as the number of steps (see below).
Steps
The app is best suited for work done while sitting – studying, clerical work, computer programming, reading, etc. Breaks then would involve standing up and doing something else, e.g. some physical activity. The app assumes that it’s a good idea to do some walking during the break. Correspondingly, the app records the number of steps taken during sprints and breaks, separately. Too many steps during sprints or too few steps during breaks says something about the quality of both the sprints and the breaks.
The user can choose to be warned if he has walked too much during a sprint or hasn’t walked enough during a break. The Settings have options for this. In addition, the user can temporarily stop or re-allow warnings via the sub menu item Stop step warnings and Allow step warnings, under the Warnings menu item in the Control menu.
Goals
The user can define goals for daily project work and for steps during the breaks for every project. This is done in the Settings.
Interruptions / pauses
A sprint sometimes needs to be interrupted because something happens which cannot be postponed. Also, the user might want to use the watch for some other purpose for a while, for example to check the weather, to read some notifications, etc.
The Pomodoro Sprints app allows for such interruptions: when the user exits the app (using the Exit menu item in the Control menu), and then restarts it later on the same day, he can continue with the same project, at the same stage (same sprint number, sprint and break minutes, and step numbers) where it was interrupted. Note: sprint numbers and other project data are re-initialized the first time the user uses the app on a new day.
In addition, while running the app, the user can pause it and then resume it later (using the Pause / Resume menu items in the Control menu) where it was interrupted. During a pause the sprint-break cycle (and the step recording and warning about steps) is suspended, but the clock continues showing the correct time.
Skipping the current break
During breaks the menu item Skip current break appears in the Control menu of the app on the watch. If the user selects this item, the app jumps to the next sprint.
The reason for skipping a break could be that the user exited the Sprints app during a break – maybe a long break of 20 minutes – maybe to devote attention to something else important. When the user restarts the app, it continues where he exited – during the break. The user might feel that he already had a break during the time he was away, and that there is no need to to continue several minutes of break. He might want to start with the next sprint right away. Skipping the current break allows this.
Color selection
The user can select the color for the display from the Control menu (menu item Select color). Currently sixteen colors are available. When the user exits the app, the current color is stored and used the next time when the app is opened.
‘Drink water’ warnings
The idea here is that the user, while working on a project intensively, can be easily immerged in it to such an extent that he forgets to drink fluids – and thus might get dehydrated.
This was the reason to include the option of warnings to drink water. Using the Control menu (submenu item Drink water warnings under the menu item Warnings) , the user can select to receive no warnings, warnings every sprint, warnings every second sprint and warnings every third sprint. The maximal number of daily warnings can be set in Settings.
The warnings are issued at about the middle of a sprint. They consist of a vibration, plus a Confirmation Dialog. The Dialog warns to drink water. If the user selects the ‘Confirm‘ option – meaning he drank water -, then the Confirmation Dialog disappears, and doesn’t appear any more during the same sprint. If the user selects the ‘Cancel‘ option, then the Confirmation Dialog disappears, however it re-appears every minute during the rest of the sprint, until the user selects the ‘Confirm’ option.
If the user doesn’t select any of the options when the Confirmation Dialog appears, then the Dialog disappears after 15 seconds. Otherwise, not selecting any of the options when the Dialog appears has the same effect as selecting the ‘Cancel’ option: the warning re-appears every minute during the rest of the sprint, until the user selects the ‘Confirm’ option.
Warnings during a Paused state
When the user pauses the app (using the Pause menu item in the Control Menu), he might get distracted and thus forget that the app is still running and waiting for the current Sprint to continue.
Reminders or warnings (in the shape of vibrations) can help here. The user can configure these under the Warnings menu item in the Control menu, to occur every minute, every two minutes, every five minutes or every ten minutes.
Physiological data
The app assumes that users will mostly work in a sitting position. This can be unhealthy, and thus it can be useful to monitor some relevant physiological data. For this reason, the upper left corner of the app’s display can show values of one of the following physiological parameters:
- Heart rate
- Calories usage for today (‘resting’ value on top, ‘active’ value below)
- Intensity minutes for today (‘moderate’ value on top, ‘vigorous’ value below)
The user can choose which of these to display in the Control menu of the app (menu item Select physio-data). When the user exits the app, the current physio-data is stored and displayed the next time when the app is opened.
NOTE: the User Profile permission is needed for the calculation of the active and resting Calorie consumption.
Data display
Project data (sprints, sprint time, steps) is displayed both numerically and as charts. The Instructions page shows how to access these.
Data export
Sprint numbers, time spent on the sprints, and steps during sprints and breaks are recorded for each project separately and a history of the last seven days is kept. In addition to displaying this data, the app can also save it, in CSV text format, on the watch. The CSV delimiter character can be chosen in the Settings. The data is printed into the log file of the app.
This log file has to be created manually by the user in the directory (on Windows): <watch>\Primary\GARMIN\APPS\LOGS. The log file name has to have the format <app name>.TXT. The ‘app name’ can be found in the <watch>\Primary\GARMIN\APPS directory, where the app ‘.prg’ files are stored. It is a random looking set of characters, like: A4P61123.prg. The correct name can be identified based on the date and time when the app was installed. In this example, the log file name has to be A4P61123.TXT.
The export is done using the Export project data option in the CONTROL menu. The project data in the log file is between the lines ‘Project data start’ and ‘Project data end’. The user can copy the data into a spreadsheet program and create charts, visualizing the data.
Note: the time data in the export appears as floating point numbers, instead of the h:mm format that is used in the display of the statistics in the app. Thus, instead of 2:30, the export will show 1.5 (hours). This is because of difficulties of displaying h:mm data in charts in some spreadsheet programs.
Settings
A number of features can be changed using either Garmin’s Connect and Connect IQ app for mobile phones, or the Garmin Express PC application.
Activation key
This is where the user can insert the Activation key. See more about this below, in the section Activation key.
Time display format
The user can use 12-hour or 24-hour display. He can select to use the system setting for this (whatever it is). Alternatively, the user can 12-hour or 24-hour display, overriding the system setting.
Showing or hiding leading zeros for the hours in the time display can also selected.
Time line
The user can choose between common time line and project-specific time lines. The default is common time line.
Count sprint / break minutes up (as opposed to down)
Counting up means that minutes start at 0 and are increased by one every minute, until the sprint (or break) length is reached. Counting down means that minutes start at the length of the sprint (or break) and are decreased by one every minute, until the 0 is reached.
Projects
The app starts with one single – default – project, called Default. The user can change this name to some other name (but can’t fully delete it).
In addition to the default project, the user can define five other projects, simply by filling in names for the slots Project1 to Project5.
Project names can be at most 10 characters long, can use alphabetic characters of the English language, numbers, and the characters between the brackets: (.:-_). All other characters are automatically removed from project names.
Projects – except for the default project – can be deleted by removing their names.
If the user changes the name of a previously defined project, it is assumed that he wants to create a new project. Thus, the data of the previous project is deleted, and a new project, with empty data, is created.
Project work goals
The user can define work goals for every project. The goal must be in this format: h:mm, specifying the number of hours and minutes that the user indents to work daily on the project. The following are valid formats for these goals:
- 0:40 (forty minutes)
- 2:00 (two hours)
- 3:30 (three hours and thirty minutes)
- 10:05 (ten hours and five minutes)
The following are invalid formats:
- 2 (minutes are missing)
- :30 (hours are missing)
- 3:70 (minutes greater than 60)
- 26:20 (hours greater than one day)
Project goals for steps during breaks
The user can define the number of steps for every project that he would like to take during the sprint breaks daily.
Step warnings
The user can choose to be warned if he walked too much during a sprint, too little during a break, or both. He can also choose not to be warned at all. The default is: both.
If the user chose to be warned, warnings are issued as a specific vibration pattern (three short vibrations).
The number of steps is checked every minute. It is checked whether, during the last one minute period, the user walked more than a number of steps (during sprints) or less than a number of steps (during breaks). The user can set these step numbers. The default is 5 steps, both for sprints and for breaks.
NOTE: the frequency of step count information update depends on the watch, not on the app. It seems that the Garmin operating system can decide about the step update frequency, based maybe on currently available resources. Normally it seems to update every second, but it can temporarily switch to updates once every 60 seconds. This might last for a few hours, after which the watch switches back to the more frequent step count update.
As mentioned above, warnings can be temporarily switched on or off also via a Control menu item of the app on the watch. Note that the Step warnings rule chosen in the Settings have priority: thus, if Step warnings are switched off in the Settings, then the possibility of temporarily switching off or on the warnings doesn’t exist, and the Control menu item for this does not appear.
Displaying and saving project data
The time spent on a project can be displayed in minutes or in hours (default is: hours).
For saving the project data in CSV format, the user can choose a CSV delimiter (default is the comma character).
Maximal number of daily ‘Drink water’ warnings
If this number of drinks of water is reached (indicated to the app by the user confirming that he drank that number of drinks), there are no more warnings.
Vibration length
Vibrations signal a number of events: starting of the app (a short vibration), starting of sprints and breaks (a long vibration), selecting menu items (a short vibration) and warnings about steps (three short vibrations).
The user can choose among three vibration length levels: short, medium and long. Medium is the default.
Saving data periodically, automatically
A user has reported that when his watch was restarted, he was losing data – e.g. time spent on projects, sprint numbers, etc. This issue seems to be a feature (bug?) of some Garmin watches but not of other Garmin watches.
The solution we chose for this issue was to add a new property to the Settings of Pomodoro Sprints which allows automatically saving the current data periodically. These are the periodicities: never, every minute, every 2 minutes, every 5 minutes. The default is ‘never’.
Activation key
The user can try out Pomodoro Sprints for two hours. During this time the app is fully functional.
After the end of this trial period the app is not usable any more, until the user enters the Activation key in the app’s Settings.
You can get the Activation key in the “Ko-fi shop”, where you can buy me a coffee, if you wish: https://ko-fi.com/s/7418fe4b28 (no ko-fi account required. Paypal, credit card, google pay, etc. accepted).
Acknowledgements
- The excellent, free, and open source Pomodoro app, by the developer klymerik, has helped in the initial stages of development.
- The active Calories calculation uses equations created by the developers markdotai and topcaser.
- The 24/12-hours formatting uses code from PixelPathos‘ Crystal watch face
Please add questions about features of the Pomodoro Sprints app below in the comments section.