to2

Time Out 2.0b1 released

It's been a long time coming, but the day has finally arrived: Time Out version 2 is at last in beta release!

I've actually been designing and prototyping Time Out 2 since 2007, off and on, if you can believe that. Work started in earnest a bit over two years ago, and while it kept being delayed by contract work (I like to eat and pay bills), I've persevered.

Over the course of development, there were 33 alpha releases, tested by a small faithful group of alpha testers.

Now, the app is complete, and I'm ready to expand the testing pool. This first beta release is available to anyone who wants to try it; just visit the What's New page to sign up for an invite to download the beta.

I've written many blog posts providing descriptions and screenshots of version 2, and will post more about various aspects during the beta cycle.

This is a massive upgrade. Here is a summary of the major enhancements. Click to jump down, or simply scroll, to read more about each.


Redesigned app icon

🔝


Get started quickly with the Setup Assistant

  • Added a new Setup Assistant window, which appears the first time you open Time Out. You can also display it anytime via the Time Out or action (cog) menus.
  • The first page enables adding the usual breaks: Normal and Micro, like in version 1. Change them as desired, or uncheck them if you'd rather start from scratch.
  • The second page includes a button to open the Privacy System Preferences, so the keyboard activity can be monitored for idle detection.

🔝


Redesigned Preferences window

  • The Preferences window has a fresh modern appearance, with quick-access buttons at the top, a sidebar listing the breaks, and other options.
  • The breaks display a color label, when they are next due, and when they were last done.
  • The due/done times can be displayed as absolute dates (a date and time) or relative times (how long until or since it).
  • When hovering over break items, a couple of buttons appear, to manually start a break or perform other options, like postponing, skipping, disabling and deleting the break.

🔝


No longer needs to be in the Dock

  • Added the ability in the General Options to show or hide the Dock icon.
  • When Time Out is in the Dock, it'll also appear in the Cmd-Tab app switcher, and have menus. The Preferences window is automatically shown when the app is brought to the front.
  • When it is not in the Dock, it also won't appear in the Cmd-Tab switcher, and won't have menus -- but all features can be accessed from the Preferences window.

🔝


New menubar status item

  • Added an optional status item in the right of the menubar.
  • Shows an icon and countdown to the next break.
  • The style of icon can be chosen (including an icon representing the next due break), or no icon used.
  • It can show a brief or longer countdown, or the start or finish time, or duration of the next break.
  • Supports light and dark menubars.
  • When the Dock icon is shown, clicking the status item in the menubar shows or hides the Preferences window.
  • When the Dock icon isn't shown, clicking the status item shows a popover that looks and works just like the sidebar in the Preferences window, but clicking an item will show the corresponding page in the Preferences window.
  • The tooltip for the status item lists all of the breaks and when they're due, with the next due at the top, so you can quickly see when each break will next occur without having to click the status item.
  • If you turn off both the Dock icon and status item, a warning message explains how to get back to the Preferences. This is permitted for people who want to make it harder to change the preferences for self-control reasons.

🔝


Assign global keyboard shortcuts to start, defer, pause, etc

  • Added a Shortcuts Options page, which lists all of the global keyboard shortcuts, so they can be set in one place.
  • Shortcuts can be assigned to manually start breaks, postpone or skip the next or current break, pause, resume, or reset all of the breaks, and/or stop any playing sound.
  • The postpone and skip shortcuts will apply to the next due break, or if a break is currently starting or underway, to that break. So you can avoid a break with a quick keypress if needed.
  • These shortcuts work from any app.

🔝


Add any number of breaks

  • Renamed the Breaks menu as File, and moved it to the usual place.
  • Added a New Break (Cmd-N) command in the File menu, to add additional breaks.
  • Added support for deleting breaks via the Delete key or menu item.
  • Added Undo support for some operations (notably adding and deleting breaks).
  • Added the ability to drag the breaks to reorder them, which sets their priority, so lower breaks are skipped in favor of higher breaks.

🔝


