Whether you’re just learning how to code, you’re studying computer science or you’re a well-seasoned Mac developer, these three apps are sure to help you in your work. I have an app that adds a whole slew of new features to the Xcode Simulator, one that makes it easier managing packages in Homebrew and a better way to download and install Xcode.
All of these tools are, themselves, open source. There are links to each GitHub repo where you can learn from them and compile them yourself.
Top 3 free and open source tools for Mac developers
Watch all of these in action in a video:
No. 1: Control Room for the simulator
The iOS simulator is a great tool for testing on devices you don’t own, but it has a limited feature set out of the box. Even if you have a plethora of iPhones to debug with, it’s good practice to test how your app works in different situations like poor cell coverage, revoked permissions, low battery or weird geographic locations.
That’s where Control Room comes in. It’s a handy app by Paul Hudson that supercharges the simulator. A simple user interface gives you graphical controls for all of the above and more.
You have two buttons to copy the clipboard into or out of the simulator — really handy for passing URLs or strings of text. One button triggers iCloud sync; I really wish more apps included buttons for that. There’s a text field where you can open an in-app URL (or deep link) to help you test specific areas of your app.
And of course, it has a screen recording feature to easily create videos and GIFs.
No. 2: Cork, a better package manager
Homebrew is a fantastic way to install all kinds of useful tools and packages, but running it from the Terminal can be cumbersome.
As with all command line interfaces, you’re going to forget the exact incantation necessary to do what you want. And if something goes wrong, you have to read through the sometimes inscrutible error messages that are lost amid the paragraphs of text that fill the tiny window.
Cork turns all of that mess into a simple GUI. You can see the list of packages installed in the sidebar. Click on one to see if it has dependencies with other packages on your system.
With one button, you can pin a package to a specific version to keep it from updating. I bet you don’t know that Terminal command off the top of your head. Click the refresh icon in the toolbar to check and update every installed package (except for those you’ve pinned).
Adding a package is much easier, too. Click the Add button in the toolbar. You don’t have to type in the name exactly right — it’s a search field, too. Type something in and you’ll get a list of possible results. Click Install to add it.
No. 3: Xcodes, for managing Xcode
No, that’s not a typo. Xcodes is a tool that manages which versions of Xcode you have installed, and with one click, you can change which one is your active version.
This can come in handy if you’re working on a few different apps targeting different OS versions. Perhaps you have an app in development for the next major iOS release in beta, but you need to continue releasing bug fixes for your other apps using the prior version.
You can filter to show Xcode betas and final releases. Click on any version to see in the Info pane which SDKs for macOS, iOS, watchOS and tvOS it supports.
You can turn on notifications when new versions are released and have them installed automatically.
If you download prereleases of Xcode from the developer website rather than the Mac App Store, you know that unxipping is often a long process — but Xcodes has a secret trick up its sleeve.
In Settings > Experiments, check Faster Unxip. This uses a special algorithm that takes full advantage of Swift Concurrency, lighting up all the cores on your Mac in parallel to achieve a 70% faster unxip. In my testing, on a Mac mini with M2 Pro, I got a 54% improvement.