My Ultimate Developer and Power Users Tool List for Mac OS X (2012 Edition)
Article: Source
This is the fourth installment of my must have must have list of tools and utilities as a Mac and iOS developer (2009, 2010, 2011). A lot can change in twelve months when you work in the technology space. The biggest change for Apple developers each year are the platform updates. This year saw the transition from iOS 5 to 6 as well as Lion turning into a more powerful Mountain Lion.
The idea for this list was shamelessly ripped off from Windows developer Scott Hanselman whose list is an enjoyable read every year.
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
Though I am currently working on the road, I am still maintaining a dual Mac setup under normal circumstances. When I have a home, 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.
Presently I am using my 15” Retina MacBook Pro with a 512GB SSD and 8GB of RAM. In last year’s list I mentioned my love for the Air line of Apple portables, but as the software I started building got more complex, I felt like I was hitting memory constraints with just having 4GB of RAM. When Apple refreshed the portable line this summer, I decided to jump back on the 15” bandwagon rather than getting a beefier Air because of the larger screen-size and, of course, the Retina display.
I am using Dropbox more than ever to keep everything between the two machines in sync. I’ve now symlinked Documents 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. What is funny is that last year I mentioned that I “loathe” loud keyboards. Now I love them. The Das Keyboard doesn’t make be a better developer, writer or person. It just feels satisfying to use.
-
On the left side of my iMac I use a Magic Trackpad, to for swiping and gesturing between full-screen apps and Mission Control. I am a big user of multitouch gestures in Mountain Lion, 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. It’s interesting that the simplicity of my 2011 setup has now been replaced with a giant keyboard and two input devices. I may be becoming more of a neckbeard, but my facial hair still doesn’t show it.
-
Time Machine backups are handled by a 1TB Western Digital MyBook connected via Firewire 800. It’s fairly quiet is one of the few external drives I’ve found that doesn’t have a horrific design.
-
I am a completely paperless office thanks to my Fujitsu ScanSnap S1500M. 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 Power User 5
-
CloudApp - Whether it’s sharing screenshots, beta releases or small snippets of text Cloud has become an essential tool for me. It’s 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.
-
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 2 - I was a longtime BBEdit user for everything from editing scripts to writing my weekly newspaper column, but this year I made the switch to Sublime Text 2. It’s not the pretty girl at the dance, but it’s 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.
-
Appfigures - Manually fetching iTunes sales reports is tedious. Appfigures is a low cost Web services that will import your reports and send you a daily sales email. You can also do a lot of other analysis on you 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.
-
Changes - I was never a fan of FileMerge, but have found Changes to be vital to my workflow when running diffs on my Git commits. Changes got a new owner recently, and I am looking forward to hopefully seeing more regular updates to it.
-
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.
-
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.
-
Coda 2 - I manage the Second Gear site using Panic’s excellent Web development IDE.
-
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.
-
Dev Color Picker: Must have. Choose whatever color you want and then it will output a UIColor or NSColor for you.
-
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.
-
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.
-
Git: I am now exclusively on Git for Second Gear projects. Thanks, GitHub.
-
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 HockeyApp’s OS X app to upload the binary and dSYM as part of the build process.
-
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.
-
Library Inspector - There have been a few times I’ve wanted to see what was in a static library.
-
MindNode Pro - I’m a recent convert to mind mapping and use it to sketch out software releases, blog posts and presentations rather than OmniOutliner these days. This is the best app I’ve found on the Mac.
-
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.
-
Querious - If you need to connect to local or remote MySQL databases, this is a great application to do so.
-
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.
-
SourceTree: Working with Git is a little more tolerable thanks to SourceTree. I have tried quite a few GUIs for Git and this is the one that sticks with me most.
-
Trello - While I use FogBugz for customer support and bug tracking, I am using Trello for the high level management of Elements and Committed. It’s where I can get a quick overview of what my release plans are and adjust them if necessary.
-
Web Sharing - In Mountain Lion, Apple made it a bit more difficult to work with the Apache web server that ships with it. Web Sharing is a preference pane that re-enables the ability to toggle the server without dropping down to the Terminal.
User Tools
-
1Password - One of the first tools I install. It’s 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.
-
Billings - Now that I am back full-time at Second Gear I am doing contracting in addition to my own product development. Billings allows me to keep track of time in my active projects, manage clients and distribute invoices.
-
FastScripts - The default scripting menu in OS X is good enough for basic scripters, but I’ve found FastScript’s enhancements most beneficial: mainly the ability to assign keyboard shortcuts to scripts in certain instances.
-
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.
-
NetNewsWire - I am convinced that NetNewsWire is dead. This makes me very sad because I still consider it the best RSS experience on the Mac. It’s a niche market for sure, but I’d love to see someone take over the app, or build a new, modern NNW from the ground up. Reeder ain’t it.
-
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.
-
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 CS6: 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.
-
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.
-
TextExpander - If you do any sort of customer support, TextExpander is a must have. I have snippets created for each of my products’s most frequently asked questions as well as common troubleshooting steps. What sets TextExpander apart, however, is the AppleScript support, which I use for a variety of different text-related tasks as well as expanding unique product tags to my email signature.
-
Tweetbot - I haven’t traditionally used a Twitter client on my Mac, but I periodically will launch Tweetbot if I need a distraction from what I’m working on.
-
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.
-
Wedge - Whenever someone decides to bitch quit Twitter, they usually go to App.net, another privately owned social network (but you pay for it!). Wedge is the best ADN client I’ve found for the desktop thus far.
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 your’e good to go.
-
Adobe Audition CS6 - 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.