If you weren’t lucky enough to get a “golden ticket” to WWDC this year, catching up with the videos can be quite a challenge.
There are over 90 videos available on the WWDC 2015 site; but only so many hours in the day!
You may be wondering which videos are the best “bang for your buck” with your limited amount of learning time.
To help with this, the Tutorial Team and I have compared notes, and put together this list of what we consider the Top 10 WWDC 2015 videos.
To get up-to-speed, we recommend you start with video #1 on this list and watch as many as you can after that. Let’s dig in!
1) Platforms State of the Union
If you just have time for 1 video, this is it!
For developers, the real start of WWDC is the Platforms State of the Union session. The Keynote is a fluffy offering to surprise and delight the general public, investors and Apple faithfuls. The State of the Union, in contrast, is where the really interesting details come out.
This talk surveys the new technologies and outlines which sessions will provide more details on each technology. Highlights of the 2015 Platforms State of the Union include:
- New features in Xcode 7 such as testing, layout, App Slicing, On Demand Resources, and Bitcode.
- New features in iOS 9 such as Search,
UIStackView, Multitasking, GameplayKit, and more.
- New features in watchOS 2 – most notably that apps are now native, which brings a host of new opportunities and changes.
There are many more new items covered in the Platform State of the Union than I can address in this article. If you watch no other WWDC 2015 session video, this is definitely the one to watch.
2) Protocol-Oriented Programming in Swift
Of all of the sessions that caught the attention of the team, Protocol-Oriented Programming in Swift stands out. Nearly every member mentioned this talk as their number one choice. Apple engineer Dave Abrahams asks us to put aside our “regular” ways of developing and follow along as he tells a story using protocol-oriented development rather than classes.
After listing off the benefits of classes, he counters those benefits with the revelation that Swift is a protocol-based language. By trading dynamic polymorphism for static polymorphism, he contends that protocols and the new protocol extensions are much better than superclasses for abstraction. Protocols add new magic and lead into the use of value types as outlined in Building Better Apps With Value Types in Swift.
3) Building Better Apps With Value Types in Swift
“OOP developers are used to mainly dealing with reference types, but value types have become much more useful in Swift, and this is a great session to explore their capabilities.” – Jozsef Vesza
This follows up on our #2 session video, Protocol-Oriented Programming in Swift, and demonstrates how protocols and value types are used in Swift development. The talk covers the distinction of reference types from value types and how they can be used together.
Through examples, the presenters describe how Adobe employs value semantics in practice. Several members of the team felt that this session was a must-see for all developers.
4) Advanced NSOperations
“This was a surprise one for me. Basically it seems you can turn anything into an operation, which simplifies dealing with dependent processes. It also comes with a crazy example project which is definitely worth exploring.” – Jozsef Vesza
This session explores NSOperations, which have been around for a long time in iOS development. This session was still helpful nonetheless, as it discussed how to use them effectively in practice.
In this video, Dave DeLong explains how NSOperations are used extensively in the official WWDC app. Login, videos, alerts and several modal operations in the WWDC app are also implemented as NSOperations.
Block Operations can be further enhanced with NSOperations and dependancies to control the flow of the app. For instance, a user could be prevented from providing feedback until they log in with their developer account. Using blocks with NSOperations ensures that this cannot happen.
Creating a single operation also creates its own dependencies, and operations can also be composed to work in concert with each other. By putting your logic inside operations, it makes it extremely easy to change your app later.
5) UI Testing in Xcode
XCTest is integrated along with Accessibility, which allows XCTest to interact with your apps in the same way that a user would. It seems to me that Xcode 7 makes it relatively painless to adopt testing as a regular part of your development cycle.
The demo from this presentation shows how easy it is to record and create tests in Xcode 7 using
XCTestQueries. Chaining queries together can create powerful tests for your app. Including Accessibility in your apps lets less able-bodied users get the most out of your app.
Test Reports lets you review the tests run on your app. If you’ve been at all curious about creating tests for your apps, or creating better tests for your apps, then this session is for you.
6) What’s New in Swift
Swift will undoubtedly play a huge role in the future of Apple development; and open-sourcing the Swift language in the fall of 2015 can only aid in further adoption.
This session is hosted by one of the originators of the Swift project, Chris Lattner, and engineer John McCall covers the enhancements in Swift 2.0. Of note is improved error handling as well as a host of other new features. They also cover features of the Swift Migrator to assist in moving your code to the new language version.
Compound conditions add improved pattern matching and the new
guard statement builds in rich conditionals. Improvements like inline coding make
switch statements and pattern matching even better in Swift 2.0. The new
#available statement aids in testing for compatibility between a new feature and whether it’s available in a particular OS.
To learn more, check out the video or Greg Heo’s What’s New in Swift 2.0 for a great overview of the changes to Swift.
7) Introducing GameplayKit
This session serves as a jam-packed introduction to Apple’s surprise new gameplay framework – GameplayKit.
GameplayKit is a collection of handy components commonly used in games. The presenters describe the seven main components and dive into each set of classes. State Machines manage the state-fullness of the game play, Agents create autonomous moving entities, and Pathfinder manages how they move between nodes.
To me, Agent Goals and Behaviors is the coolest part. This component allows you to give your sprites believable movement and organic behaviors. The demo of this section shows how easy it is to move elements, whether it’s a flock of birds or race cars navigating around a track. I’ve been waiting for these kinds of tools to use in my own apps.
Pathfinder helps entities find a path around obstacles in a realistic fashion. MinMax AI makes turn-based games really smart: it looks at moves, forms a decision tree and maximizes gain and minimizes loss. Chock full of explanation and examples, this is the State of the Union for game developers!
8) Mysteries of Auto Layout Series
“Since Auto Layout is now pretty much a requirement for apps, it’s well worth checking this out – there’s something for everybody to learn.” –Sam Davies
Have I mentioned Auto Layout yet? :] Since its introduction a couple of years ago, adopting Auto Layout has been a challenge for many developers. Some developers love the code-based approach, but last year’s revision to Auto Layout and the additional tools in Interface Builder have made adoption of Auto Layout a little easier.
The two-part Mysteries of Auto Layout session covers 12 mysteries, from best practices to solving some of the most complex layout issues. You’ll cover maintainable layouts, self-sizing TableView Cells, priorities, layout cycle and legacy layouts to name just a few.
In the second part you’ll delve into the complexities of constraining negative space, handling unsatisfiable constraints and resolving ambiguities.
9) Getting Started with Multitasking on iPad in iOS 9
Multitasking on the iPad is a huge new feature and is covered in this video, the first of a three part series.
This video introduces you to the way multitasking works and covers the requisite changes in UIKit. This is important to know because your users will expect your apps to include and support Multitasking; in fact, building a new app with Xcode 7 will have Multitasking enabled by default.
Multitasking builds upon two things you should already be familiar with: Auto Layout and Adaptive Layout. Apple also recommends the use of Launch Storyboards, also introduced last year. Are you detecting a theme here? :]
Since the simple iPad and iPhone size classes are a thing of the past, you need to be flexible. This is both a welcome and a huge change if you’re an iPad developer; this makes this session a must-see. Your app will need to make smart layout decisions as your users resize your apps to fit their whims.
10) Layout and Animation Techniques for WatchKit
This video targets all WatchKit developers as it covers aspects of both the current WatchKit and the new WatchKit 2.0 frameworks.
The video explains how you align and size interface objects and how WatchKit 2.0 gives you even finer control of layout and animation:
- Horizontal and vertical alignment along with relative sizing becomes more accessible.
- Sizing can be done relative to an object’s container and adjustments can be applied afterwards.
- Grouping and nesting elements offer finer control and make really complex layouts possible.
The video also shows how animations using timers and functions like
insertTableRow aid in creating dynamic presentations, and how you can create really interesting transitions with only a few lines of code. WatchKit 2 also lets you to animate the elements of the interface, such as opacity, width/height, alignment, color and group insets.
To learn more, check out the video, or check out Mic Pringle’s coverage on the new WatchKit at WatchKit for watchOS 2: Initial Impressions.
Where to Go From Here?
In summary, here are our picks of the top 10 WWDC videos to watch:
- Platforms State of the Union
- Protocol-Oriented Programming in Swift
- Building Better Apps with Value Types in Swift
- Advanced NSOperations
- UI Testing in Xcode
- What’s New in Swift
- Introducing GameplayKit
- Mysteries of Auto Layout [Part 1] [Part 2]
- Getting Started with Multitasking on iPad in iOS 9
- Layout and Animation Techniques for WatchKit
Which WWDC Session most impressed you? Feel free to share your own favorites in the discussion below – and happy video watching! :]