2013-10-27

This is the fifth installment of my must have must have list of tools and utilities as a Mac and iOS developer (2009, 2010, 2011, 2012). This year’s edition of the list takes into account the new tools I am using as part of my transition to working exclusively on iOS 7 and OS X Mavericks, as well as an amateur designer.

The idea for this list was shamelessly ripped off from Windows developer Scott Hanselman whose list has long been an enjoyable read when he updates it.

Many of the products you will recognize from previous years’ lists. I’ll outline new additions to the list as I go by marking them in bold.

Hardware

My hardware is mostly the same as last year. I am still maintaining a dual Mac setup. My daily driver is a 27” i7 iMac with a 256GB SSD, 2TB spinning disc and 16GB of RAM. There is absolutely no reason for me to have 16GB of RAM other than to brag about the fact that I have such a ridiculous amount of memory. After almost four years, this machine is still humming along like a champ. The only reason I would consider upgrading to a new one is aesthetics at this point.

At home I am using my 15” Retina MacBook Pro with a 512GB SSD and 8GB of RAM. This is the first revision of the Retina MacBook Pro and it’s probably one of my favorite Macs ever assembled. My only request going forward is a much higher retina resolution. It’s really a challenge to jump between the massive amount of pixels that a 27” iMac affords you and then head back to a 1440x900 display at home.

I am using Dropbox more than ever to keep everything between the two machines in sync. I symlink Documents, Downloads, Movies, and Sites to point to those respective directories on Dropbox. I am also using shared Dropbox folders for Second Gear projects that require collaboration with a designer. I’m still using GitHub for storing all of my code.

In terms of accessories and upgrades:

I use a Das Keyboard. I love it. The Das Keyboard doesn’t make me a better developer, writer or person. It just feels satisfying to use.

On the left side of my iMac I use a Magic Trackpad for swiping and gesturing between full-screen apps and Mission Control. I am a big user of multitouch gestures in Mavericks, so I am incredibly comfortable using the trackpad.

On the right side of my iMac I use a Razer Mamba 2012 Elite Ergonomic Wireless Gaming Mouse to do all my pointing and clicking. The Razer mouse is far more comfortable to use and is wired, which was useful for that month I was obsessed with playing Quake 4.

Time Machine backups are handled by a 2TB Western Digital MyBook connected via Firewire 800. It’s fairly quiet and is one of the few external drives I’ve found that doesn’t have a horrific design. Last year I had the 1TB version, but it finally met its demise after years of faithful service. It was a no brainer to upgrade to the new one.

I am a completely paperless office thanks to my Fujitsu ScanSnap iX500. I usually scan all my receipts, bills and invoices once a month and then run them through OCR so I have a searchable archive on my Mac.

I connect to the Internet through my Airport Extreme Base Station. It cost more than a Linksys but it’s super reliable and the management software is much more pleasant to use.

Software

I am really hard on software. This is for a variety of reasons, but I think it is because I build it myself. I have always envisioned that directors and actors can sometimes lose focus during a movie as they judge the decisions others made in their productions. I feel like I do the same thing with software.

I loathe poor and/or non-native user interfaces and cherish simple tools. These are applications I constantly rely on.

The Essential Five

Dash - The new documentation viewer in Xcode 5 is better, but I have found Dash to be a must-have utility, especially if you are targeting platforms beyond just OS X and iOS. Dash imports and formats documentation for OS X, iOS, Android, web frameworks, and more. It’s amazing.

Dropbox - Dropbox is the secret sauce for a variety of reasons. It makes it easy to share files between machines as well as with colleagues. Beyond that, maybe you’ve heard of Elements and the many other great iPhone apps that sync data using Dropbox?

OmniFocus - I don’t know how I ever stayed organized before OmniFocus on my three screens. It’s my brain.

Sublime Text 3 - I am a big fan of Sublime Text and am still using it as a replacement for BBEdit. It’s not the prettiest girl at the dance, but its powerful text editing features and the ability to customize the interface however I see fit ultimately made me make the switch. It also handles Ruby development a bit nicer than I found from BBEdit. We’ll always have Paris, Bare Bones.

