GFX9.COM share Introducing alcatraz 1.0, you can download now.
What Is Alcatraz?
Alcatraz is a package manager for Xcode 5 created and maintained by Marin Usalj and Delisa Mason. You may be asking yourself "Why would I need a package manager for Xcode?" You may not know this, but Xcode supports plugins, custom project templates, and color schemes. Installing these packages isn't difficult, but it can become cumbersome after a while. Alcatraz solves this problem in a spectacularly elegant fashion.
Development of Alcatraz began in 2013 so it's been around for quite some time. However, support for Xcode 5 wasn't great, but Alcatraz 1.0 has changed this.
Alcatraz requires OS X Mavericks (10.9) and Xcode 5. Xcode 5 is a great improvement over Xcode 4, so if you're still working with Xcode 4, then now is a good time to switch to Xcode 5.
Another requirement of Alcatraz is that the Xcode Command Line Tools be installed. Installing the Xcode Command Line Tools is as simple as executing
xcode-select --install from the command line.
You have two options to install Alcatraz. The first option is to execute the following command from the command line.
curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
This command downloads a shell script from GitHub and executes it, making the installation quick and painless.
Alternatively, you can clone Alcatraz's repository from GitHub and build it in Xcode. Don't forget to restart Xcode after installing Alcatraz.
Uninstalling Alcatraz is as simple as removing the Alcatraz package in Xcode's Plug-ins directory. To do that, execute the following command from the command line.
rm -rf ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
Browsing and Installing Packages
Alcatraz not only makes it easy to install plugins, project templates, and color schemes, it's also easy to browse packages created by other developers. Just like CocoaPods maintains a specs repository, Alcatraz manages a packages repository, which you can browse using Alcatraz. Let's see how this works.
Fire up Xcode and select Package Manager from the Window menu. This should bring up Alcatraz's package browser. If you don't see the Package Manager menu item, then restart Xcode and, of course, make sure you're using Xcode 5+.
The real power of Alcatraz lies in what it does under the hood, so its user interface is simple and straightforward. Alcatraz shows a list of packages available to install. The icon in front of each package indicates what type of package it is and whether it's installed (blue) or not (grey). At the time of writing, Alcatraz supports plugins, project templates, and color schemes.
Installing a package is as simple as clicking the package icon on the left. To uninstall the package, you click the icon once more. It's as simple as that.
You can even see screenshots of a package by clicking the little eye icon when hovering over a package. This is especially useful if you're browsing color schemes in Alcatraz.
Clicking the little arrow icon on the right takes you to the package on GitHub or wherever the package is hosted.
Plugins and project templates are a great but undervalued feature of Xcode. Alcatraz does its best to change this. Some of my favorite packages include:
- Xcode Colors, created and maintained by Robbie Hanson, is fantastic in combination with CocoaLumberjack.
- Kent Sutherland has created KSImageNamed. This plugin adds autocompletion to
- I'm a big fan of Dash and the plugin for Xcode integrates Dash with Xcode. The plugin is maintained by Ole Zorn.
- CocoaPods has become indispensable for many Cocoa developers. There's a plugin that integrates CocoaPods with Xcode, which makes managing dependencies even easier. The project is maintained by Delisa Mason.
Alcatraz is the package manager that Apple forgot to include in Xcode. Plugins and custom project templates are surprisingly powerful and some of them have become indispensable in my workflow. If you're a Cocoa developer, then I strongly recommend that you check out Alcatraz. What are some of your favorite packages?