WWDC 2015 was last week, and once again was jam-packed with awesome talks. Below are some of my favourite. While all of them are iOS/OS X/Swift focused, I generally prefer videos that present concepts as well as code, so you can learn something even if you’re not in that ecosystem, and hopefully apply a new way of thinking to your language of choice.
Introducing the New System Fonts
An introduction to San Francisco, the new system font in iOS 9, OS X 10.11 and watchOS. This is definitely a design oriented talk, but as a developer it is really interesting to learn the considerations taken when designing for small screens, especially the tweaks to San Francisco Compact to make it more legible on a tiny Apple Watch screen.
Protocol-Oriented Programming in SwiftEven if you’re not a Swift programmer, you should be interested in learning good software engineering practices and expanding your knowledge by seeing how other languages’ paradigms work. This video, while obviously completely in Swift, had me thinking about how these techniques could be applied to Python, particularly in the area of making code more easily testable with less mocking.
If you’re building any kind of application that has different states, and requires other conditions to be met before entering these states, you should be using NSOperation. For example, to display a list of content for a user, the user must be logged in, and the content must be retrieved. Before the content retrieve operation can begin, the user log in operation must have completed. Using NSOperationQueue you can queue up operations that are only ready to execute when certain other operations have succeeded, i.e. the content search does not become ready to execute until login has completed successfully. Just watch the video, it explains it a lot better than I have. This is another design pattern that I would like to implement more in other languages too.
Watch Advanced NSOperations
Designing for Future Hardware
A video about testing software and hardware together, by using Keynote to prototype both the software AND the hardware. Again, while heavily iOS focused (of course), the concepts can apply to building and prototyping any form of GUI (you don’ necessarily need to be making hardware either).
I’m not a game developer, but after watching this I think I might want to be. The introduction of AI, state machines, path finding, behaviors, and many more game‑oriented tools makes it look so simple to build games using the built in GameplayKit. Some more in-depth examples with a demo game are covered in the Deeper into GameplayKit with DemoBots talk.
Watch Introducing GameplayKit