Warning: You are viewing old, legacy content. Kept for posterity. Information is out of date. Code samples probably don't work. My opinions have probably changed. Browse at your own risk.
Nov 12, 2012
I recently got asked by a fellow Mac user if I could recommend an IDE setup for Drupal development. I'm not really a fan of IDEs, but I have a setup that works really well for me. It might not be "integrated", but it certainly is a "development environment".
Sublime Text 2
Until recently I was a big fan of TextMate, but then I made the switch to Sublime Text and I've not looked back. First thing you need to do after installing it is get package control. This allows you to easily install and manage "packages". I tried a few packages. I sometimes need to edit remote files, so I tried the SFTP package from the same developer as the package control, but I didn't really get along with it - and I found a better solution for this anyway. I did however find a really useful Drupal snippets package that allows you to easily drop in code templates from the Drupal API documentation.
Although my preferred development workflow involves working on my local dev, then committing back to Git and building remote staging sites, I do regularly have the need to edit remote files. Some clients insist I work on the developer sandbox they provide, or just to go in an do quick hotfixes on live sites (eek!). I've tried several apps, and Cyberduck is a great option, but I really like the fact that this app transparently makes working with remote files appear just the same as working on local files. MacFUSE used to be an option, but that doesn't work anymore, and this is the most performant out of all the options I tried.
As I said before, my preferred workflow is to have a local dev environment. I have a few Virtual Machines configured. I usually only run one at a time, but performance isn't an issue since I upgraded my Mac Book to SSD and added 16GB RAM! I have Ubuntu Server and CentOS guests, plus a Windows VM I setup using this guide for testing websites in IE. I configure my virtual machines to have two network adapters. One of them is used as a NAT device to give the VM external internet access, the other is an internal network accessible only from my machine that I use to run services like Apache, MySQL, and Samba.
I spend a large percentage of my time when doing Drupal development at the command line. Either using Drush or Git. TotalTerminal is great as it means the terminal is never more than a keypress away!
There are a few occasions when the Git command line client isn't quite enough. Maybe you've had to do a tricky merge? Or just want to view the commit graph? I found SmartGit to be the best of the Git GUI clients I have tried.
This is a nice MySQL administration tool. It has the added advantage that it can access MySQL servers over SSH so you don't have to open up extra ports in your firewall. Also, as a Drupal developer you've probably got used to reading serialised PHP arrays in the DB, but with Sequel Pro you can view them easily using Krumo thanks to a contributed extension available here.