Fixing Messages for OS X

Now that Apple has released the Messages for OS X beta software, it’s possible to be able to send and receive iMessages on my computers alongside all the iOS devices in our house. It makes it very convenient to be able to continue conversations while moving from device to device, but it also creates a situation where a chorus of alerts come from all corners of the house.

I’ve come up with an easy, simple plan for Apple to remedy this. It goes back to something that’s existed since the early days of instant messaging programs: the status. If you’re from the instant messaging generation, you know what I’m talking about. The IM status was the original Twitter; a place to let your friends know what you’re currently doing or post a short funny joke. This plan could give it an important encore.

If Messages is running on my Mac, and my status is Available, any iMessage I receive should only alert me on my Mac. The messages should still go to my other iOS device(s), but without an alert.

If Messages is not running on my Mac, then everything should function on my iOS devices as it does currently.

The glory of the system shows itself when Messages on my Mac is set to away. The messages continue to go to the Mac, but the alerts are turned back on for all my iOS devices. This all seems pretty elementary, but once you couple this setup with the ‘Set my status to Away after the computer is inactive’ setting in the Messages preferences, you’ve basically covered any situation where you walk away from the computer. If your phone rings or you need to run to the store, you pick up your iPhone and leave and a few minutes later, your computer sets Messages to away. Apple’s iMessages server is notified [I'm sure Apple would ask for permission to receive your Available/Away/Offline status], and your alerts automatically kick back on, where you can hear them in your car or out walking the dog.

That would narrow the off-the-grid grace period down to whatever the arbitrary inactive time is for OS X. I don’t know if this interval is tied to the screen saver, some other setting, or the whims of the OS, but it wouldn’t be hard to create an explicit setting for it if necessary. Regardless, it seems significantly better to me than what we’ve got with the beta version of the software, and it seems much easier to implement than any high tech bluetooth proximity systems or other overly complicated solution I’ve been able to dream up since it came out.

About Scott Allen

Scott Allen is a web developer from Indianapolis, Indiana. He has been working with PHP/MySQL and Flash/Actionscript since the late '90s, and has extensive experience in database design and development, server-side scripting, and front-end user experience, especially in the creation of educational content. Connect with Scott on Twitter, Facebook, or Google+
This entry was posted in Apple, Tech and tagged , , , , , . Bookmark the permalink.

18 Responses to Fixing Messages for OS X

  1. Andy Magoon says:

    Trillian does this with its continuous client feature; you are only notified on your active device, but your conversations (and history) are cloned everywhere.

  2. Ben Rosengart says:

    Thoughtful.

    But what about when I’m lounging on the couch with my iPad, IMing with my wife? My phone will still make noise whenever she replies to me, because I’m “away” on the Mac.

    • scott says:

      Yeah, my idea doesn’t quite cover that situation as is. I think it could be dealt with, but some of the solutions might involve giving up privacy that users aren’t willing to give up; like, if a particular device is awake and/or currently using Messages. Apple could alternatively add an Available/Away status to iOS, but that doesn’t really seem like their style. (Don’t get me started on not being able to silence/unsilence all notifications with one switch anymore.)

  3. DV Henkel-Wallace says:

    This opens up a race condition: you get up to walk the dog and a message comes in immediately. It will go to the mac though you’ve left the house since the mac won’t yet have decided you’re away. Perhaps iPhone could notice if the mac is within bluetooth range and not signal the arrival of a message (audio & notification).

    Anyway you still want the message in both places since you might see it on the mac, walk out the door, and answer it on the go.

    What IS more annoying is the primitive integration of mac and iPhone apps. By example ( in the message case): the unread message badges should update on one device when you read a message on the other. Why can you delete messages only on the iPhone (not that it deletes them in iMessages).

    And imessage/messages is hardly the worst offender.

    • scott says:

      I mentioned in the post that this plan would create an issue with the “grace period” from when you walk away to when Messages goes to auto-away. I don’t think there’s an automated way to fix that. In a perfect world, I’d agree that the Bluetooth thing would be killer, but in my experience, Bluetooth pairing always seems to be quirky or drain my battery much too quickly for me to use it.

      • Someone says:

        Simple solution: Say the idle period is set to 5 minutes. As soon as the Mac goes idle (and tells the server), if any messages were received in that 5 minute window, have the server ping the iPhone and tell it to do an alert for that message.

        (Ah the magic of vertical integration.)

  4. Nathan Ziarek says:

    I don’t mind the notifications so long as they clear—when I’ve read the message on my Mac, it should be marked as read on my iOS devices and the notifications cleared. This solves the problem of me being available at NONE of my devices and having to come back to the stream of missed messages on each device.

    Your idea has merit, though. Could it be extended? So long as Apple knows which device I’m currently on (iMessage open on my phone, iMessage marked as “active” on the Mac), only display the notifications on that device.

    Whatever the solution (and I think they all sound completely technically feasible), something has to give. iMessage verges on JUST SHUT UP way too often.

  5. Valan says:

    The solution and the problem stems from the device in use and those that are not.

    The OS needs to know which devices are in use and which are dormant.

    It could use the accelerometers or the lock screen. If no devices is active and all things being equal then they all chime.

  6. smitty says:

    Growl/Prowl does this. If an application sends a Growl notification and the computer is idle for a number of minutes, it gets handed off to Prowl on the iphone. No duplicates and works very well.

  7. Alan Mooiman says:

    Messages already does this sort of thing for me. While I haven’t done deep testing, upon seeing this I checked again, by sending a message to a friend from my iMac. When she responded, it only showed up on my iMac, and we had a few back and forth exchanges. Sometimes the chat window was at front, sometimes it wasn’t, but my phone (sitting right next to the computer, still getting push notifications from things like e-mail and apps) didn’t do a thing for the messages. Of course, upon opening the Messages app, there they were. And when I quit Messages on my Mac, they are delivered to the iPhone, which alerts me. Is this not how it behaves for others?

    • scott says:

      For me, it always pops up on my phone for a split second before it goes away, which also sets off the vibration. I never have the sound on my phone on, so I don’t know for sure that the audio alert would fire, but I am assuming it would.

  8. Pingback: loud noises » Fixing the iMessage notification explosion

  9. Samantha says:

    I think that Apple could fix this by checking for activity on devices. For example; when your display is sleeping, or when there is no movement, checked by reading out the accelerometer and/or three-axis gyro sensors (depending on the type of device) then it could sound an alarm on the device that is moving, or on all when non of hem is moving.

    I would also like to add a scheme enabling me to prioritize a device, so that only my iPhone sounds the alarm when both my iPad, iPhone and or MacBook Pro are on the move. The default in this scenario should be the iPhone, at least for me, as that is the most likely one to trigger my attention when I am traveling. But even then they could read out the sensors.

  10. MarcC says:

    Great ideas! Apple can implement this a number of ways; but each would present problems. Bluetooth and Wifi checks are possible but sometimes the computer is running and the iPhone much more accessible. Same with gps checks. Apple could at the least do the minimum and turn off iMessage notifications on the iPhone when it is docked on our mac.

  11. Hun Boon Teo says:

    Imagine you are the Apple developer, how are you going to handle the following exception situation:
    1. Sender A (on Mac or iOS device) detects that receiver B is active on Mac and away on iPhone
    2. Sender A program sends message to receiver B’s Mac as alert.
    3. Receiver B receives on Mac and program sends a acknowledge message to Sender A but connection is dropped indefinitely before it can be sent out
    4. Sender A program does not know whether message is received on receiver B’s Mac
    5. So should Sender A program retry, send alert to iOS device ? If you send alert to the away iPhone, you as a user will complain this is a bug, I have received message on my Mac.
    6. Ok let say, the program decides that ok it will send to receiver B on iPhone as alert, it sends and received on receiver B and acknowledgement is sent but connection is dropped before it reaches sender A.
    7. Sender A program now detects iPad2 is active, should sender A sends to iPad2 as alert since it cannot tell whether it reaches iPhone as alert?
    8. So you see it can be a very complicated situation.
    9. You may say in reality it may or may not happen but when you develop the program, you have to think of how to handle all these exceptions. The devil is in the details.

  12. Tom Hume says:

    Surely between them your devices can work out whether (a) you are actively using your desktop, and (b) whether your phone is away from your laptop/moving/etc.

    Between the two of them, isn’t that enough information to work out whether you’re at your desk/laptop or away from it – and thereby where to best send messages? The idea of manually managing status sounds painful.

  13. Pingback: iOS Status Message | Scott Allen | Blog

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>