-->
Who are you and what do you do?

I’m Josh Abernathy. I live in the little hippie town of Yellow Springs, OH with my awesome wife and daughter.

I work at GitHub, mostly on GitHub for Mac. GitHub for Mac is just a means to an end. We want to make it easier to make awesome software. GitHub for Mac is about lowering the barrier of entry for sharing and collaborating. But really, it’s only one piece of the puzzle.

You can find me on the twitters as @joshaber.

What is your computer and workspace setup while developing?

I use a 13“ MacBook Air. It’s pretty much the best computer ever, except when Xcode decides it needs 1.21 gigawatts of RAM. When I’m working from my office, I plug into my 27” Cinema Display.

What are your favourite Apple iOS API's to use within apps you develop?

That’s kind of an interesting question within the context of the GitHub for Mac app.

I love Core Animation. It’s the soul of iOS. It’s one of the main reasons iOS is so crazy fast, which has been incredibly important to its success.

The bummer is that AppKit (Mac OS X’s UI framework) is really old, and the Core Animation way of doing things is completely different from the AppKit way. So even though AppKit supports using Core Animation, it does so with lots of caveats and bugs.

AppKit was awesome in its day. The problem is, its day was 15 years ago. Now AppKit is an old, crufty framework with buggy Core Animation support and few modern niceties.

So we’ve been transitioning big pieces of the app over to TwUI. TwUI is a modern, Core Animation-based UI framework that Loren Brichter created to make Twitter for Mac.

For the most part, TwUI is great. The downside is that there are pretty big pieces of functionality that just haven’t been implemented yet. The bits they needed for Twitter for Mac are there. Most everything else is missing.

So progress is slow. I’ve spent a lot of my time recently implementing the basic building blocks we need for GitHub for Mac. Obviously this will get better with time as we have to re-invent less of the wheel as we go.

The other awesome upside to using TwUI is that we now own much more of the stack than we did before. We’re no longer at Apple’s mercy, hoping for new features or bug fixes in the next OS release. We can fix or add anything we like.

What is some software that you use outside of Xcode for development?

GitHub for Mac, naturally :) Outside of that, not much. I’m pretty minimalist when it comes to software I use. I use TextMate or Sublime Text 2 when I’m doing non-Cocoa development. Photoshop to cut up comps. iTunes to play the musics.

What do you do to stay up to date on new iOS features, frameworks and SDK's?

Mac OS X has historically been updated far less frequently than iOS, so it’s much easier to stay up-to-date. When there are updates, I read the release notes and SDK diffs.

From a developers perspective, what are your hopes for the next major iOS update?

I’d love to see a modern, Core Animation-based alternative to AppKit. Sadly, I’m skeptical that will happen. Apple’s future is iOS. Naturally, that’s where they’re going to spend their time, money, and developers. Mac OS X matters only in that it is (currently) the platform for making iOS apps.

For the developer tools, I really, really hope Xcode brings plugins back. For us as developers, our ability to customize and extend our developer tools is incredibly important. Without that, we end up wasting a ton of time with busy work. It kinda breaks my heart how much time and effort our community wastes because of that.

Plugins also let innovation happen outside of Apple. Right now, Apple owns the entire developer toolchain, for better and worse. That’s fairly necessary for the things Apple does with the iOS and Mac app stores. But if we developers could advance the state of the art, we’d spend less time waiting for Apple and more time innovating. You need only look at the toolchains in the Windows or Ruby world to know that the Cocoa community lags greatly behind. Let us help us.

Finally, what is your favourite app?

I really like Twitter for Mac. I love that they were willing to think completely outside the box with the UI. I think sometimes we as a community lack imagination. We love Apple so much that we idolize everything they do, without thinking critically about whether that’s really the best thing or the best solution. Twitter for Mac, for better and worse, came to their own conclusions about UI. That takes balls.