xScope - I use xScope to detect colors on various UI elements, check alignment of controls and to measure the distance between objects. If you are meticulous about your UI, it’s an essential utility.

Developer Tools

Xcode - If you write Mac or iOS applications, you spend most of your life in Xcode and Instruments. I am no different.

Android Studio - I have been doing a bit of Android development the past few months and have found Android Studio, while still an early preview, to be a very nice IDE to use. It’s based off IntelliJ IDEA and has a lot of nice editor and refactoring features I’d love to see make it to Xcode some day.

Anvil - If you use Pow for running your Rails or Rack-based apps locally, Anvil makes it really easy to manage and restart them from your menu bar. Bonus: it’s free.

Appfigures - Manually fetching iTunes sales reports is tedious. Appfigures is a low-cost Web service that will import your reports and send you a daily sales email. You can also do a lot of other analysis on your sales to find trends, but I generally use it for the daily email.

Base - Elements has a SQLite database behind it. I’m constantly inspecting the database contents using this application. It’s lightweight and easy to use.

Charles - Sometimes I want to snoop the traffic that is going through an iPhone app. Setting up Charles makes it pretty easy to do just that.

CodeRunner: There are times I am writing a small snippet of code to share with someone or just to test an idea on my own. I don’t necessarily need the full power of Xcode, so CodeRunner comes in quite handy. It’s even more useful in its support of other languages like Ruby and JavaScript.

Committed - Shameless plug for my GitHub to Notification Center app. I built it because I needed it. I use it everyday.

Cornerstone - For those few times a year I need to work with Subversion, Cornerstone is the best desktop client I’ve found for it.

Deploymate - If you’re still supporting iOS 5 or iOS 6, you want to make sure that you’re not calling APIs not supported on those platforms before shipping to the App Store. Crashes are bad. Deploymate does just that. It saved my bacon once already which made it worth every penny I paid for it.

Dev Color Picker: Must have. Choose whatever color you want and then it will output a UIColor or NSColor for you.

Ember - I used to use LittleSnapper, Ember’s predecessor, to capture screenshots and inspiration for design years ago but got out of the habit as the app languished and didn’t sync. Ember uses iCloud to sync your snapshot library between Macs, which is great. The RSS subscriptions feature is great too for tracking design trends on Dribbble. I keep feeds for each mobile and desktop platform.

FogBugz - I have been using FogBugz to manage Second Gear’s support inbox and bug database for almost five years. People complain that it is an unattractive app. I disagree. It’s not flashy and instead just disappears so that I can actually focus on using it for its intended purpose: managing my software projects.

Genymotion - You know how the Android emulator is really slow and generally sucks? Genymotion doesn’t. It’s faster, more powerful, and works better in almost every way. If you’re doing Android development, you owe it to yourself to give it a whirl.

Git: I am now exclusively on Git for Second Gear projects. Thanks, GitHub.

GitHub for Mac - GitHub’s official Mac client isn’t the most feature-filled Git client on the market, but it accomplishes everything I need it to as a sole developer: sync, commit, branch. If you haven’t given it a shot in a few months, do yourself a favor and try again. It’s gotten really good.

Go2Shell: A small utility app that I keep in my Finder toolbar to open a Terminal window in whatever folder I am currently looking at.

HockeyApp - I am using Hockey for distributing betas and handling crash reports. Whenever I archive a build, I use HockeyApp’s OS X app to upload the binary and dSYM as part of the build process.

HockeyCoach - HockeyCoach is a new app from the Hockey folks I mentioned above that lets you manage your crash reports in a native Mac app with a few additional features over the web app.

Hex Color Picker: My designer sometimes sends me hex values for colors I need in my user interfaces. This coupled with my next pick makes it easy for me to grab an NSColor or UIColor value.

