Marco.org

I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

Notes from WWDC 2009

Approximate summary of what it’s like, keeping in mind that this is the only one I’ve attended so far:

  1. Everyone who’s anyone in Mac development is there. You’ll see a lot of names you recognize, plus about 6,000 people who you won’t. Think you’re the only one around doing Mac or iPhone development where you live? Not here.
  2. Every day, you’ll sit in 3-5 sessions about various topics that you can choose. Before each session, you file into the room and find a good seat, preferably in one of the smaller rooms that have power strips ziptied to the chair legs so you don’t need to drain your laptop’s battery. And some hilariously awful music plays before the session starts, including this song — a lot. The awful pre-session music, as well as the awful conference-center food, becomes a joke and bonding experience with the other attendees.
  3. The session content is varied: sometimes it’s a bit too high-level, but in almost every session, even the ones that I thought I already knew, I learned something new of significant value. Some of the greatest value was in the presenters’ offhand remarks about how stuff is implemented, or seemingly minor implementation changes in the new versions (Snow Leopard or iPhone OS 3.0) that won’t show up in an API diff but really make a difference. For example, UINavigationController is a lot more useful now, despite very few public-API differences. (I’m probably not allowed to tell you how, which sucks. If you make money from an iPhone app that uses UINavigationController, you should at least buy the “iPhone View Controller Techniques” session video when it comes out.)
  4. Most sessions end in Q&A, so you can ask Apple engineers about specific problems (e.g. “What’s the recommended way to make UITableView accomplish this weird behavior I’m trying to do?”). Sometimes the answers are extremely helpful or insightful, and sometimes the best they can say is, “We don’t support that, but file a bug report and thanks for the feedback.” In either case, they’re at least genuine and trying to be as helpful as they can. Usually, I learned just as much from the Q&A as I did from the session. After the Q&A ends and everyone leaves, you can walk up to the stage and talk to the Apple people one-on-one.
  5. You can also go to the Labs, which are basically computer labs set up with particular topics (topic-specific troubleshooting, interface consulting, etc.) in which Apple’s engineers will sit down with you and your code and help you implement a new API or debug a strange problem. Sometimes the engineer is actually the person who wrote the component you’re having trouble with. It may be helpful, or it may not — in my case, when I asked the engineer about a bug I was hitting in UITableView, he said that he hit the same problem and filed a bug report himself, and he forgot how it was eventually fixed. But that was the only time I used the Labs — I was underprepared and didn’t have enough specific code-level questions.
  6. The food, both in Moscone West and in most of the surrounding restaurants, is comically bad. Wichcraft and Whole Foods are good lunch options.
  7. You’re left with quite a bit of free time. Sessions run from 9-12 and 2-6, with Labs running all day. Since there’s not much else to do in the Moscone vicinity, expect to do a lot of socializing and a lot of drinking.

Since this was my first time going, I did a few things inefficiently. Here’s some lessons learned for next year:

  1. Get some T-shirts made for at least one of the products I’m representing. Everyone there wears their own T-shirts. (Related: Attire is extremely casual, and it was completely unnecessary to bring the sports jacket “just in case”. If your shirt has a collar, you’re better dressed than 90% of attendees — and many of the presenters.)
  2. Bring fewer promotional items of other types. I didn’t actually need to bring hundreds of Tumblr stickers (sorry John) because, unlike SXSW, this is a conference with nearly 100% geeks and very few marketers. There was almost never an appropriate time to hand them out. It was hardly even reasonable to hand out business cards most of the time.
  3. Fly out Friday night instead of Saturday morning. Almost everyone else does, so it’s a ghost town on Friday. The sessions even end early (by 3:30) to make this easier.
  4. I need to own a 15” MacBook Pro by next year’s WWDC. The MacBook Air was too underpowered and limited to do anything fun, and its battery life really isn’t very good. I almost bought one there.
  5. Bring more questions for the Labs.
  6. Set up the laptop as the iPhone sync and development computer. It was extremely limiting not being able to sync my iPhone without wiping it.
  7. A certain hotel’s WiFi captive-portal system only blocks outbound port 80. It’s a good thing a certain software company’s engineer told me about this so I could download the 3.0 SDK without angering Verizon with such a large download over EVDO. It’s unfortunate that I didn’t know before the last night and could have used the 3.0 SDK all week.
  8. Do not eat any food in SFO. Do whatever it takes to bring your own, possibly a wrapped sandwich if you can get one from somewhere good (like Whole Foods) before the flight.

And some things that worked out very well:

  1. Staying at InterContinental was an incredibly lucky move, as it’s by far the most convenient hotel, practically sharing a wall with Moscone West. It’s nice to be able to quickly stop by your hotel room whenever you want to drop stuff off, pick stuff up, or plug stuff in.
  2. I never reset my internal clock to Pacific time, so it was easy to go to bed and wake up early. Sure, I was the guy leaving the bar at 10 PM, but I also never had trouble waking up for the morning sessions. It was also incredibly easy to wake up at 6 AM on Monday morning (effectively 9 AM to me) and get a decent spot in the keynote line.
  3. I’m glad I took a few risks with session selection, preferring to be in a session for every timeslot (hey, gotta get your money’s worth). Even if there was nothing in that slot that seemed extremely applicable to my current development, I’d pick one that seemed tangentially related. I learned a lot more than I expected from these “fringe” sessions.

Overall, I’m impressed with WWDC, and I’ll almost certainly go again next year. If you’re a Mac or iPhone developer, and you can find a way to swing the (admittedly high) total cost of attending, I recommend it.