Contact
Developer's Blog
Projects
About
HoldMyBeer
TECHNOLOGIES

HeyClock - Frequently Asked Questions

What is it exactly? Like, another alarm clock app or something?

Or something! There are lots of alarm clock apps out there, but most of them focus on initially getting you out of bed.
There are also lots of time-management apps out there, including ones that will let you set routines, and alert you if you're going to be missing out on something or forgetting to accomplish something important.
However, I've found that a lot of those sorts of apps are easy to tune out- over the course of a day, my phone makes a lot of noises at me, and if I'm in the middle of something, it's easy for me to acknowledge that my phone just beeped, but go right back to what I was doing.
"Yeah, yeah, I'll go get dinner started in a minute- I just need to finish what I'm working on real quick."
-2 hours later-
"Hm, I'm getting kind of hungry- oh crap!"
HeyClock uses your phone's text-to-speech system to tell you exactly what you're about to forget to do, and it can be configured to regularly remind you at set intervals, during particular windows of time, and on specific days.

  • HeyClock is designed to help manage time-blindness and serve as an audible reminder system.
    Visit the app's settings menu to:
    • Choose your preferred notification style
    Voice Only
    (default)
    Voice and
    Notification
    Notification
    Only


    • Choose which voice is used for alarms

    Be sure to leave HeyClock running in the background so it can activate your custom alarms.

  • Routine Alarms will repeat regularly on selected days of the week.

    You can choose between a single alarm or an interval alarm:
    Feed the cat!
    7:00PM
    Mon-Sun

    Work Days
    7:00AM Mon-Fri
    Every 10 minutes
    until 8:00AM

    You can also set a Temporary Alarm, which will activate once and then disappear:
    Call Charles
    3:00PM
    Today

    Stir the Soup
    5:00PM Today
    Every 5 minutes
    until 5:30PM

    HeyClock currently supports one temporary alarm at a time.

  • HeyClock keeps track of the time by checking timestamps from your phone's location services

    For this to work, HeyClock needs your phone's location services permission set to Always On.



    If you select Low Power Mode, HeyClock alarms will only go off when you are near one of three custom home locations.

    Set home locations and Low Power Mode in the settings menu.
  • HeyClock is designed to help manage time-blindness and serve as an audible reminder system.
    Visit the app's settings menu to:
    • Choose your preferred notification style
    Voice Only
    (default)
    Voice and
    Notification
    Notification
    Only


    • Choose which voice is used for alarms

  • Routine Alarms will repeat regularly on selected days of the week.

    You can choose between a single alarm or an interval alarm:
    Feed the cat!
    7:00PM
    Mon-Sun

    Work Days
    7:00AM Mon-Fri
    Every 10 minutes
    until 8:00AM

    You can also set a Temporary Alarm, which will activate once and then disappear:
    Call Charles
    3:00PM
    Today

    Stir the Soup
    5:00PM Today
    Every 5 minutes
    until 5:30PM

    HeyClock currently supports one temporary alarm at a time.

  • HeyClock uses your phone's built-in Alarm Clock functions in order to schedule its routines.

    A silent "dummy alarm" is scheduled several minutes before the next speech event to ensure the phone has exited all sleep modes.



    If your phone is set to display the time until the next alarm on the lock screen, you might notice an upcoming HeyClock routine in its place..

What kind of devices is it compatible with?

Right now, just iPhones; anything as far back as the iPhone SE running iOS 11.2, to a modern device with the newest operating system. No iPads or watches, for now anyways.

How does it work?

HeyClock uses the timestamps from the phone's location services, and checks those against the scheduled times in your custom routines.

Apple is pretty picky about running things in the background, and the main goal of HeyClock is to allow you to go about your day like normal, but still receive your reminders when needed. If it required you to keep the app open in the foreground with your phone's screen on the entire time (like some other apps out there), then it wouldn't really work for the day-to-day routines.
Because of this, there are only two methods that can be used to run code in the background on your phone. The first is by playing or recording audio- you see this mostly with wake-up alarms; they record audio and then analyze it for depth-of-sleep and either wake you up when you seem more naturally-inclined to do so, or provide you a report on how restless you were during the night (or both).
That doesn't really work for HeyClock- not only is there absolutely no good justification for recording audio over the entire course of the day, but that would drain your battery in a hurry. Most people plug in their phones when they sleep, so battery drain isn't a major issue when it comes to wake-up alarms.
Because of that, HeyClock has to use the second method- monitoring the location services in the background.