Rename, label and comment on breaks

  • Added a Break Name page to enable editing the break name, choosing a color label for the break, and adding some comments.
  • The label is shown in the sidebar, and can be displayed in the status item to quickly see which break is coming up next.
  • Also included is a customizable keyboard shortcut control. If set, the shortcut is shown in the sidebar and status popover, and can be used from any app to manually start the break.

🔝


Scheduling improvements

  • Changed the way the breaks are scheduled, to use a single timer with due dates instead of multiple timers, enabling more flexibility.
  • The Schedule times now use a more compact interval picker that supports pop-up menus for values, arrow keys to change values, etc.
  • The due dates are now restored when the app is relaunched (e.g. after a system restart), so they continue as if Time Out weren't interrupted. (If a break would have been due already, its due date is reset to the full work duration.)
  • Added a new idle detector, which should be more reliable than the old one. The new one is enabled by default, but you can switch to the old one or disable it in the Advanced preferences.

🔝


Limit breaks to a time range

  • Added an Available pop-up menu on the Break Schedule page, with "Any Time" and "Only Between" items. If "Any Time" is selected, the break can occur at any time of the day; if "Only Between" is selected, From and To time controls appear to set the available time range.
  • If an "Only Between" time range is set, the next due time will be the From time plus the frequency (the "Every" field).
  • The From time is especially useful for daily breaks, e.g. for a "Lunchtime" break set to every 1 day, you could set the From time to 12:00:00 (noon) and the the To time to 13:00:00 (1 PM), to ensure the break starts at noon, but no later than an hour after that if postponed (e.g. via a natural break).

🔝


Support for natural breaks

  • Changed the scheduler to be smarter: after 30 seconds of idle, the countdown stops (if using the natural break preferences), and after 1 minute of idle, it starts counting upwards (if that preference is set), until the break frequency time is reached.
  • Choose how to handle a natural break. Continue Countdown to ignore idle. Pause Countdown to stop the timer while idle. Count Backwards to pause briefly then count upwards until the duration is reached. Reset After Duration to reset the break due date after the break duration of idle time. For example, with the latter if you have a 10 minute break every hour, and you have a natural break for 10 minutes, leaving the computer idle for 10 minutes will skip to the next hour.
  • Added a pop-up menu to choose whether to wait for a natural break (idle) or start immediately when a break is due.
  • With the latter, when a break is due, it will wait for a natural break of at least 15 seconds, to avoid interrupting you when you're busy. If you keep working for a minute, it starts the break anyway.

🔝


Better appearance

  • The Break Appearance options now uses a new color well that includes a palette of colors in addition to the color picker, and changed the transparency slider to an opacity slider & field.
  • When there are multiple screens available, the Break Appearance preferences has extra options, to specify whether to use the screen with the active menubar, or the screen with the inactive menubar, or a specific screen.
  • Connecting or disconnecting a display will now update the Appearance page, showing or hiding the screens pop-up as needed.

🔝


Customizable HTML-based break themes

  • Time Out now supports multiple customizable break themes!
  • The Theme pop-up menu includes a None item to not fade the screen(s) during the break (just showing the control panel); Blank to fade without showing any content, and a list of available themes.
  • Some default themes are included. You can also customize them or add your own. Choose the Reveal Themes item in the menu to show the Themes folder in the Finder, or Get More to display the Time Out Extras page in your browser.
  • Themes use HTML, so can display local content (potentially including JavaScript-driven apps), or web pages.
  • Fading in to the break, and out back to work, is now much more efficient, and uses a geometric animation curve to make it more natural.
  • Added an Info button next to the Theme pop-up menu. Click it to show a popover with information about the selected theme, including clickable links to author and original websites, where available.
  • Also a Preview button to try the theme; equivalent to manually starting the break.

🔝


Redesigned & movable control panel during breaks

  • The progress bar and postpone/skip buttons now appear in a redesigned control panel that can be moved around the screen.
  • The control panel now fades in at the same time as the break, so the postpone/skip buttons can be used while the break is starting.
  • The break theme and control panel only appear on one screen, if your Mac has multiple screens; the other screen(s) just fade to a blank color (which can be different than the theme screen).

🔝


