Much Loved Tools of an iOS Developer
According to family folklore, my great-grandfather insisted on always bringing his full toolkit everywhere he went. The joke was that as he was a tailor, his toolkit consisted of a needle and a thimble. I never thought it was particularly funny either, but I always appreciated the sense of frustration that a craftsman might feel when they have to undertake a job without their familiar tools around them.
Last week I experienced that exact feeling when my MacBook Pro was re-imaged and I had to start work on a project without the comfort of my favourite tools. While I was setting everything up again I decided to tidy up my notes and make this blog post to help me the next time I have to set up a new machine and to share some of my favourite tools and tweaks with others.
I’ll start with a couple of highlights and then I’ll list the other apps that I use everyday at the end of the article. Hopefully there will be something interesting for all Mac users, and maybe some Windows users will see what they are missing out on.
Alfred – Award-winning productivity application
First and foremost is Alfred – a Spotlight replacement and so much more. I like to use the ⌘-Space shortcut to activate Alfred, but for this to work I first need to change Spotlight’s shortcut (from System Preferences | Spotlight) to something else, like ⌥-Space. (Free, recommended upgrade for Pro features. http://www.alfredapp.com)
iTerm2 and Fish Shell – Improving the terminal
Instead of the OS X default of Terminal.app and the Bash shell, I use iTerm2 and Fish Shell. Unlike my other tool choices in this post, there isn’t really a compelling argument for either of these choices, just that they look nice and provide some useful features and I just like them. To speed up work in the terminal I have Fish functions for changing directory to common places, mounting network drives, getting projects from source control, opening Xcode projects, etc.
Finder – Good enough is good enough
The standard OS X Finder app is good enough these days, but I do add a couple of keyboard shortcuts to make life easier. For example, adding ⌘-⌥-O to Show Package Contents (see http://apple.stackexchange.com/a/44299) means I can quickly jump into an Xcode Project package and delete the user workspace data.
Sublime Text – Text Editor Extraordinaire
I use Sublime Text as my main text editor, for everything except Swift and Objective-C. I’m currently using the beta of Sublime Text 3 and it works great. The app can be downloaded and evaluated for free but for continued use you need to purchase license for $70.
Instead of using the default theme, I use the Package Manager to install the Tomorrow theme, and then I used the Tomorrow Night Bright color scheme. I regularly change my favourite font depending on the fashion, currently I’m using Hack. I set my font and tab preferences by adding the following lines to the User settings file:
“font_face”: “Source Code Pro Regular”,
Soulver – A Notepad Calculator
Soulver is hard to explain but once you start using you will see the value of it. In their own words: Soulver helps you work things out. It’s quicker to use than a spreadsheet, and smarter and clearer than a traditional calculator. Use Soulver to play around with numbers, do “back of the envelope” quick calculations, and solve day-to-day problems.
Reveal – Runtime inspection for iOS apps
Reveal is a visual debugging tool for iOS apps, kind of like Firebug for iOS apps. It allows you to visualise, interact and drill down into the real UI of an app at runtime, both in the Simulator and on an actual device.
Before you can use Reveal with an app you have to temporarily add a framework to the project in Xcode. This is simple enough once you have done it a couple of times, and it is as easy as it can be I suppose, but it is a repeated “cost” each time you want to use the tool.
When I first heard of this tool I thought that it was an unnecessary gimmick, but for a certain class of bug, especially in legacy code, it really is worth the investment. Check out the videos and free trial on the website: http://revealapp.com ($89).
As an iOS developer I pretty much live in Xcode (I have tried AppCode a couple of times but it never stuck). I pretty much use the stock configuration but with a few simple tweaks:
- Change the theme to Tomorrow Night Bright and change the font to Hack, 20pt.
- Bind key ⌘–⇧-R to Refactor->Rename and ⌘–⇧-E to Refactor–Extract (no Swift support yet unfortunately).
- Turn on Show Line Numbers in Text Editing Preferences
Other Important Apps and Tools
I use most of these apps daily and I could go into lots of detail about each of them, but that’s probably best saved for a future post.
- HTTP test client: Paw ($49)
- GitHub Issue tracking: Bee (€29.99 Mac App Store)
- Password management: 1Password (€64.99 Mac App Store)
- Productivity timer: Vitamin-R (€24.99 Mac App Store)
- Task organisation: OmniFocus (€39.99 Mac App Store)
- Distraction prevention: HazeOver (€3.99 Mac App Store)
- Note taking: Microsoft OneNote (Free), nvALT (Free)
- Window layout: BetterSnapTool (€2.99 Mac App Store)
- Hex editor: Hex Fiend (Free)
- FTP client: Cyberduck (Free or €23.99 in Mac App Store)
- Baby’s first app: AlphaBaby (€0.99 Mac App Store)
And that’s it for my main work laptop setup as of March 2016. I’m happy to have my trusty needle and thimble back again. I’ll update the post from time to time as my preferred toolkit changes and I’d love to hear any suggestions for great OS X apps that other people use everyday.