Whoa, HeyClock is keeping track of where I am?

Nope! It's only looking at the timestamps of your GPS satellite signals.

Google (or Apple) Maps are allowed to run in the background for extended periods of time because they need to track your actual location. HeyClock is allowed to run because it's keeping track of the timestamp of the GPS pings; it discards the actual location data. When a ping is received, it compares the time to your saved routines, and if it's time for an alarm to go off, it does! Depending on how far away the next notification is, the GPS accuracy is internally adjusted so you receive pings more or less frequently (which is better for the phone battery).
BUT, Apple isn't exactly a fan of using system resources for things they weren't intended for- this means that HeyClock needs an actual justification to use the phone's location services. To that end, you can also define up to three locations outside of which your routines won't trigger (considered "Low Power Mode" since the GPS is effectively not monitored at all outside of those geofences, which is better for your battery).
If you use Low Power Mode and have home locations saved, this data is only saved locally in your phone's settings! It's not analyzed, uploaded, or used by us in any way. And HeyClock still isn't looking at your actual location, it's just using the built-in Apple geofencing methods that only check if you have entered or exited a location. We'll never read or use any of your personal information, location or otherwise!

That seems kind of... hacky.

It is :( But unfortunately, that's the only way to get anything to happen periodically in the background of your phone at specific times during the day.

iOS places apps into a suspended mode when they move to the background, only allowing them special occasional windows within which to download data (for instance, to look for software or information updates from a source on the internet). Apple's "Timer" object, which is what you would normally use to run code at a specific time, would get paused as soon as the app is suspended.
There are only a few "background modes" that are exempt from that sort of suspension, and Apple is pretty aggressive when it comes to denying apps who don't have good reasons to use them. Without the GPS method, HeyClock wouldn't be able to function at all unless you had the app open with the screen turned on over the course of your entire day, which sort of defeats its purpose.

So I don't need to leave HeyClock open in order for my alarms to go off, right?

Not in the foreground, no.

Everybody used to be super-obsessive about closing down apps that you're not using, because they use up phone memory and battery power, but most of the recent iOS versions have actually improved on their memory- and power-management a lot, to the point where it's really not a big deal to leave several apps running in the background.
In fact, some apps (like HeyClock) depend on it! For instance, I use the Outlook app to manage my emails on my phone, and if I don't have it running in the background, I don't get notifications when new mails come in. HeyClock works the same way- as long as it's open in the background, it can keep an eye on the GPS ping timestamps, and decide whether or not it's time to trigger an alarm. If you close HeyClock down completely, then it can't do its job!
However, HeyClock will let you know if it stops processing GPS pings with a notification- if about six minutes go by without a GPS timestamp update (and you have "GPS signal lost/restored" notifications activated in the HeyClock Settings) you'll get a notification letting you know that your GPS signal has been lost, and you won't be receiving any alarms. Whether the GPS timestamps have stopped being analyzed because you entered a GPS dead zone or because you accidentally closed the app doesn't matter, so pay attention to that notification!

The HeyClock voices don't sound very good. Can it use the Siri voice instead?

Unfortunately, no. That's another one of those things that Apple has locked down- the Siri voice data isn't avaiable to developers, only the actual Siri function.

But, you can actually download lots of different voices on your phone, and many of them have much higher quality than the default text-to-speech voice. In the HeyClock Settings page, under the box where you select which voice you want to use, you'll see a description telling you where to go in your iPhone Settings to download more voice data (I'd mention it here, but it's in different places in different iOS versions).
In addition to downloading higher-quality versions of the voices you already have installed on your phone, you can also download different accents for your language. For instance, if your system language is set to English and you're in the United States, you're not stuck using just American accents in HeyClock! Download some Australian, South African, or British voices for a little bit of variety!

What's HeyClock Lite? What are the differences between that and regular HeyClock?

HeyClock Lite is free and has limited customization in comparison to the full version of HeyClock, which is $1.99 on the app store. It's designed so you can try it out a little bit before spending money on the full version, but if you find that you don't need the bells-and-whistles that the paid version would offer you, feel free to just keep using HeyClock Lite instead!
HeyClock Lite has some extra little icons (looking like little piles of coins) over the features that are limited in the free version:

  • HeyClock can save as many regular routines as you want, whereas HeyClock Lite limits you to two regular routines (both versions can only have one temporary, or self-deleting routine at the moment).
  • HeyClock lets you turn off the "Hey!" at the start of every spoken message if you want; it's permanently set in HeyClock Lite.
  • HeyClock also lets you customize the first half of the spoken message- what comes before the time. In HeyClock Lite, the message always starts with "Hey! The time is now..."
  • When using Low Power Mode, HeyClock lets you save up to three different "home locations" where your routines will trigger normally. In HeyClock Lite, you can only save one.

That's it! Everything else about HeyClock Lite is exactly the same, so if you're not sure if you'll get good enough GPS reception at the locations you plan to use HeyClock the most, try out the Lite version first and make sure it works the way you want.

I've got an idea for HeyClock that could make it better; will you add that feature?

Maybe; tell me about it!

I've already got a list of tweaks and features I'm planning on adding in when I get around to HeyClock version 2.0 (which will have to happen after the Android release). At the moment, the main features on that list are:

  • Support for other languages and locales
  • More than one self-deleting (temporary) routine
  • The ability to sort and filter routines on the home screen
  • Changing a routine's name after it's already been saved

But if you've got any other ideas or suggestions, I'd love to hear them!

Something doesn't seem like it's working right, can you help?

The number one step is always going to be "turn it off and back on again."

Try closing HeyClock (actually closing it, not just sending it to the background) and opening it back up. Still not working?
Try restarting your phone- it is just a mini computer after all, and computers don't work so well when they go too long between reboots.
Could it be that you're just not getting any GPS pings where you are? Open up a map app and see if it can find your location; maybe you're just somewhere that GPS satellites can't reach.

If you've tried all the easy stuff and you're still having problems, contact us about it (don't necessarily uninstall and reinstall the app just yet- if you do that, it'll delete all your routines!). We can walk you through entering a special diagnostic mode that will let you send a log file of what HeyClock has been doing internally; hopefully that will help narrow down the cause of the issue! However, that log file will include information about your routines, so if their names include things like medications, people's names, or other sensitive information you don't want us to know about, you should delete the routine a day or two before entering the diagnostic mode and sending in the logs.

What kind of devices is it compatible with?

Technically, it should work on any Android device running Android 5.0 (Lollipop) or newer. However, it's really only formatted for smartphone screens, so tablets and other devices may not display everything properly.

How does it work?

HeyClock uses your phone's built-in alarm clock software to create its own speech events that will trigger at some point in the future.

As opposed to Apple, Android lets apps schedule events to be triggered in the future. However, the timing of these events is usually manipulated by the phone's system in order to preserve battery power- when the phone is in sleep mode, it "saves up" all of the events that need to occur within a window, and executes them all at once. This way, the phone isn't constantly waking up out of sleep mode to perform inconsequential little tasks.
Unfortunately, the nature of the HeyClock tasks means that they can't be subject to rescheduling- they need to trigger when you tell them to, no more than a couple seconds off. To accomplish this, HeyClock uses the same code that the phone uses to schedule Alarm Clock alarms, which is built into the system to bypass this "sleep mode maintenance window."

So now my phone is going to have a bunch of extra alarms set?

None that you'll notice! HeyClock's "alarm clock" alarms are sometimes visible on the lock screen, but don't actually trigger the phone's Alarm Clock.

They just use the same codebase that the Alarm Clock uses. You won't notice anything different from your alarm app when you go to look at your current alarms, but the lock screen uses a function to check the time of the next alarm from within the system. This means that it will show you the next time the Alarm Clock code is supposed to trigger, so you might end up seeing the next HeyClock alarm there instead if it occurs before your next Alarm Clock alarm.

My alarms don't seem to be going off regularly if the screen has been off for too long- I thought HeyClock was supposed to work during sleep mode?

Each smartphone model and manufacturer handle sleep modes differently, since memory and battery are hardware resources rather than software. You might have to tweak a few settings if your alarms aren't working right.

In most cases, HeyClock's default settings should "break through" the phone's sleep and low-power settings. If not, though, there are a few different HeyClock and phone settings you can tweak:

  • Schedule Alarms Automatically After Power-On or Reboot: this option in the HeyClock settings page defaults to "on," but you might want to check on it if you notice that your alarms aren't going off after your phone has been restarted. Restarting the phone clears out the alarm clock code- the system reschedules your Alarm Clock alarms, but anything else that was depending on that code will need to be rescheduled by the appropriate app. With this setting on, HeyClock watches the system for a reboot, and once the device has finished powering up and initializing everything, it will automatically reschedule your next alarm.
  • Sleep Mode Settings -> Battery Optimization Settings: the Android operating system has its own internal sleep mode called "Doze," which is only available on phones since version 6.0 (Android Marshmallow). The alarm clock code should bypass this, but if you're seeing issues, you can use the button from the HeyClock settings page to go to the Battery Optimization Settings menu on your device and change HeyClock to "disabled" mode. This will prevent HeyClock tasks from being affected by battery optimization timing.
  • Dummy Alarm timing: If you're still having issues, then it's probably due to some sort of power- or memory-saving mode specific to your phone's model or manufacturer. HeyClock will trigger a silent speech event a few minutes before your actual alarm is set to go off, if your next alarm is more than a certain number of minuts away. This ensure that the phone is active and the text-to-speech service has been initialized. However, if the phone "falls back asleep" between the dummy alarm and the real alarm, your real alarm may not go off. In the HeyClock settings page, you can adjust the timing of this dummy alarm.

The HeyClock voice doesn't sound very good. Can it use the OK Google voice instead?

Unfortunately, no. That voice doesn't act like the other text-to-speech options, so isn't available for an app like this. But there are lots of other voices you can download from Google for free!

If you're using a phone that has its own built-in text-to-speech options (like Samsung's Bixby, for example), you're probably pretty limited when it comes to customization. You can change your phone's text-to-speech engine from your manufacturer back to "Google Text-to-speech Engine" for hundreds of other voice options.
Different Android versions might have the menus named slightly differently, but for most phones, you should be able to reach this menu from Settings -> Accessibility -> Text-to-speech output -> Preferred engine.
Once you're set to the default Google Text-to-speech Engine, you can click on the settings button next to the engine, and then "install voice data" to select from lots of other voices. HeyClock can only uses voices associated with your phone's current language setting, but there are often other voices and accents for each language. For example, when your phone is set to English, HeyClock can access voice data from Australia, India, Nigeria, the UK, and the US.

