Using a hardware controller for your debugger

Back when I was active recording my own music (SoundCloud for the curious) I always used a hardware knob to navigate and control Logic.

It was a very simple device (a knob which is also a big button) but incredibly useful. So I thought: if it was so wonderful with music software, perhaps it can useful on an IDE!

My main problem was the constant switching between clicking the simulator (or taping a real device) and typing the common two-handed shortcuts you need while debugging in Xcode: pause, step over, step into, etc.

Controller Options

I browsed MIDI controllers and video control surfaces, and bought a Contour Shuttle-Xpress after a little research. It's small, inexpensive and comes with a dial and more than enough buttons.

Shuttle-Xpress

Other options I considered were:

Layout

Next thing was just to configure my most used shortcuts and tune a little bit that configuration after some use. This is the layout I'm using right now:

Button Action
Big Left Button De / Activate Breakpoints
Left Button Add Breakpoint at Current Line
Central Button Debug - Pause
Right Button Debug - Continue
Big Right Button Debug - Step Into
Jog Wheel Up Arrow / Down Arrow
Springy Wheel Debug Step Over / Out

Results

Definitively worth it!

It's probably not as powerful as it is for video or music software, but it makes debugging more comfortable, and at 40-60 USD it's worth a try.

Of course, you could also set different shortcuts, but the easy ones are already assigned, and if I really wanted to stretch my hands I would instead try to play something from Rachmaninoff.

Happy debugging!