Apple’s Xcode is a great tool, fundamental to every iOS and Mac developer’s tool belt. But many developers wear such a belt for plenty of reasons, none of which involve pants—they need additional tools that fit their personal workflow, integrated ways to write documentation, or bridges to external systems and services, to name a few.
There are a lot of great developer tools out there that can really give your belt that master-builder shine. Here are some favorites from Mobile Makers Academy instructors and learning assistants, in no particular order:
hdoria/Xcode-themes: Has more interesting font and color selections, my personal favorite is ScratchArt. I like to have many options for the coloring of my code, so this gives me a sufficient number to choose from.
FuzzyAutoComplete: Gives autocomplete options for any class/property/method that contains typed word anywhere in their name, not just at the beginning. It can make it easier to autocomplete methods and properties, as you don’t have to remember the start of the method or property name, but as long as you remember words included in it, you can easily find it.
VVDocumenter: Nice plugin for writing documentation in code. Just type /// before any method, and it lays out documentation with all the parameters, returns. Convenient tool when writing a lot of documentation in code, lays out the format very easily.
Travis-CL: One of the best continuous integration solutions out there (especially for open-source projects). Automatically gives you unit test results on the github pull-request page. Super cool and free for public repos, but pricey for private repos.
Charles: Web debugging tool that lets you inspect any network calls and their responses. Amazing for dealing with any possible API related issues. Also the icon sort of looks like a chamber pot, which is always fun.
oh-my-zsh: Open source zsh configuration that helped me fall in love with terminal/github. Plenty of hidden features that I’m still finding after 3 years of using it every day.
Prepo: I don’t have time to try and size my assets/icons appropriately for Xcode, that’s why I love Prepo. Drop in the 3x version of any asset, and it spits out the 2x and 1x. Drop in the 1024px icon, and it spits out every size you need for submitting to the app store.
Simpholders: No more digging for your iOS Simulator’s Application Directory with Simpholders. This simple utility keeps them in the top toolbar for easy access.
SQLite Browser: The only data browser I could get to work for examining my coreData sqlite files.
DTerm: DTerm is a magical little unobtrusive app that, when triggered, opens up a condensed, floating terminal session in the directory from which you triggered it. So, if you’re in Xcode editing a file, you can trigger DTerm and it will open up this little Alfred like terminal session in the directory of that file. This is perfect for doing little git commands without ever leaving Xcode and without ever mousing around. For those who are keyboard driving, like me, it’s a perfect companion.
Alfred: I use Alfred for documentation. I have a shortcut to the “I Feel Luck” Google search so that I can type in ‘l UITableViewController’ and immediately be taken to the Apple documentation for UITableViewController. I find the Apple web docs much more responsive than the Apple documentation in Xcode and I find this saves me a ton of time. Ok, maybe not a ton ;)
VVDocumenter: This makes it so easy to write well-formatted, custom documentation. By simply typing three slashes, it autocompletes the rest of the documentation template. And all I have to do is fill in the blanks.
This is especially advantageous in a team-oriented environment because it enables developers to document their code more frequently. This is why I highly recommend getting your entire team to use VVDocumenter.
Homebrew: This is an essential tool for being able to install applications that are used from the Terminal command line. It allows me to install and run thousands of applications I may need with a single line. The process is straightforward and hassle free. If I were to install command line tools myself, there are all sorts of management options I would have to maintain myself, which Homebrew takes care of for me.
TextMate: A text editor for developers! TextMate brings syntax highlighting for a number of different programming languages, which is handy for the times I need to make a quick change without having to load an IDE. While this does not have code completion, it does have a regular expression engine. This is important since regular expressions (or Regexes) are extremely useful for string manipulations in every significant programming language in use today.
IntelliJ IDEA: What is a Java development tool doing here!? For two reasons, the first being that IntelliJ IDEA is the foundation for Google’s Android Studio. Expanding your repertoire of mobile development skills is useful for the future growth of both your skillset and your bank account! The second reason is that you don’t necessarily have to learn Java language when you can develop with Scala - a mature programming language first introduced in 2003 that’s eerily similar to Swift!
oh-my-zsh: I really enjoy the ability to quickly see which branch I am on. It puts my mind at ease.