Customising Xcode

Customising Xcode

I've been using Xcode more and more lately after picking up a couple of iOS and OS X apps. For some reason though, it took me until yesterday to finally get around to customising the thing.

1. Alcatraz - Xcode's missing package manager

Every decent text editor I've used (read: Sublime Text, Atom) has had a good package manager to go with it — be it third party or native — and Xcode is no exception.

Alcatraz is an easy to install Xcode plugin that allows for quick install of plugins, themes and templates. Installing it is a simple as running a curl command and restarting Xcode.

curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

Once installed, Alcatraz can be accessed through the Window item in the menubar or via its keyboard shortcut of ⇧⌘9.

The main Alcatraz window

2. Plugins

Installing plugins through Alcatraz is a simple as clicking the button but finding the gems in that big list can be intimidating. Here are some of my favourites.

Backlight

One of the first things I do in any editor is find the setting to turn on current line highlighting. For some reason though, Apple didn't put this in Xcode (mega 😟).

Backlight solves this by giving you a couple of options under the Edit menu. Turn it on.

Backlight Menu Options

VVDocumenter-Xcode

I'll always try and document my code as best as I can but doing it in Xcode without (VVDocumenter)[https://github.com/onevcat/VVDocumenter-Xcode] is a right pain in the ass and is a total manual process.

Just type your /// as if you were gonna write a doc comment and VVDocumenter will kick in. It'll detect parameters and if your method returns a value and pop in the relevant placeholders.

VVDocumenter in action

ACCodeSnippetRepositoryPlugin

I'm constantly swapping between my iMac and MacBook while working on projects and I have a number of snippets I wanted to sync across them. Xcode doesn't include a way to do this out of the box but ACCodeSnippetRepositoryPlugin allows me to sync my snippets to a private repo on Bitbucket (or Github or Gitlab or anywhere) and keep them up to date across devices.

Woo! Snippet Sync!

FuzzyAutocomplete

Tired of writing tableView and the scrolling through a list of stupidly long verbose methods to find what your looking for? FuzzyAutocomplete allows you to search in the middle of method names for what you're looking for.

It's a great plugin and it's really surprising Apple didn't implement it themselves considering it takes advantage of one of their API's

FuzzyAutocomplete is king

3. Themes

The selection of themes included with Xcode is dire. I had a few themes that I loved on Atom and use daily for my web dev work. The most used is one called Space Gray and thankfully it's available for Xcode too!

Finally a decent dark theme!

There's bound to be a theme there you like, just have a flick through Alcatraz's list or search for one from another editor. Chances are, someone will have ported it.

Sadly though, the rest of the UI can't be made darker which is a bit of a pain. I don't want start white navigator or help panels!

4. Fonts

The last thing I usually do when customising an editor is change the font size and line-height. If you're gonna be staring at a screen for 7+ hours, you want it to be comfortable.

Astonishingly you cannot increase the line spacing within Xcode. The only way to do it is to install another font with additional spacing manually added to it. Thankfully, Meslo exists and has a few different line sizes.

The L version is just enough though it would still be nice to increase this a little more.

✌️

I'm glad I took half hour out to make the changes as Xcode finally feels more familiar. Oh, and I found ⇧⌘O too! Dunno how I missed the memo on that one.

Say Hello! Did I miss an awesome plugin? Tweet me @steve228uk or drop me a line 👀