Hues - Combined with Hex and Dev Color Pickers, Hues is one of my most used apps. All it is is the OS X Color Picker in a full application that is accessible via the Dock and command-tab switcher. Awesome.

IconSlate - When I was putting together Committed’s icon, IconSlate was the best way to drag-and-drop the different sizes and get an icns file. It’s also what I use whenever I need a new favicon in the ICO format.

ImageOptim - When you add up the kilobytes of non-retina and retina assets for both the iPhone and iPad, app binaries are getting bigger. ImageOptim has a better compression algorithm than the one built into Xcode, so I will sometimes run images through it to get smaller sizes.

iPhone Backup Extractor - When doing iPhone support, it is sometimes beneficial to get a copy of the user’s data and preferences. Using this application, it’s fairly easy for the user to handle on their end.

Kaleidoscope - I have never been a fan of the bundled merging tools with Xcode. Kaleidoscope is vital to my workflow when running diffs on my Git commits. The new version of Kaleidoscope that was released by Black Pixel last year is fantastic.

Library Inspector - There have been a few times I’ve wanted to see what was in a static library.

Patterns: I don’t think I will ever fully grasp Regular Expression syntax. Patterns makes it easier for me to fumble around trying to build and test a regex compared to doing sample finds in Sublime Text.

QuickRadar - The RadarWeb UI still sucks. QuickRadar makes me more likely to file bugs because it is in my Dock, it can cross-post to OpenRadar, and it has never crashed or lost a bug report while I was trying to submit it.

RESTed: When building or testing an API, RESTed comes in handy to see raw JSON output and quickly test input parameters. I also tend to keep a couple RESTed documents in my source repos so I can quickly test the API.

Screentaker - Screentaker is the fastest way I have found to go from an iOS device screenshot to something wrapped in a device shell.

Sketch - Finding design talent with availability or that hasn’t been acquired by Facebook is difficult sometimes. That’s why I have tried to dabble with doing my own design for the low-hanging fruit things like toolbar icons and whatnot. Sketch is amazingly great if you want to do any sort of mobile or web interface design. I’ve tried to use Photoshop for this stuff so many times and failed. I picked up Sketch after a few days. Best $50 I spent in 2013.

Slender - If you’re using Xcode I bet you have a few assets in your Xcode project that are no longer in use. Those kilobytes are wasting your customers’ bandwidth and yours. Slender analyzes your Xcode project and finds those assets that are no longer in use so you can safely delete them.

Status Magic - Before I send screenshots to iTunes Connect, I run them through Status Magic to add a proper status bar to it. It’s a small thing, but I think it looks more professional than the current status bar that my device screenshot gives me.

Trello - While I use FogBugz for customer support and bug tracking, I am using Trello for the high level management of Second Gear Projects. It’s where I can get a quick overview of what my release plans are and adjust them if necessary. I also put all feature requests and ideas here instead of the bug tracker since they may never be actionable.

User Tools

1Password - One of the first tools I install. Its Dropbox over-the-air syncing makes using it on my iPhone and iPad even easier. It also has made me use better passwords because I no longer have to remember them. 1Password does that for me.

Acorn - Acorn is my favorite image editor for the Mac. It’s fast, intuitive and looks pretty neat too.

Backblaze - While I primarily rely on Time Machine for my backups, I also subscribe to Backblaze to offload the contents of my hard drive to the Internet.

Chatology - You know how iMessage is unreliable, doesn’t send messages sometimes, and just sucks? So does search in the Messages app. Chatology solves that by making it way easier to search your chat logs for that screenshot or link that you know you sent a few days ago.

Cloak: If you connect to any shady or insecure networks, Cloak is a super easy VPN service to secure your traffic. On my Mac, I like it because it will automatically connect when I join an insecure network. Even better, it’s just a tap away from toggling on my iPhone and iPad.

CloudApp - Whether it’s sharing screenshots, beta releases or small snippets of text, Cloud has become an essential tool for me. Its automatic screenshot uploading feature solved the problem I always had with figuring out how to successfully share screenshots without having to rely on AIM’s flaky servers or uploading them somewhere with Transmit.

