I’ve just been struck by a simple idea that will most likely fix what many have been referring to as “iMessage overload”, i.e. how all of your devices notify you of incoming iMessages. It gets quite annoying, especially if you own an iPhone, an iPad, and a Mac (or many!). So I thought I’d share.
The operating systems that run on these devices, iOS and OSX, have a built-in idle timer. In other words, they can detect if and when you’re actually using a certain device. That’s how iOS devices auto-lock after a certain time you’re not using them, or how your screensaver kicks in in OSX.
I propose we use the idle timer to decide which devices should alert you if an iMessage arrives. iMessages should always be pushed to all of your devices, but the notification (sound/popup/badge/icon bouncing…) will only be delivered on the one you’re actually using.
Let’s say we consider a device to be idle for iMessage after 5 minutes in which no interaction occurs with it. So even if the device’s screen is on, after 5 minutes it’s considered idle.
We would only notify the user on the devices that are not idle. If all of your devices are idle, than we’ll notify you on all of them, including notifications of iMessages that have been pushed but not yet read.
Here’s an example. You’re sitting in your couch, watching a movie on your 27″ iMac. Your iPhone is in your pocket, and you’re iMessaging on your iPad. You probably haven’t interacted with your iMac in a while, so your iPad will the only device considered active, and that will notify you. All is good. But the movie ends, and you leave your house, carrying only your iPhone with you. Now consider the following scenarios:
- You check the time on your iPhone while leaving the house. Now, and for the next 5 minutes, both your iPhone and iPad will be considered active. For 5 minutes, they’ll both notify you of incoming iMessages. You don’t really care, because your iPad is at home. After 5 minutes, your devices back at home will be quiet and you’ll still be notified timely on your iPhone.
- You leave your iPhone in your pocket while leaving the house. For 5 minutes (at worst) you won’t be notified of iMessages unless you touch your iPhone (just checking the lock screen for notifications, without unlocking, would be enough). But, as soon as your iPad becomes idle, you’ll receive notifications for all the iMessages that you missed right on your iPhone (and Mac), and by reading one you will make your iPhone the only active device, which means that future iMessages will pop up on your iPhone only.
I believe this approach would mitigate the issue so much that most people won’t even worry about it, or realize it’s an issue at all. Technically, it’s just a matter of storing the IDs of your active and idle devices on iCloud, something Apple can surely do while blindfolded. Worst case scenario, you will be notified of incoming messages 5 minutes late. If you’re really anxious about an incoming message, just check the lock screen and you’ll be notified in an instant – the messages are already there.
Why 5 minutes? It sounds like a reasonable balance: receiving iMessages 5 minutes late is not a big deal, and if you haven’t used a device for 5 minutes it’s pretty safe to declare it idle. I’m sure Apple can find a better timeout if needed. They could also use the auto-lock times you specify on your iOS devices to give you some control over this, or the screensaver timeout on OSX.
What do you think? Am I missing something here, or is it that simple to fix this?
Update: Sure enough, Apple started doing basically this shortly after I wrote this article. Their magic number, however, is ~10 seconds. In hindsight, 5 minutes is way too long, but 10 seconds still feels too short - too many times I received a notification on my Mac while I was reaching for my iPhone. I’m curious to see if they’re going to adjust that number in the future.