Yes, Remote Buddy just turned 10! Ten! That's literally a decade! Time to celebrate? Sure! But also a good time to look back at how Remote Buddy started - and how it got where it is today.
In February 2006, I invited a few close friends over to my place and at some point, we wanted to watch a DVD. Apple had just released the first Intel iMacs (which were also the first Intel Macs ever) and with it came the white Apple Remote and Front Row. So I carried the iMac over to the living room, turned it on and inserted the DVD. DVD Player opened and started playing the DVD in a window.
What I actually wanted, though, is play this DVD in Front Row. But with just the remote, there was no way to get there: I couldn't eject the DVD with the remote, I couldn't quit DVD Player (to then initiate playback in Front Row) and I couldn't even make DVD Player full screen. Instead, my only option to get what I wanted was to also bring over and connect keyboard and mouse.
Clearly, this wasn't what I had expected, so I started thinking about what it'd take to make the Apple Remote more useful and overcome the limits I had just experienced. Months later, I'd end up with what was essentially a blue print for Remote Buddy.
Let's do this!
In May 2006, I eventually decided to pull the trigger. I gave myself two weeks to complete a first version. Which was both the maximum amount of time I could spend on it and - as I'd soon realize - very optimistic.
So I put every waking hour into furthering the project - and eventually skipped sleep altogether the night before my self-imposed deadline hit in order to have a website up and running in time for Remote Buddy's first release.
Two weeks after I had started, I was completely exhausted, but had actually finished a first preview release and put it out there.
This is what the menu looked like in early Remote Buddy releases (2006).
The preview was very well received and covered by most of the major Mac news sites at the time. So much so that my web server collapsed multiple times that day.
Support for other remotes (June-October 2006)
Within weeks of the first release, I started to add support for additional remote control hardware upon popular request. Over time, the list of supported hardware grew significantly and allowed Remote Buddy to reach a much bigger audience.
Wii Remote support (December 2006)
Shortly after Nintendo started selling the Wii in Europe, I bought a Wii Remote and added support for it to Remote Buddy. For several years, the low latency and high reliability of the Bluetooth connection combined with the Wii Remote's mouse mode (driven by its integrated IR camera and accelerometer) made it my favorite remote to control the Mac. Outside the living room, it also found its uses in education and interactive art installations.
2007 demo video showing Remote Buddy's Wii Remote support in action. Since Wireless Sensor Bars (which are just a set of constantly lit IR LEDs, really) were still hard to come by at the time, I used a tea light as a reference IR light source for the Wii Remote instead (the black device on the right side oft he MacBook Pro is just a harddrive housing my iTunes library).
Replacing Apple's IR Receiver driver and creating the first Apple Remote emulation (April 2007)
As time progressed, more and more apps were adding direct support for the Apple Remote. Which created two big problems for a solution like Remote Buddy.
First, since only one app can get access to the Apple Remote's button press events at a time, Remote Buddy would often not be able to get access to the Apple Remote at launch time - or at all.
Second, many of the apps would offer certain functionality only in response to Apple Remote button presses.
Going forward, I had to find a way to ensure Remote Buddy would always get access to the Apple Remote and keep specialized Apple Remote functionality in apps reachable, preferably in a configurable way and also via other remote controls.
Achieving these goals eventually involved writing a complete, alternative driver for Apple IR Receivers and an Apple Remote emulation.
Thanks to the driver, Remote Buddy can since get guaranteed access to all input events. Even better, it can get the raw button press and button release events. That enables a much more responsive experience than what was previously possible using Apple's driver (which filters and delays certain button presses).
And thanks to the emulation, Remote Buddy can since pass through button press events to other applications and simulate Apple Remote button press events in response to any button press - including those happening on a different remote.
AJAX Remote - the first remote app for iPhone (July 2007)
In 2007, the iPhone launched - without an App Store. Instead, Apple proposed a "sweet solution": build web apps!
AJAX Remote then, was the first (web) app, served by a built-in HTTP server (developed specifically for Remote Buddy) that provided control over a big number of Mac apps and system functionality via the iPhone.
Released within a few weeks after the iPhone's debut, it already included remote control, trackpad, keyboard, Remote Buddy menu, EyeTV, Movie Library and iTunes modules. A Camera module would follow shortly after.
The iTunes module and its ability to control AirPlay speakers (called AirTunes back then) in particular quickly became highly popular as it brought together several key Apple products (Mac, iTunes, iPhone, AirPort Express) and provided a single interface to control them.
Seeing how well these products could play together, I fully expected Apple to sherlock the idea and eventually offer an iTunes Remote app of their own. What I did not expect, though, was that it'd be in the App Store the day it opened.
And maybe it's just me, but Apple putting such an emphasis on their remote app being "the free app" still strikes me both as an unnecessary burn and unique in Apple's history.
Going retail (February 2008)
In February 2008, a special Remote Buddy Premium Edition went on sale in Gravis retail stores across Germany.
The Premium Edition shipped in a shrink-wrapped DVD box containing a professionally produced CD and a printed license card. The CD also contained a set of video tutorials exclusive to the Premium Edition.
Support for Plex (August 2008)
On the Mac, if you're serious about controlling Plex with a remote, you do it via Remote Buddy. And it all started back in August 2008.
Plex had just been released two months ago - and Remote Buddy was already adding support for it. Since then, Plex users have a lot of choice regarding the remote control they want to use, as well as an easy way to configure their remote's button mapping.
Always striving for the best possible and most robust integration with other apps, Remote Buddy has since learnt to talk Plex' UDP protocol and been expanded to support new generations of the Plex app that have come since - including Plex/HT, OpenPHT and Plex Media Player.
Remote Buddy drives a huge telescope (August 2008)
As a software developer, emails from people who've found impressive uses for my software far outside what I myself considered possible really make me happy. Over the past decade, I've been blessed with many such emails - and they've really helped in keeping the motivation up.
One of those mails came from John Kuehne, who shared that he was able to control the 2.1m (82") Otto Struve Telescope at McDonald Observatory using an Apple Remote and Remote Buddy. His setup used Remote Buddy to translate the remote's button presses into actions that controlled the Track82 software used to control the observatory.
Remote Buddy and the Apple Remote allowed John to replace a big box on a long wire whose buttons can't be changed with an ergonomic, small IR remote that could be used from the control room and be configured to what was currently needed.
Remote Buddy's driver becomes Candelair, fixes Snow Leopard (October 2009)
When OS X 10.6 shipped in August 2009, it included an Apple Remote HID device that no longer supported the exclusive access needed by third-party apps. Unlike before, any button press on the Apple Remote would now trigger both the default OS X and the app's action at the same time.
Remote Buddy, shipping with its own driver since 2007, had not been affected by the change, and at the time was the only option to reliably use the Apple Remote with 3rd party apps under OS X 10.6.
When OS X 10.6.1 came and went without addressing the issue, there seemed - given the extent of the public outcry - little hope that Apple would address it in the future. Having the means to offer a fix to the issue, I decided to help out by releasing a stand-alone version of Remote Buddy's driver - since known simply as Candelair.
Early version of Candelair running under OS X 10.6 (Snow Leopard)
Alongside Candelair, I also decided to open source Remote Buddy's code for accessing the Apple Remote HID device.
The BSD-licensed HIDRemote class has since been adopted by popular apps like XBMC (now Kodi), Plex and EyeTV. It makes proper use of the OS X HID system, avoids any dependencies on driver internals - and even added a much-needed mechanism for apps to lend and return access to the Apple Remote among each other.
Previously, if a developer didn't want to do research and write their own code for Apple Remote support, pretty much their only choice was other open-source code that broke every couple of OS releases (as the driver internals it relied on changed), dropped button presses and - in the worst case - could give users the impression that the Apple Remote or Apple IR Receiver hardware were defective.
Apple eventually re-added support for exclusive access to its driver with OS X 10.6.2. Apps not using the HIDRemote class, however, remained broken and - once again - in need of an update to adapt to the changed internals of Apple's driver.
End of PowerPC support (May 2011)
While Remote Buddy had started its life in the age of Intel Macs, it had also been offering support for PowerPC processors.
But time and technology moves on and so, in 2011 – five years after Apple's switch from PowerPC to Intel – I eventually had to retire support for PowerPC Macs as I no longer had access to a test machine.
Hitting the Mac App Store (September 2011)
Announced in October 2010, the Mac App Store was soon seen as the future of distributing apps on the Mac by many.
I eventually decided to create a special "lite" version of Remote Buddy that fitted within the boundaries of Apple's Review Guidelines and call it "Remote Buddy Express". In May 2011, I uploaded Remote Buddy Express to iTunes Connect and hit "Submit".
After spending 102 days of soul-wrenching discomfort and uncertainty, it finally passed review and became "Ready for sale" in the Mac App Store in September 2011.
The AJAX Remote app (October 2011)
Disheartened by my experience with the Mac App Store review process as well as technical difficulties, I stopped development of a native iOS app and instead released an AJAX Remote app that made discovering, connecting to and using the existing web app easier.
Logitech Harmony Smart Control support (June 2014)
In June 2014, Remote Buddy gained support for the Logitech Harmony Smart Control, providing a new, compelling option to integrate a Mac HTPC with the rest of the devices in the living room.
Remote Buddy Mobile for iPhone, iPad and Apple Watch (November 2015)
In early 2015, the idea of being able to control Remote Buddy from the then upcoming new Apple Watch inspires me to take a new shot at creating a native iOS companion app for Remote Buddy.
Many months later, I'm putting the finishing touches on Remote Buddy Mobile, which turns an iOS device into a remote, trackpad and keyboard, implements one of the fastest (if not the fastest) screen sharing engines available on the platform, can manage apps and trigger app-specific actions. It also pioneers a privacy-respecting, location-based night mode - based solely on the user's timezone.
Remote Buddy Display for Apple TV (November 2015)
As rumors about a new Apple TV with a touch remote intensified, I began to think about what it would take to make a remote app for the new platform. What became very clear to me early on is that, in order for this to make sense, a Remote Buddy app for the Apple TV would have to be capable of streaming the Mac's screen content at high frame rates.
When Apple announced the 4th generation Apple TV with Siri Remote and an App Store in September 2015, I immediately went to work on Remote Buddy Display and initially made quick progress thanks to the groundwork laid by the development of Remote Buddy Mobile.
But when I ran the app on an Apple TV Developer Kit for the first time, it barely delivered two frames per second.
It took a lot of time and optimizations to turn this into the high frame rates of up to 60 frames per second that Remote Buddy Display is known and loved for today. At 1080p resolution, up to 500 MB of graphics data need to be compressed on the Mac, sent over the wire, uncompressed and displayed on the Apple TV - every second.
Submitted days before the Apple TV became publicly available, I had high hopes for Remote Buddy Display to be around for the launch of the new tvOS App Store and show what the new platform was capable of. Unfortunately, that didn't work out as it spent 14 days in review.
Remote Buddy's look over time
As Remote Buddy evolved from an Apple Remote-only app to a general remote control solution for the Mac with much richer hardware support, its icon needed to adapt to better represent its new capabilities.
Not satisfied with what I had put together in Photoshop myself for the early preview releases, I got in touch with Rory Prior (of ThinkMac), who then created Remote Buddy's first proper icon. Since then, the icon has been updated two more times following the introduction of major new features in Remote Buddy.
Just like the icon, Remote Buddy's menu looked a lot different ten years ago. While initially, the menu had a fixed size, it soon would dynamically adapt its width to display additional, contextual content. User interface elements like sliders and rating controls followed. And, over the years, as the look of OS X evolved, so did the look of Remote Buddy's menu.
A decade of free updates
It's crazy, but it's true: despite putting significant effort into the development of Remote Buddy for over ten years now, I've never charged for an update.
Thanks to everyone who has used and supported Remote Buddy over the past decade and thereby enabled me to work on this project for so long already. ❤️