Whitney Young Lead Developer at FadingRed
Who are you and what do you do?
I started developing Cocoa applications in 2004 with Senuti. In that time I’ve had the opportunity to try development on a bunch of different platforms, but I’ve always felt the most at home with Cocoa and Objective-C. These days I spend most of my time working on Koku for iPhone. I write occasionally, and you can also find me on Twitter. In the past, I’ve taught college courses on computer security, and in the future I hope to start doing a bit of speaking at conferences. In my free time, I like to take a break from technology and enjoy cooking, music, and photography.
What is your computer and workspace setup while developing?
At the office, I have a 27-inch iMac. It’s got a 3.4GHz i7 with 4GB of RAM, and two internal drives — a 256 GB SSD and a 1TB drive. I have entirely too many cords plugged into the back of it (3 at the moment, but just one ruins its elegance). The iMac is on a height adjustable desk so I can sit or stand while working. When I’m not at the office, I use a 1.6GHz i5 11" MacBook Air with 4GB of RAM. This little computer is amazing and rivals the desktop.
What are your favourite Apple iOS API's to use within apps you develop?
I love the fact that we have the ability to manipulate the Objective-C runtime. There’s a lot of crazy things that you can do with the runtime, and the tools that can be built with it are infinitely useful. Blocks and GCD are additions that I take for granted every day now, and I couldn’t imagine going back to a world without them. Core Data has also been wonderful because it has allowed us to almost completely forget about persistence and just focus on building our apps.
What is some software that you use outside of Xcode for development?
I use TextMate for all of the code that I write that isn’t Objective-C (I do quite a bit of work with Python as well). I use The Hit List to keep my life in order and to make sure I don’t lose track of what I need to do next. For UI work, I prefer Acorn, but also use Pixelmator from time to time. At FadingRed, we also use Mercurial for version control, Lighthouse for issue tracking, Dropbox to share files, Jenkins for continuous integration, and Doxygen to generate docsets for Xcode.
What do you do to stay up to date on new iOS features, frameworks and SDK's?
I read a lot. Reading and talking to other developers tends to help me stay on top of what’s new — not just the big things, but the intricacies of how things work (and what’s broken). I like to experiment with the new stuff, too. Reading helps, but it only gets me so far. Once you start using a new feature to create something, it gives you a good reason to continue to explore. It’s hard to stay up to date on everything as it all changes so quickly.
I’ve also found that a breadth of knowledge really helps on picking up new features quickly. As programmers, we all tend to share ideas from other projects, so even though I’ve never done any serious programming in Lisp, knowing it made the process of learning blocks pretty simple. I spend a good amount of time exploring what’s going on in software outside of the Cocoa community, and that’s been immensely helpful.
From a developers perspective, what are your hopes for the next major iOS update?
I’d like to see Apple get into television in a big way. There have been murmurs about this, but I feel like the companies who provide cable television and those making TVs don’t have the same insight into customers that Apple does. To me, the idea of sitting in front of a television where Apple created the whole experience would be very exciting.
Finally, what is your favourite app?
I really like Instapaper. I try to keep focused when I’m coding, and saving things to read later instead of reading them right when I find them really helps me. Also, GitHub has done a fantastic job making distributed version control an enjoyable experience.