Who has time to watch all of the WWDC videos? If only there were someone who would watch all of the content and then present WWDC 2016 video summaries…

Well I do have time to watch all of the WWDC videos, as a matter of fact. (Not all at once, mind you. Please be patient while I fill in the details.)

Please see below for my assessment of what was important for each of the presentations from WWDC 2016.

Jump to a section: Featured | App Frameworks | Distribution | Developer Tools | Media | Graphics and Games | System Frameworks | Design


101 — Keynote

  • watchOS: app launch speed; UI and usability improvements
  • tvOS: new Apple Remote app; single sign on
  • macOS: auto unlock; tabs; Siri
  • iOS: raise to wake; SiriKit; voice mail transcription; Swift Playgrounds

102 — Platform State of the Union

  • iMessage App Store
  • SiriKit for certain app types
  • Swift 3 source stability
  • Memory debugger
  • Provisioning improvements with Automatic Code Signing
  • Apple File System
  • CloudKit Sharing

App Frameworks

203 — What’s New in Cocoa

  • Window tabs: every window is visible, hidden at system level
  • Right-to-left support: Right to left pseudolanguage option in scheme properties allows for testing
  • Dropping NS prefix in key Foundation types in Swift
  • Measurements and units

205 — What’s New in Cocoa Touch

  • Core technologies: Swift 3 source code improvements; UIPasteboard; UIGraphicsRenderer class
  • Building better UI: SFSpeechRecognizer, text field type tagging, automatic support for dynamic type, cell and data prefetching in table and collection views
  • Adopting system features: CloudKit record sharing; ReplayKit live broadcasting
  • Integrating with iOS: new user notification framework

206 — What’s New in tvOS

  • HomeKit and PhotoKit support
  • TVMLKit: Javascript and XML
  • Light and dark appearance available on UITraitCollection

207 — What’s New in Foundation for Swift

  • Drop NS prefix in Swift Foundation
  • New value types (Data, Date, IndexPath, URL, UUID, Measurements)
  • Block based Timer

208 — What’s New in watchOS 3

  • Shorten your interactions
  • Background app refresh: update complication, app, and snapshot
  • Background app updates of 10 apps in dock can run once per hour for each app
  • Xcode CPU usage report
  • Direct access to crown events

213 — Improving Existing Apps Using Modern Best Practices

  • Minimum deployment target of iOS 8 supports 95% of devices
  • Add Peek, Pop, Quick Actions
  • Asset catalogs: move legacy images, provide all scaled image types
  • Dependency injection: give view controllers all information needed instead of reaching back to app delegate
  • Swift playground improvements: indefinite execution to utilize asynchronous result operations, live view

217 — Introducing SiriKit

  • Siri works in domains: message, VoIP, payments, workouts, ride booking, photo search
  • Intent: action to be performed, classified into a domain
  • Intent lifecycle: resolve all parameters, confirm, handle
  • Intents UI extension: UIViewController, not interactive, limit to essential information, account for screen sizes
  • App-specific vocabulary plist of actions and parameters

219 — What’s New in UICollectionView in iOS 10

  • Smooth scrolling: cells held onto longer once scrolled off screen, automatic cell pre-fetching enabled by default, optional pre-fetching API, same concepts brought to UITableView as well
  • Self-sizing cells: estimatedItemSize can be set to automatic size, works best with cells of constant widths or heights
  • Interactive reordering: scrolling can move in page sized increments
  • UIRefreshControl directly supported in UICollectionView, UITableView, UIScrollView

226 — What’s New in CloudKit

  • Container now contains shared database in addition to private and public databases
  • Telemetry: visualize app’s behavior through CloudKit dashboard, public DB or aggregated private DBs
  • API improvements: operations survive app exit, CKOperation timeout (defaults to 60s), fetching operations have been restructured for handling multiple record zones
  • Sharing records: subclass CKRecord and save CKShare, URL created upon successful share creation for each shared record

236 — What’s New in Auto Layout

  • Views with no constraints can have autoresizing masks (!!!)
  • Incremental adoption of constraints (!!!)
  • Turn off ambiguity error messages on a per view basis
  • NSGridView new for Cocoa
  • Layout feedback loop debugger launch argument can help debug layout loops caused by upstream geometry changes and ambiguous layout oscillations

242 — What’s New in Core Data

  • Query generations keep track of what database generation token (snapshot) a context is loading from
  • Concurrency: performBlockAndWait now wraps an autorelease pool (watch NSError), SQL store can now handle multiple read requests
  • Core Data configuration boilerplate code reduced
  • NSPersistentContainer has methods for executing on main or background queue
  • Automatic subclass generation in model editor in Xcode 8
  • New environment variables: enable thread assertions, enable logging, enable file assertions


305 — What’s New in iTunes Connect

  • Subscriptions: auto-renewable available in all categories, 85/15 split after 1 year of renewing
  • Screenshot simplification: automatically scale 5.5″ images down to smaller screen sizes, locale sharing
  • New app review guidelines document

Developer Tools

401 — What’s New in Xcode App Signing

  • Multiple development certificates in Xcode 8: for development only
  • Signing in Xcode 8 fully redesigned: new workflows and UI, actionable messaging, automatic signing in development mode only, custom signing profiles referenced by name instead of by GUID
  • Best practices: avoid build settings tab and use the new UI in the general tab, Organizer will re-sign development signed app into distribution archive

402 — What’s New in Swift

  • Primary goal of Swift 3 is source compatibility
  • Swift / Objective-C API improvements (Foundation, Dispatch, Core Graphics)
  • Migrate from Swift 2.2 to 2.3 or 3 as an interim solution

405 — What’s New in LLVM

  • New optimization and correctness warnings and errors
  • Link-time optimization: removes dead code, whole program optimizations, incremental build improvements


504 — What’s New in HTTP Live Streaming

  • MP4 segments and fragments supported in HLS playlist file
  • In-playlist timed metadata based on date ranges
  • Offline HLS with AVAssetDownloadTask

Graphics and Games

604 — What’s New in Metal Part 1

  • Tesselation: A9 processor on iOS only, OpenSubdiv open source project
  • Resource heaps can boost performance by reducing memory thrashing when creating Metal devices
  • New tools: Metal system trace tool, GPU override modification selector in Xcode, frame debugger

605 — What’s New in Metal Part 2

  • Specialized functions at run time
  • Xcode asset catalogs automatically create textures with P3 display support
  • New Metal performance shaders

608 — What’s New in GameplayKit

  • Agents support 3D coordinates
  • Procedural generation for textures, worlds, height maps, biomes
  • Game AI: new Monte Carlo strategist, custom strategist
  • Xcode tools: entity and components editor, navigation graph editor, scene outline, state machine quick look

System Frameworks


Comments are closed.