Who are you and what do you do?

I'm the lead mobile developer at Stamped in New York City. People call me Andy Bons (or just Bons) because my last name is difficult to pronounce.

Before Stamped I was at Google for five years where I worked on a bunch of different products with Google Docs and Chrome receiving my largest contributions. I also had the pleasure of doing some 20% projects within the Creative Lab, which was a ton of fun. The highlight of my career there was getting an email from Brian Kernighan thanking me for saving him a day's worth of work because of a Javascript debugging tip I showed him. I printed out that email and tacked it up next to my desk.

You should follow me on Twitter here.

What is your computer and workspace setup while developing?

It's unorthodox since one day it's a complete mess and another day it's pristine. Among the chaos my current setup includes a Magic Trackpad, Bluetooth keyboard, 27" cinema display, laptop (SSD == crucial), notebook, pen, in-ear headphones, and a coffee cup (well...several). There are also about eight mobile devices on my desk at any one time.

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

Having dealt with code that directly manages touch events as well as stuff that utilizes gesture recognizers, I have to say that UIGestureRecognizer is one of the best classes for saving dev time.

Additionally, the new UIAppearance stuff in iOS 5 has taken the load off for those times that you may want to make subtle appearance changes to native UI elements. That's been nice for Stamped and saved me a lot of work that would otherwise have required writing a custom control or utilizing a third-party lib like Three20.

I'll also pile onto so many other devs' responses by saying blocks are by far my favorite Objective-C feature.

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

I'm in Photoshop, xScope, and the iOS simulator regularly for keeping to spec during UI work. LiveView is great for seeing my awesome designer's stuff on my device before implementation starts. Other than that, headphones, coffee, and a good hoodie are really all I need.

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

As lame as this sounds, I just read the official Apple documentation. When I was doing front-end web development at Google, I would visit all kinds of sites like Ajaxian and Webmonkey along with a bunch of others that I can't remember, but when you're under NDA (and the only iOS dev) you can't really go anywhere else but the iOS dev center. I don't really mind, though, since the documentation is very well written.

For frameworks or tools written by third parties, I usually just Google for what I want and see what appears to be the most popular one :). Though, I end up forking a lot of stuff since not everything meets our needs, has bugs, etc. I really need to contribute that stuff back upstream.

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

Oh man. With full disclosure that I think the iOS team is doing an amazing job, where do I start? :)

Automatic app updates with opt-out.

Create a nice, middle-ground API between a CoreText and UIWebView for text display. If I want to add tap targets, bold a specific block, or wrap text around an image, I'm stuck using a UIWebView which wasn't even created for this sort of stuff or get down to the metal with the CoreText C API. There are some nice wrappers like DTCoreText which ports a lot of the AppKit NSAttributedString APIs that are needed for this, but it would be fantastic if Apple included them officially.

Autolayout ported to iOS. I've heard nothing but good things about that feature in Lion.

I think the main thing I want to see changed over anything else would be the iTunes Connect experience. Everything from the initial setup (I had to FAX something to them at one point) to the policies surrounding app submissions. I don't think that having guidelines is bad, but waiting for almost a week for an update to go live seems absurd to me. Wil Shipley has some thoughts about the Mac App Store that I think could be applied in this situation and thankfully with Mountain Lion it appears that they're taking that route. Let's just hope this is something they bring to iOS as well. The iTC website and app also need some serious design and interaction love. That said, I've had nothing but good experiences speaking with anyone over at Apple over the phone when I call with an issue.

How did you get in to developing for Apple devices?

At Google, I was in between projects and I really wanted to work on Chrome for the Mac. For various reasons they didn't officially have a team in NYC, but there were these two guys working on it, so I talked to some people and said "I think it's silly that I could quit Google and work on Chrome full-time, but I'm not allowed to work on this in NYC." After that conversation I basically sat in between the two guys on a bean-bag and wrote patches until they let me on the unofficial team. With the support of them plus the rest of the Mac engs at Google, I was able to get mentored by some of the best engineers in the space.

What is a tip that you think could help others while debugging their apps?

Create a key-binding for the "Simulate Memory Warning" menu action in the simulator, then simply hold down the key combination so that it's continuously firing while you click around your app. It opens your eyes to handling low-memory conditions gracefully as well as helps you crush any blatant zombie bugs (use the Zombies module in Instruments to track them down easily).

Finally, what is your favourite app?

The folks over at Flipboard did a fantastic job with the iPhone version of the app. I find myself trying to use their gestures in other apps because the interaction paradigms feel so natural to me. Huge props to them for achieving that.

Clear is just, well, fun to use. The sounds, colors, interactions; it strikes this balance between utility and playfulness that allows you to let its shortcomings fall away while still helping you be productive.

Square's Pay with Square is also pretty rad. I only use it at one merchant (a local coffee shop) but I use it every time I'm there. Very nice, seamless experience.