Feeder - I use Feeder to update the IRQ Conflict podcast as well as several different Sparkle AppCast feeds. It’s one of the best user experiences I’ve found on the Mac.

GIFBrewery - You like GIFs. I like GIFs. Let’s make GIFs.

Labelist - I have horrible penmanship. I have had letters returned by the USPS for illegible addresses. I bought a label maker and use Labelist to generate all of my address labels now.

Launchbar - I use Launchbar primarily as an app launcher, but I also am a big fan of version 5’s clipboard history feature.

Marked 2 As I am writing this blog post in Markdown using Sublime Text 3, I have Marked 2 open as well doing a live-preview of the post so I can quickly see if I have any of my Markdown showing.

Napkin - Need to annotate a screenshot or point out a specific portion of it? Napkin does that better than any other app I have found.

OmniOutliner Pro - When I am doing more complex writing projects than a blog post, I outline the entire thing in OmniOutliner. The ability to have drop-down fields is one of my secret weapons. Love that.

PDFpenPro - Preview is a fine PDF viewer, but if you need to sign contracts, make edits to PDFs or create new forms, PDFpenPro is top notch. Bonus: it’s a lot cheaper than Adobe Acrobat.

Photoshop CC: When Adobe switched to its Creative Cloud pricing, I decided to jump back on the Adobe bandwagon. I don’t really have a system for when I use Acorn and when I use Photoshop. It usually just ends up depending on what I decide to type into Launchbar on a given day.

RCDefaultApp - RCDefaultApp is one of those applications that has been on my Mac for so long, I take it for granted. For those times when you want to force a file extension to open in a specific application, it’s great.

Rdio: Last year I made my transition away from a local iTunes music library in favor of iTunes Match and Spotify. This year, I am 100% on Rdio. I no longer have any music stored locally on my Mac or any of my iOS devices. Instead, I am syncing albums from my Rdio collection to my iPhone for offline listening. It’s been working great and I can’t imagine going back to the traditional ‘purchase’ model for music.

Soulver: Marco turned me onto the iPhone version of Soulver and now I am a convert on the Mac too. It really is a much better interface for doing quick (or complex) numeric calculations.

The Unarchiver - A file extraction utility is somewhat of an unsung hero, but when you need it, it’s good to have a utility that is robust and can fit almost any bill. The Unarchiver does that and does it well.

Twitter for Mac - You probably use Tweetbot, but I actually prefer the official Twitter client for desktop tweeting solely because its scrolling performance is acceptable.

Wedge - If you use App.net, you probably want a desktop client. Wedge is the best one I’ve found.

Audio Production

Outside of doing software development, I talk about software development and technology in general with my Windows development buddy, Mikel Berger on IRQ Conflict. These are the tools used to produce the show and some other audio gimmickry I pursue:

Blue Blubird - I chose to buy an XLR mic because I could easily upgrade to a mixer someday without having to also buy another mic. Choosing a microphone is a personal thing, but this one had the right amount of audio quality and style for me.

Icicle - I’m still not ready to commit to putting a mixing board on my desk, so I am using this XLR to USB adapter also from Blue to connect to my Mac. I’ve noticed no real downsides to it other than it sometimes loses connection with the USB hub I have it plugged into. Just make sure it shows up as an input source before recording and you’re good to go.

Adobe Audition CC - Last year I was still using the Windows version of Audition in VMWare. The Mac version finally shipped and it is great. It’s got those typical weird Adobe interface issues, but I wouldn’t recommend another multitrack editor over this one. It’s a great workflow.

Skype - Mikel and I use Skype to record IRQ Conflict.

Call Recorder - Call Recorder is the least hassle for recording the audio of a Skype conversation.

AudialHub - AudialHub is a dead app. It hasn’t been under active development for years. Sadly, it’s still the best for converting between a variety of different audio formats.

Show more