Few weeks ago I had few free hours and hacked together a quick SwiftUI app that uses saagar’s unxip package to quickly unxip Xcode downloads.

You can use saagar’s command line utility but I’m one for neat UIs so I wanted to have something to click around. Today I wrapped few loose ends and pushed the code to GitHub here: icanzilb/Unxippity.

Here’s a very quick walkthrough the app.

Note: This is a very quickly put together app experiment, use caution when using it.

Starting the app

Clone and run the app — you will see a warning that the app wants to monitor your ~/Downloads folder, allow that:

Next, you will see the initial “empty” state of the app window:

You can drop an already downloaded .xip file onto the window and start unxipping but the more interesting workflow is to go to https://developer.apple.com/downloads and start downloading a .xip file.

Unxippity will detect the ongoing download in your ~/Downloads folder and automatically show the progress:

Here you have the chance to configure the actions you want performed once the download finishes. You can choose the download destination (it’s all I ever wanted really) and additionally choose from a pool of extra options like deleting the archive, playing a sound, etc.

Once the download completes, the app will begin unxipping the file to the target destination:

If you already have your favorite unarchiving settings pre-set from a previous time you downloaded Xcode you literally don’t have to click anything in the app UI. The window is just there to let you know what’s going on and how far in the process you are.

When the unxipping has completed you can just double-click that Xcode bundle and get started:

macOS will still need to verify the new app bundle for few moments and you’ll be good to go!

I’m sure there are some rough edges but it works sufficiently well to make my own life a little easier, check it out at: https://github.com/icanzilb/Unxippity.

Debugging code

If you’re playing around with the app, open Config.xcconfig in the Xcode project and uncomment the OTHER_SWIFT_FLAGS = -D UITESTING line. When you start the project the app will simulate the complete flow for you, in case you’re fixing UI bugs or adjusting stuff.

That’s all for today!

Get in touch at https://mastodon.social/@icanzilb.