What's HeyClock Lite? What are the differences between that and regular HeyClock?

HeyClock Lite is free and has limited customization in comparison to the full version of HeyClock, which is $1.99 on the Google Play store. It's designed so you can try it out a little bit before spending money on the full version, but if you find that you don't need the bells-and-whistles that the paid version would offer you, feel free to just keep using HeyClock Lite instead!
HeyClock Lite has some extra little icons (looking like little piles of coins) over the features that are limited in the free version:

  • HeyClock can save as many regular routines as you want, whereas HeyClock Lite limits you to two regular routines (both versions can only have one temporary, or self-deleting routine at the moment).
  • HeyClock lets you turn off the "Hey!" at the start of every spoken message if you want; it's permanently set in HeyClock Lite.
  • HeyClock also lets you customize the first half of the spoken message- what comes before the time. In HeyClock Lite, the message always starts with "Hey! The time is now..."

That's it! Everything else about HeyClock Lite is exactly the same, so if you're not sure if your phone supports text-to-speech or think it might have an overly-aggressive sleep mode, try out the Lite version first and make sure it works the way you want.

I've got an idea for HeyClock that could make it better; will you add that feature?

Maybe; tell me about it!

I've already got a list of tweaks and features I'm planning on adding in when I get around to HeyClock version 2.0 (which will have to happen after the Android release). At the moment, the main features on that list are:

  • Support for other languages and locales
  • More than one self-deleting (temporary) routine
  • The ability to sort and filter routines on the home screen
  • Changing a routine's name after it's already been saved

But if you've got any other ideas or suggestions, I'd love to hear them!

Something doesn't seem like it's working right, can you help?

The number one step is always going to be "turn it off and back on again."

Try closing HeyClock (actually closing it, not just sending it to the background) and opening it back up. Still not working?
Try restarting your phone- it is just a mini computer after all, and computers don't work so well when they go too long between reboots.
Could it be that you're just not getting any GPS pings where you are? Open up a map app and see if it can find your location; maybe you're just somewhere that GPS satellites can't reach.

If you've tried all the easy stuff and you're still having problems, contact us about it (don't necessarily uninstall and reinstall the app just yet- if you do that, it'll delete all your routines!). We can walk you through entering a special diagnostic mode that will let you send a log file of what HeyClock has been doing internally; hopefully that will help narrow down the cause of the issue! However, that log file will include information about your routines, so if their names include things like medications, people's names, or other sensitive information you don't want us to know about, you should delete the routine a day or two before entering the diagnostic mode and sending in the logs.

Copyright © 2019-2020 Hold My Beer Technologies. All rights reserved.