Add actions to notify of due, starting or finishing breaks

  • Merged the Sounds and Scripts pages into an Actions page, which now supports any number of actions, and more versatile scheduling of them, including before the break is due.
  • You can now play a sound or some other action some period of time before due, after the start of the break, after fading in, before fading out, before finishing, after finishing, or after postponing or skipping. Lots of flexible options!
  • Integrated the scripts into the Add Action (+) button menu, so any scripts you add are treated like full actions.
  • The script actions include an Open button to enable quickly editing scripts, e.g. "Open with Automator".
  • When the Add Action button menu is first shown, or if the scripts folder is empty, it includes a "More..." item at the end. Choosing that will display an Open sheet, asking for permission to copy the default scripts into the folder. After that, it re-shows the Add Action menu with the scripts listed.
  • Included Reveal Scripts and Get More functions in the Add Action button menu. They aren't shown until the default scripts have been installed. They respectively reveal the scripts folder in the Finder and display the Time Out Extras website.
  • Included a Preview button (with an eye icon) to try the associated action.
  • Added a new Display Notification action, that shows a Notification Center panel, with custom title and message text, and optionally a sound.
  • Added a new Fadeout Sound action, that fades out any playing sound over a specified number of seconds. Useful for long sounds (e.g. music), or in combination with the Repeat option in the Play Sound action, to gently stop them after a suitable interval, e.g. at the end of the break. Like the other actions, specify when to start fading out via the action offset & stage controls in the action header.
  • Added a new Flash Screen action, which includes options to set the flash color and speed.
  • Added a new Speak Text action to use speech synthesis. It includes a voice pop-up menu which can display just your preferred voices (set in System Preferences > Dictation & Speech > Text to Speech > System Voice > Customize), or all available voices, grouped by region and gender like in System Preferences. It also has an Attributes popover that enables fine-tuning the voice rate, pitch, inflection and volume.

🔝


