Useful Mac apps for Software Development
654 words, 4 minutes

Over the years I’ve honed my Mac setup with a collection of useful apps and utilities specifically to get my work done. My work is in backend software engineering for IoT applications, networking and distributed system software design, with occasional excurisions into frontend stuff.

It’s really just a collection of tools that make my workflow tick on a Mac, and why I strongly prefer it over Windows or even Linux machines. All operating systems have their quirks and annoyances; my preference is for the one that I can work around so that the OS gets out of the way.

There’s many apps to list, some of which I’ve omitted like VS Code or draw.io since they’re almost universally known, so are some I’ve seen fewer mentions of before.

AlDente

AlDente is a battery management utility to set maximum charge limits. Since I’m working at home and plugged into a charger and external monitor almost all the time, this is useful for protecting the longevity of the battery.

Maccy

Maccy is a clipboard manager which supports images, keyboard shortcuts, and search, which makes it the most functional one I’ve tried. It also happens to look slick, have native performance, and is OSS too.

Sensible Side Buttons

A pretty ridiculous shortcoming of MacOS is how poorly it supports mice that aren’t the ergonomic nightmare Magic Mouse. One of those shortcomings is that back and forward buttons - which are on almost all mice these days - don’t work. Sensible side buttons is a simple utility that fixes that.

Scroll Reverser

The second glaring issue with external mice is that the scroll direction by default on Macs is ’natural’ where you swipe up to move down, and vice versa, mirroring the experience on mobile apps. This is fine for the trackpad, but that’s the opposite of how a mouse scrollwheel has worked for almost 40 years, but there’s no way of setting that individually for the trackpad and a mouse. Scroll Reverser lets you do that. As a user of a Macbook in clamshell mode, this is a godsend.

MonitorControl

Another annoyance with clamshell mode, or desktops in general, is controlling monitor settings. With a laptop, the convenience of adjust display brightness is a given, but for desktop displays, for some reason it’s not. MonitorControl uses the Display Data Channel (DDC) via the HDMI/DisplayPort connection to control a monitors OSD functions from the host computer. Now with a keyboard shortcut or menu bar click, I can control monitor brightness, contrast, (and volume as I’ve hooked that up) as needed throughout the day.

Rectangle

Window management on MacOS lags behind Windows and most Linux DEs, even though the correct solution is obvious. Perhaps there’s too much pride in straight up copying it. There’s a few apps that all seem to work well and generally have feature parity - Magnet and BetterSnapTool are often mentioned but Rectangle is well-maintained and OSS donationware.

Fork

Personally I find GUI clients indispensable for more complex scenarios like merging and rebasing branches with lots of conflicts. Fork’s only real competition in my view is Sublime Merge, but I chose Fork because the GUI is clearer to my eye (Sublime Merge is all in on the ‘flat’ look) and the license is cheaper.

Pika

Something that’s super useful for frontend work is a colour picker, which tells you the exact colour of anything on your screen. Pika is open source and has a slick UI.

Boop

Boop is like notepad on steroids. My workflow often involved me using VS Code as a scratchpad for temporarily dumping and transforming text; my team would do the same with Notepad++ on Windows. Boop has built-in commands like URL encoding, stripping whitespace, base64 encoding, even JWT decoding. It starts up almost instantly too, saving me countless times where I’d google for base64 decode to look at certificate or something and having to paste it into an online site.