(UPDATED: 14:05 PDT, 12 June 2015)
If you’re looking for a starting point to traverse the immense number of session videos now available from WWDC 2015, I’ve listed my favorites below in an order I think makes most sense if you have no ordering constraints and you’re starting fresh. I’ll be adding notes throughout the weekend, but I wanted to get a quick list up for anyone who wants to get started right away. (Scroll to the bottom for more info on the underlying rationale.)
Phase 1: Prepare yourself
- Keynote – duh.
- Platform State of the Union – Get the global view of what are thought to be the most important features of the new releases. (I found that this year it skewed pretty far from what I thought was important, but it’s good to know what’s on their mind.)
- What’s New in Xcode – No matter what, you’ll be using Xcode 7 soon.
- What’s New in Swift – If you’re going to be using Xcode 7 soon, and you use Swift, you must migrate your Swift code to Swift 2. Error handling and method availability APIs are all-new and very useful.
- Introducing WatchKit for watchOS 2 – Big changes are afoot for watchOS 2. If you haven’t already built a WatchKit app, this is more compelling – WatchKit 1 apps will continue to work on watchOS 2, albeit with their characteristic slower UIs.
- What’s New in Cocoa (Mac dev only)
- What’s New in Cocoa Touch – Hope you read between the lines last year and migrated to size classes and Auto Layout! Multitasking relies on these features to make your app look good. I think this is also the start of a thematic thread for iOS this year: UIStackView.
- What’s New in Storyboards – I’m a fan of Storyboards, and this year we got a few key feature updates, but one stands out to me: Storyboard References. You can break your massive MainStoryboard.storyboard into smaller functional segments but retain the benefits of other Storyboard features.
- UI Testing in Xcode – MY PERSONAL FAVORITE NEW FEATURE. Similar to KIF, but with a VERY fancy test recorder. Writing new UI tests looks like a breeze with the recording feature. You can also take screenshots during UI tests – perhaps we can use this to automate taking App Store screenshots.
- Continuous Integration and Code Coverage in Xcode – A close second for my personal favorite new feature. The code coverage is based on llvm-cov, which as been around for a while now. The combination of CI, Xcode’s new UI testing, XCTest unit testing, and code coverage data is going to be amazing.
Phase 2: Swift updates and depth
- Swift and Objective-C Interoperability
- Improving Your Existing Apps with Swift
- Protocol-Oriented Programming in Swift – If you’re finding yourself force-casting and force-unwrapping everywhere in Swift, or just perplexed, this can reveal important features of the language that will explain your problems and even give you architectural enhancements. (Some found the pedagogy of this session confusing, but the underlying concepts are very important and useful.)
- Swift in Practice
- Optimizing Swift Performance
Phase 3: Important iOS 9 Features
- App Thinning in Xcode
- Getting Started with Multitasking on iPad in iOS 9
- Introducing Search APIs
- Seamless Linking to Your App – This is an extraordinarily important feature for anyone whose iOS app mirrors content on the web. You can now “hijack”
- Introducing On-Demand Resources (for apps with assets) – Very useful for the class of apps it targets like games and media; not so much for most utility-based apps.
Phase 4: Important WatchKit Features & Info
- WatchKit In-Depth, Part 1 – Covers migrating your watch extension from living on an iPhone under watchOS 1 to living on the watch under watchOS 2.
- WatchKit In-Depth, Part 2
- Creating Complications with ClockKit – A highly-anticipated feature for watchOS 2, but it’s best applicable to a relatively narrow set of apps.
- Designing for Apple Watch – tl;dr: Do fewer things, and be careful about your presentation format.
Phase 5: Layout Improvements & Techniques
- Mysteries of Auto Layout, Part 1 – Here we continue the theme of “adopt UIStackView and stop being clever”.
- Mysteries of Auto Layout, Part 2
Phase 6: Other iOS 9 Improvements
- What’s New in Core Data – A new batch deletion method is stunningly useful. Scott Perry gives us a great Core Data performance debugging example.
- Cocoa Touch Best Practices – Revisit core parts of UIKit.
- Introducing the new System Fonts – San Francisco!
We will be able to use Swift 2.0 features in shipping apps as soon as Xcode 7 is GM, but iOS 9-only features are almost… advisory… unless you’re going to a 9.0 deployment target. There are also a lot of high-detail talks that will be great references after implementing these new features, but that are less useful before then.