Enhanced app exclusions

  • Changed the Exclusion options to show the full path, and added the ability to skip breaks when an app is open but not frontmost.
  • Also added MPlayerX, QuickTime Player and VLC to the default Exclusions, and removed Podcast Capture (since it isn't included in Yosemite).

🔝


Faster app updates

  • Time Out now uses the popular Sparkle framework for app updates, so it can finally download and install updates itself.
  • Changed the Updates options for the Sparkle framework, and to display the release notes right there, since there's space.

🔝


Several advanced options

  • Added an Advanced preferences page, with a number of options that most people won't need.
  • Includes an option for the idle detector: None to not detect idle, the Event Source like in version 1, and the new Event Monitor that is more reliable.
  • Includes a checkbox to alert of another copy of Time Out, which can interfere with starting breaks.
  • Includes a checkbox to control whether or not clicking an item in the status popover should animate to the full window size.
  • Also includes a button to reset the position of the Preferences window when using the status popover, so they line up nicely. When you turn off the Dock icon, it is automatically lined up. The window can still be freely moved, but it looks nice having them aligned.
  • Includes a number of options to output diagnostic information to the Console log.
  • Includes a handy button to show the Console log, i.e. launch the Console app.

🔝


New supporter options

  • Time Out can be used for as long as you like for free, but the more advanced features are only available to try for an hour at a time, as many times as you like.
  • These features are highlighted throughout the app by a heart icon that appears next to the control. Clicking it displays a popover to explain the limit.
  • The Support Time Out page includes buttons to purchase three supporter durations (3-, 6- and 12-months). Becoming a supporter helps to fund continued development. These are one-time payments, not a subscription, though you can extend your support later if you wish.
  • All the features will remain available even after the supporter period, though some future enhancements may only be available to current supporters.
  • Click the Learn More button for more information.
  • This page also includes buttons to restore any previous purchases, and redeem a coupon code.

🔝


Optimized for Yosemite and El Capitan

  • Time Out now requires a minimum of OS X 10.10 (Yosemite), and supports 10.11 (El Capitan).
  • Now uses the latest technologies.
  • Now uses the third-party Fabric Crashlytics framework to automatically capture crash reports. Automatically aggregating crash reports will enable faster fixing any that occur.
  • If a crash occurs, Time Out will now display a window on next launch to ask for information about the crash, which may help trace the cause. There are also optional fields for your name and email address, in case there are any questions.
  • Sandboxed for increased security.

🔝

Phew!

Sound good? Visit the What's New page to sign up for an invite to download the beta.

Time Out 2 sneak peek: shortcuts

It's been a little while since the last sneak peek of Time Out 2, so let's do another one. What shall we look at this time? How about the Shortcuts page.

This is one of the many popular requests from customers of version 1: the ability to have global keyboard shortcuts to postpone or skip breaks when they are starting at an inopportune time.

I went a bit further in version 2, though: not only are there global shortcuts available, but you can also assign them to whatever you want, and can set ones to start each kind of break, postpone, skip, pause, resume, reset, and stop any playing sound.

Time Out Shortcuts page

(The assignments in this screenshot are ones I've set; you can use whatever makes sense to you, and don't have to assign any you don't want.)

If you look closely, you may also notice a few other changes in this screenshot, including a new Help (?) menu button at the top, and a Support Time Out item in the sidebar. More about that another time.

In related news, I've just added a new What's New page to the Time Out site. Check it out for a partial list of features and more information, including a form where you can sign up to be amongst the first to hear of a beta release.

And as mentioned before, if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information.

Time Out 2 sneak peek: status menu

I've been doing a bit of contract work to refill the coffers, so work has slowed on Time Out 2, but it has continued, as has testing. Let's take another sneak peek!

Last time we took a look at the General options, and I talked about configuring the status menu. Well, this time I thought I'd finally show it.

As mentioned, the status menu is a much-requested optional feature in version 2, which shows a countdown to the next break, among other options. When you click it, if the Dock icon is shown, it simply switches to Time Out and shows the preferences window. But if the app doesn't appear in the Dock, a status menu popover is shown instead, like this:

This may look familiar: the status popover looks pretty much the same as the preferences window sidebar. There's a good reason for that: if you click on an item in the popover, it transforms into the full window, enabling editing the break or options.

But you don't need to show the full window for many operations; you can see when the next breaks will occur, when they were last completed, pause, postpone, skip, reset or manually start breaks, and more all from the status popover. As you hover over the break items, a manual Start button and a menu of options appears:

I think you'll find this a very useful addition.

Time is running out, but if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or as always, stay tuned for more screenshots and details in the coming weeks!

Time Out 2 sneak peek: general options

Work on Time Out 2 is going really well: all of the planned functionality has been implemented. Now I'm adding the licensing stuff; more on that another time. For now, it's time for another sneak peek of Time Out 2.

This time, let's revisit the General Options. I briefly showed that back in August, but it's changed significantly since then. As I said before, this is all subject to change, but this might be the final design for 2.0:

As before, the top option on the right-hand-side of the window is a checkbox to automatically start Time Out when logging into the Mac. Pretty self-explanatory; a standard option for apps that you want to keep running; important to not miss breaks.

Next are a pair of radio buttons that you may have previously seen in the Setup Assistant, to control whether or not the app appears in the Dock. That page of the Setup Assistant no longer exists; it isn't needed, as it contained the same controls as here, and the General Options are the first thing you'll see after completing the Setup Assistant.

Not needing to be in the Dock is the #1 request for Time Out 1, so I'm happy to be able to provide it as an option in version 2. As explained in the screenshot (click it to see full-sized), when the app appears in the Dock, it also appears in the Cmd-Tab app switcher, and has a menu bar. Clicking the status item will just show the Preferences window. But when not in the Dock, it is truly a background app: not in the app switcher and doesn't have menus — which is fine, as all essential functionality is available in the window itself. Also, clicking the status item shows a popover from it, that looks much like the sidebar of this window. Selecting a break or option will expand to the full window.

An option that wasn't in the Setup Assistant, though, is the ability to show the aforementioned status item in the menu bar. This is the #2 request, after the above Dock one, so another great addition to this version. The last time you may have seen these options, the configuration of the status item was a long list of radio buttons, but I've changed that to two pop-up menus; much more compact and tidy.

The options control what style of icon to include (if any), and what value to include (if any):

This appears in my menu bar thusly, using a green dot for the label color of the next break (Micro) and the number of minutes until it is due (5):

This is the brief countdown; the full countdown shows two units, e.g. "05:02" for 5 minutes and 2 seconds. The other options are pretty self-explanatory.

Finally, we have a pair of radio buttons to control how dates and times appear in the sidebar. Currently (and by default) it is set to show them as relative times, e.g. "due in 5 min, 2 sec". If you prefer to know the time of the next break, instead of how long until it is due, you can change it to show absolute dates, and it'll show something like "due Today, 15:45:20" instead (using your preferred time format), like the status item option to show the due time instead of a countdown.

Just a few of the many options in Time Out 2! Time is running out, but if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or as always, stay tuned for more screenshots and details in the coming weeks!

Time Out 2: appearance page

I've given you several hints about Time Out 2 features. Now it's the turn of the Break Appearance page, which includes some of the most exciting enhancements in version 2.

The Appearance page includes controls for how the break looks: a theme, background colors, buttons to include, and more.

Here's a screenshot (but remember that since this is from an alpha build, everything is subject to change before public release... and astute readers may notice several changes to the sidebar from the last time you saw it; can you spot them all?).

One of the major improvements in version 2 is the concept of "themes." In version 1, all that appears during a break is a large app icon and the break progress bar and postpone/skip buttons. Version 2 kicks that up a notch: it supports multiple customizable themes, so breaks can display all sorts of content, along with the progress and buttons. It comes with several themes, including of course just the app icon (both the new icon and the old one for those who prefer that), plus several more.

It can even display websites, e.g. the theme selected in the screenshot is "Explore Flickr", which simply shows the Explore page at Flickr, as a nice collection of photos, which you can scroll through during your break. (You can click the Info button next to the theme to learn more about it.)

There are many other handy controls on this page. The "Reveal Themes" button shows the folder that houses them, so you can add your own or modify the provided ones. If you have multiple screens, you can indicate on which screen to display the theme. You can set colors and opacity for each screen, with a quick palette of colors in addition to the full color picker. As in version 1, breaks fade in and out; you can control how long that takes with simple fields. And the optional buttons to postpone and/or skip breaks can be configured here.

I hope you're as excited about these enhancements as I and the alpha testers are. Remember, if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or stay tuned for more screenshots and details in the coming weeks! The functionality is nearly complete, so we're very close to the first beta release, at last. I hope you'll agree that it's worth the wait.

Time Out 2: setup assistant

When you first launch Time Out 2, I want to help you get started.

So the first thing you'll see is a setup assistant, that will explain the two suggested kinds of breaks, with controls to include and configure their two most important options, how long the breaks last (duration), and how often they occur (frequency).

Here's a screenshot (but remember that since this is from an alpha build, everything is subject to change before public release):

You can uncheck either or both of these if you don't want that kind of break, or you want to start with none and add them manually. These breaks are just suggestions; you can later delete, rename or reconfigure them however you like. The breaks have many more options to customize them, including how to handle time away from the computer; customizable themes, colors and buttons to display during the break; actions to inform you of upcoming, started or completed breaks; and much more.

If you prefer, you can click Skip to immediately close the assistant, without adding any breaks or configuring other options, and set everything up manually in the preferences.

Otherwise, when you click Continue, you're taken to another setup page that mentions these additional break options, and includes a button to open the Privacy System Preferences (alpha testers: this page will be in the next build). That is required if you want Time Out to detect the end of a natural break (idle) when you type something; otherwise it can only detect that when you move the pointer via a mouse or trackpad.

After that, one last page with a couple of options. Firstly, a checkbox to start Time Out automatically on login, so you don't miss any breaks. Secondly, something that has been much requested for years: an option to show or hide the app icon in the Dock.

In version 1, the app is always visible in the Dock, which makes it easy to get to, but many people would prefer to have it more hidden, not appearing in the Dock or Cmd-Tab app switcher. With version 2, this is now an option, at last:

Another much-requested feature is also mentioned here: the status item in the right of the menu bar. By default this displays a label color representing the next due break, and a countdown to the start of that break. This can be disabled in the preferences, or reconfigured to display a different icon and/or other information.

As explained under each radio button, when Time Out is included in the Dock, it is also in the Cmd-Tab app switcher, and has a menu bar. Clicking on the status item will simply bring the app and its preferences window to the front, making it easy to configure the breaks.

When the app isn't shown in the Dock or Cmd-Tab switcher, it also doesn't have menus, so you access commands via the buttons at the top of the window. The status item also behaves differently: instead of just showing the preferences window, it displays a popover view directly off the status item, that shows the list of breaks and options. You can use that to quickly see when the breaks are due or last done, and manually start or pause them, among other options.

I expect that most people will want to use Time Out with the Dock icon hidden, but the default is to leave it visible, to assist with new users, to avoid confusion.

I hope you're as excited about these enhancements as I and the alpha testers are. Remember, if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or stay tuned for more screenshots and details in the coming weeks!

Time Out 2: sidebar & schedule page

Okay, enough blurred teasing. Time to show a full screenshot!

Time Out 2 is coming along nicely; I've made lots of progress in finishing off and polishing the app in recent weeks, thanks in large part to the feedback of the elite alpha testing group. There's still much to do, but it's getting ever closer to being done, so I want to share a bit more about it now.

Without further ado, here is a screenshot from the latest alpha build of Time Out version 2 (click to see full-sized):

As you can see (and could no doubt tell from the previous teases), the preferences window now has a sidebar that lists the breaks, and other options. What's this... three breaks? Yes indeed... in fact you can unlock an unlimited number of breaks in version 2!

If you look closely at the sidebar, you can see a colored label (which can be shown in the menubar), the break name, when the break is next due, and the last time it was completed.

On the right-hand-side, you can see the Schedule page for the Normal break. It has much improved controls compared to version 1, making it easy to set the duration and frequency of the break, plus the ability to set a time range for the break (useful for a daily lunch break, for example), tweak when the next break will occur, automatically count backwards to get credit for natural breaks (when the computer is idle), and automatically skip a break if too close to a more important one (e.g. to avoid having a Micro break a few minutes before or after a Normal one).

Of course, this is all subject to change; some aspects of this view changed recently, and I know of at least one more change that'll affect it. But the final product will look very close to this.

I hope you're as excited about this sneak peek of version 2 as I am. I can't wait to make it available to everyone. In the meantime, if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or stay tuned for more screenshots and details in the coming weeks!

Time Out 2: pricing

Hi all,

I have a very important question that I've been pondering for some time, and that I'd appreciate your input on. How to price Time Out 2.

Version 1, as you may know, is free, with a suggested donation. All features can be used without restriction for no cost, but if you find it useful, I appreciate a donation. I like the idea of Time Out being free, so lots of people can get the health benefits of taking regular breaks. But I also like to eat and pay bills, so I need an income. Free, even with a donation, doesn't really cut it, unfortunately.

So I've always planned to charge for version 2, especially considering the huge amount of work I've put into it, and the significantly improved feature set. But I'm not sure exactly how to do so.

There are a number of options I'm considering. I'd appreciate your thoughts on these.

Free

The simplest option is to stick with the current model: a free app, with no restrictions, and an optional donation.

Pros: widest use.

Cons: relatively few paid customers; unsustainable.

Paid

The obvious alternative is to simply have a price tag on the app. Version 2 will be available both directly from the Dejal website and in the Mac App Store, so I could do like I do for other apps, with a free trial on the Dejal site as a time-limited demo, with a payment required after 14 days of use (which may be non-contiguous). And on the App Store, just have a fixed price.

Pros: simple; easy to understand; customers are all paid (except during the direct edition trial period).

Cons: no trial on the Mac App Store; less publicity from people recommending it as a free app.

Freemium with "Unlock Everything"

Another option is "freemium" — a free edition on the Mac App Store, with some feature restrictions, with a single In-App Purchase (IAP) perhaps called "Unlock Everything" to make all of the features available. This is similar to a trial period for the direct Dejal site edition, so it could use the same mechanism.

Pros: free trial for both editions; simple-to-understand price.

Cons: it could be tricky to set the limits so enough people pay.

Freemium with multiple IAP

A variation on the freemium approach is to have multiple In-App Purchase options. So instead of paying once to unlock all the features, customers could pay to unlock individual features, e.g. new break themes, action types, and perhaps even to add a new break. The app could come with one or two breaks, and you pay $0.99 or something for each additional break.

Pros: free trial for both; pay for usage; potentially more $$$.

Cons: more confusing pricing; some might not like the "nickel & diming".

Gamification

Taking the above further, another option is often referred to as "gamification": using rewards or social features to make using the app more fun, and to spend money on features. There are various ways this could be done, but one idea for Time Out is to have an in-app currency for breaks taken and skipped. So taking a break earns some credit, and skipping or postponing a break spends some of that credit. If someone wants to skip more than they take breaks, they could pay real money to buy break credits. There could also be achievements to earn for taking breaks (e.g. taking all breaks in a day or a week), etc.

Pros: could be fun; real incentive to take breaks; potentially more $$$.

Cons: more complex to implement and understand; again with the "nickel & diming".

Some hybrid

A variation of the above options could be to use one approach for the direct Dejal edition, and another for the Mac App Store edition. For example, the direct edition could use the traditional 14-day trial approach, while the MAS edition uses a paid or freemium model.

Pros: more choices for people.

Cons: more complex to understand.

Others?

There are probably other approaches that could work, too. If you can think of any, please let me know.

I'd really appreciate your opinions on these options. I need Time Out to be sufficiently profitable to justify and sustain further enhancements. But I also want it to be used as widely as possible. It's already a fairly popular app, in large part due to being free, so I want to do what I can to improve that.

Of course, once a pricing model is decided, the next obvious question is what the actual price(s) should be. I welcome feedback on that, too, if you like.

Please let me know what you think in the comments below, or privately.

Time Out 2: Dock vs status item

Without a doubt, the most popular request for Time Out over the years has been the ability to not need to be in the Dock. The second-most popular request is a countdown in the menubar.

These feature requests are related, as if the app isn't in the Dock, it should be in the menubar, otherwise there's no real convenient way to access its settings.

Your wish is my command: both of these requests have been granted in version 2 (and much more). A countdown can be displayed in a menubar status item, which when clicked displays a popover listing the breaks and more options.

Here's a blurred screenshot:

Breaks can be manually started, paused, etc from this popover. Clicking on an item will show it in the preferences window, enabling you to configure the breaks.

There is a preference to control whether or not Time Out appears in the Dock, and the appearance of the status item can be configured, to change the icon and countdown or time of the next break, among other options:

It is currently technically possible to not have Time Out in the Dock or status menu, but then the only way to access the settings would be to open the app from the Finder. Which some people might like, perhaps.

When I first created version 2, I had the scheduler and status item in a helper process, separate from the main app with the preferences window. Later I merged the two, as that proved a bit unreliable and more complex. But now I'm reconsidering the design, as it turns out that the status popover doesn't work when an app is fullscreen.

So I'm thinking about a number of options for a redesign:

  1. Go back to the previous design, with the status item in a helper.
    • Pros: consistent working status popover, crash-proofing.
    • Cons: more complex architecture; had issues with prefs not loading; delay opening settings window while app loads.
  2. Make the app only use a status item; no option to show in the Dock.
    • Pros: simplified UX; could remove menus; status popover would always work.
    • Cons: some people might like to access via the Dock.
  3. Change the prefs to either show the status item or be in the Dock, not both.
    • Pros: the status popover would always work, when enabled; people could still access via the Dock.
    • Cons: two UX styles; no countdown in Dock mode.
  4. Always just show the settings window when the Dock is shown, or popover when no Dock.
    • Pros: the status popover would always work when no Dock; could still have status countdown.
    • Cons: two UX styles.

I am currently leaning towards the last option, as that seems like the best of both worlds: the ability to show or hide the Dock icon, and a countdown status item available with either. If the Dock icon is shown, clicking on the status item would be equivalent to clicking on the Dock icon, bringing the app to the front. If not, it'd show a popover for quick access, and only bring the app to the front if you want to edit something.

What do you think? Would you want to show or hide the Dock icon? Do you want the countdown item? Let me know in the comments below. Alpha testers can reply here if you don't mention any unannounced features, or in the private alpha forum.

Developer: NSButton drawing issue

A post for developers, though also related to Time Out 2.

One of the features of Time Out 2 is a sidebar listing the breaks and options, as you could see (blurred somewhat) in my previous post . The sidebar includes a couple of buttons that appear when you hover the pointer over a row, enabling you to manually start or pause that break.

A vexing issue I had, though, was that the button didn't draw correctly. If you look closely at this screenshot, you may notice that the background of the text and the remainder of the button content don't match — there's a visible outline around the text:

That is rather ugly. I'm not sure exactly what causes it, but presumably it's related to being in a sidebar list, and perhaps an issue with title-less windows (I've seen some other issues, too).

Regardless, I wanted to fix it. After a bit of experimentation, I found a simple solution: a subclass of NSButtonCell to override the -drawTitle:withFrameinView: method, which as you might imagine is responsible for drawing the title text. The override simply invokes the superclass, and returns the full button rect instead of the rect of the text itself:


@interface DejalButtonCell : NSButtonCell

@end

@implementation DejalButtonCell

- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView;
{
    [super drawTitle:title withFrame:frame inView:controlView];
    return frame;
}

@end

That seems to do the trick:

Filed Radar #22491410.

Time Out 2 teaser

As you may know, I'm working on a major upgrade of my popular break reminder tool, Time Out. Version 2 has been in the works for quite some time, in between working on contract work and updates of Simon, Pack, and other apps.

I've recently made some significant progress, and although there remains much to do, I think it's time to start teasing a little about the new version.

So without further ado, I present your first glimpse of the app (other than the icon, which I showed previously). A heavily blurred screenshot, admittedly... but you may be able to glean something about it.

Want to see more? How about actually try the current version? No need to wait: licensed users can apply to become alpha testers, and actually use the latest builds now (version 2.0a13 was released a few days ago). If you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information.

Otherwise, stay tuned for more screenshots and information about the upgrade over the coming months. (Yes, I fully expect it'll be a few months before it's finished, though who knows; it'll be done when it's done.)

Time Out 2 icon

Yes, the rumors are true... Time Out 2 is coming! This major upgrade has been much delayed, redesigned, partial implementations discarded and restarted, and delayed again... but it is well underway now, and is in fact in private alpha testing at present.

What does it include? The major enhancements are not coincidentally the most requested changes: the ability to run Time Out without it being in the Dock, a countdown status menu, and customizable break themes. There are many other improvements, too.

Don't get too excited just yet, though, as it'll probably be another few months before it is available as a public beta. Although version 2 is fully functional now, I've still got lots I want to add and polish, including support for more than two breaks, more kinds of notifications, and an overhaul of the UI.

One other big change is the app icon. The icon for version 1 is nice enough, and many people like it, but others are put off by the meditating figure. So I've taken the opportunity of version 2 to have a fresh new icon professionally designed... and here it is:

I hope you like it, and agree that it's a huge improvement. The theme is relaxation — take a break. A hammock under palm trees seems pretty relaxing to me. And from a certain perspective, it looks a little like a smiley face. Hopefully taking rest breaks will make you smile, too.

This great icon was designed by Aaron Mahnke of Wet Frog Studios. It was a pleasure working with such a professional and skilled designer. He was easy to work with, clearly understanding my ideas and quickly created a draft design that was very close to what we ended up with. He was also responsive to my suggestions for tweaks, so it only took a few iterations before we had the final design.

So, when will version 2 be available publicly? I don't know. It'll be done when it's done. But I will post more about it over the coming weeks, so you can get a feel for the enhancements.

Can't wait? Want to try the current alpha releases? I always welcome fresh perspectives, so you could be eligible to join the elite alpha group. It is only open to licensed users, so if you've made a donation, and you're using Mavericks, you can contact me to request to join the alpha team, or to get more information.

Syndicate content