Your Own Private WWDC 2011

Now that Apple has released the complete set of WWDC 2011 videos to registered developers, those of us who couldn’t make it to the conference have the opportunity to hear about all the new, shiny stuff coming in Mac OS X 10.7 and iOS 5.

With 109 sessions to choose from, newcomers may not know where to start. This guide is intended to help you get started.

The Keynote: the only WWDC session not under NDA, this is where all the public news was announced. If for some reason you haven’t watched it yet, it’s worth watching, although it is a bit long and by now you’ve probably heard about everything.

Since everything else is under NDA, I can’t discuss specifics about the content of sessions.

Start with the Apple Platforms Kickoff. Where the keynote is truly for the press, this session is for developers.

Whether your focus is on Mac OS X or iOS, you’ll be using Xcode, so move on to Session 300: Developer Tools Kickoff. You’ll learn about the new tools and features coming in future versions of Xcode.

The final kickoff session is Session 400: Graphics, Media, and Games Kickoff. I found this session to be less focused on new stuff and more a general overview of the available frameworks and tools, though the demo at the end is impressive. There is a bit about Game Center and AV Foundation if you’re interested in these frameworks.

Trivia: in previous years, these sessions used the “State of the Union” moniker.

Where to next? That depends on what you want to do. Many sessions include pointers to others covering specific topics, so be sure to watch for those to find more information about areas that interest you.

If you’re a Mac OS X developer…

If you have an app in the Mac App Store or plan to ship one in the future, start with Session 203: Introducing App Sandbox and Session 204: App Sandbox and the Mac App Store. There are new submission requirements coming with 10.7 that are more important than anything else.

Follow that up with Session 101: What’s New in Cocoa. This is the high-level session to learn about the new stuff for developers in 10.7. Don’t miss Session 323: Introducing Automatic Reference Counting so you can (mostly) stop thinking about manual memory management.

Session 127: Design Patterns to Simplify Mac Accessibility is James Dempsey’s annual talk that includes a song. Even if you don’t think you care about accessibility (hint: you should), his talk is great and the song is a funny distillation of the topic.

If you’re an iOS developer…

Start with Session 100: What’s New in Cocoa Touch, then Session 323: Introducing Automatic Reference Counting, followed by Session 309: Introducing Interface Builder Storyboarding and Session 102: Implementing UIViewController Containment. Follow the suggestions for related sessions depending on your interests and needs.

App Design

Excellent design will set your app apart from the crowd. There are two sessions covering UI and UX topics: Session 110: Designing User Interfaces for iOS and Mac OS X Apps and Session 105: Polishing Your App, the latter of which includes non-visual polish such as responsiveness and performance, a user experience issue.

Security and Performance

You should care about the security of your app and how well it performs. Session 202: Security Overview discusses attack vectors and options for addressing them. Session 310: What’s New in Instruments will point you in the right direction for performance analysis and tuning, while Session 312: iOS Performance and Power Optimization with Instruments and Session 318: iOS Performance in Depth teaches practical techniques for diagnosing and fixing problems for iOS apps.

Releasing these videos for free is a great service to the Apple developer community. There is value in almost every session, and the huge advantage we have in watching them now is we can check out topics we might not have made time for if attending the conference in person. Skip ahead or stop a video if it isn’t holding your attention.

My recommendations here are a starting point. Apple’s platforms are growing and getting better every year. Explore new things; you never know when you might learn something relevant to an existing project. Watch a session about a topic you think you know well. With such a rich set of frameworks, there are often little tricks to learn that mean you can rewrite some old code to be clearer or perform better.

Is there a particularly good session I haven’t mentioned? Mention it in the comments!