🍎 Kuba Suder's blog on Mac & iOS development

New stuff from WWDC 2016

Categories: Cocoa, Mac, WWDC, iPhone Comments: 1 comment

WWDC 2016

Following the tradition from last year, here’s my complete list of all interesting features and updates I could find in Apple’s OSes, SDKs and developer tools that were announced at this year’s WWDC. This is based on the keynotes, the “What’s New In …” presentations and some others, Apple’s release notes, and blog posts and tweets that I came across in the last few weeks.

If for some reason you haven’t watched the talks yet, I really recommend watching at least the “State of the Union” and the “What’s New In” intros for the platforms you’re interested in. The unofficial WWDC Mac app is great way to download the videos and keep track of what you’ve already watched.

If you’re interested, here are my WWDC 2015 notes (might be useful if you’re planning to drop support for iOS 8 now and start using some iOS 9 APIs).

(This was originally posted on Gist at

Quick links:

macOS 10.12 • iOS 10 • watchOS 3 • tvOS 10

Foundation & Core Frameworks • macOS 10.12 SDK • iOS 10 SDK • watchOS 3 SDK • tvOS 10 SDK

Developer Tools • Other

OSX → macOS 10.12 Sierra


  • includes Siri
    • launch from dock, menu bar or with a keyboard shortcut
    • results can be pinned to the “Today” sidebar
    • some returned results like images can be drag&dropped to another app
  • any app with multiple windows can now group them into tabs in one window like in Safari or Finder
    • option in preferences to automatically use tabs: only in full screen (default) / always / never
  • new design for notification center / today sidebar
  • Universal Clipboard - copy/paste between Mac and iOS devices
  • Desktop/Documents folders can be automatically synced with iCloud Drive (?)
  • Auto Unlock - unlock the computer automatically with your Apple Watch
  • Picture-in-picture for video like on iOS
  • when dragging a window next to another, it will snap to the other window
  • all items in the menu bar can be reordered, removed (if the app allows it) and also navigated with keyboard
  • Safari:
    • blocks plugins like Flash, Java, Silverlight with click-to-run overlays, and doesn’t tell sites that they’re installed
    • makes Apple Pay available to websites - payments are confirmed with an iPhone or Apple Watch (a site can apparently even check if an iPhone is available nearby to pay?)
    • can now restore multiple previously closed tabs with Shift-Cmd-T like Chrome
  • updated Messages and Photos apps and Apple Music in iTunes with features matching iOS 10
  • a set of new features for reclaiming free space:
    • rarely used files can be moved to iCloud
    • automatic cleanup of files that aren’t needed anymore (e.g. caches, logs, backups)
    • automatic cleanup of files that have been in Trash for 30 days
    • new graphical tool for configuring these features
  • Gatekeeper changes:
    • option to allow any (non-signed) software is removed (right-click + Open still works)
    • Gatekeeper Path Randomization - newly downloaded non-MAS apps will be run sandboxed inside a read-only volume at a random location
  • Game Center app removed
  • added Preferences window to Notes app
  • added support for RAID to Disk Utility

iOS 10


  • redesigned notifications
    • new look for notification bubbles
    • notifications can be force-pressed to reveal a custom live (but not fully interactive) view with more data (support for non-force-touch devices coming soon)
    • notifications can include images
    • “clear all” button
  • redesigned widgets
    • swiping to the right on lock screen shows a widget screen, like “Today” tab in Notification Center
    • swiping before the first page on home screen also shows the same widget screen
    • app’s widget is also shown in the force-touch context menu
    • widgets have compact mode (constant size) and expanded mode
    • a lot of new widgets for built-in apps
  • redesigned lock screen
    • access camera by swiping to the left
    • access a widget screen by swiping to the right
    • no more “slide to unlock” (press home to leave the lock screen)
    • “Rest finger to unlock” option in accessibility settings
    • raise to wake - iPhone screen lights up when you pick up the phone (A9 devices only)
  • new look for the control center
    • music controls moved to a separate page that you can swipe to
    • third page for controlling HomeKit devices, if available
    • icons at the bottom have force-touch context menus (e.g. flashlight lets you choose light intensity)
  • many new features in Messages app
    • apps can provide stickers to be posted in messages or added to images, bubbles or other stickers
    • built-in “app store” for installing apps that integrate into Messages
    • previews for links and media in messages like in FB Messenger, videos/tracks can be played straight from a message
    • bubble animations - choosing the way the message will appear
    • full screen animations like fireworks
    • reactions to messages
    • sending handwritten notes
    • sending digital touch messages like from Apple Watch
    • drawing with a finger on photos
    • huge emojis in bubbles that only include an emoji
    • auto-suggesting words that can be replaced with emoji
    • threads list shows contacts' avatars or initials in circles
    • sending read receipts can be configured per person
    • option to use low quality images on bad connection
  • redesigned Apple Music
    • new design with large bold headings
    • lyrics support
    • Music app can automatically remove rarely played songs to free some space
  • redesigned News app
    • big headings with new bold font
    • breaking news notifications
    • paid subscriptions
  • updated Maps app
    • search moved to bottom, includes automatic suggestions
    • option to avoid toll roads
    • during navigation you can look for things like gas stations on the way and Maps will add a detour
    • navigation now auto zooms in/out and shows traffic
    • you can look ahead in navigation mode
    • apps can add extensions to Maps
    • “Show Parked Location” (requires a Bluetooth connection to the car?)
  • updated Photos app
    • “memories” feature - automatically groups photos into smart collections
    • added image recognition, lets you search for various objects (indexing done completely on the device)
    • automatic slideshow videos
    • places album that groups photos by location
    • people album that groups photos by who is on them
    • editing live photos
    • live photos stabilization?
    • “brilliance” adjustment tool
    • markup (drawing) on photos
  • Safari updates:
    • unlimited tabs
    • two Safaris in Split View on iPad side by side (“Open in Split View” in the context menu when you press a link)
    • you can quickly close all open tabs
    • pinch to zoom is enabled on all sites (even if the site specifically disables it with meta tags)
  • improvements in Mail app:
    • Mail now has a proper thread view like e.g. in Gmail
    • on the big iPad Pro there’s a 3-column view
    • filter view
    • Mail suggests to which folder you might want to move an email
    • quick unsubscribing from newsletters
  • updated Clock app
    • redesigned with a black background
    • bedtime tab - setting reminders to go to bed and a new way to set wake up alarms
    • new beautiful long alarm sounds specifically for the bedtime feature
    • sleep time statistics (shows when bedtime/wakeup alarm was set on given days)
  • Apple Watch app:
    • “Face Gallery” that presents available watch faces and complications
    • option to automatically upload music to the Watch
    • Background App Refresh toggles for apps
  • Home app for managing HomeKit devices
    • “scenes” allow performing actions on multiple devices at once
  • Universal Clipboard - copy/paste between Mac and iOS devices
  • smarter typing suggestions, including things like current location, addresses, contact info
  • autocorrect supports words from multiple languages in one sentence
  • VoIP apps can integrate better with the OS and make calls appear just like those done from the Phone app
  • most built-in apps can now be removed
    • this doesn’t let you choose third party apps as default replacements though
    • you can restore them later from the App Store
    • apps aren’t actually deleted from the phone, just hidden (you can restore them even with Airplane Mode on)
  • lots of small new features added to force touch context menus:
    • option to share a link to the app
    • option to prioritize download of an app that’s being updated (or pause/cancel download)
    • Settings app has links to things like cellular data or battery
    • force touch menu for folders shows an option to rename the folder and shortcuts to apps inside it which have badges
    • TestFlight apps have an option to send feedback to the developer
  • app/folder opening animations are faster?
  • opening camera no longer stops music
  • the “Back to previous app” link in the status bar is smaller and leaves space for cellular signal strength
  • shared documents and collaborative editing in Notes app
  • organ donation agreement info in the Health app
  • Split View support in App Store app on iPad
  • Game Center app removed
  • Voicemail transcriptions
  • changed vibration pattern for mute switch (?)
  • dark mode will probably be added in future, disabled for now
  • dropped support for iPhone 4s
  • 32-bit-only apps show a warning when launched for the first time

watchOS 3


  • glances replaced by a “dock” app switcher launched using the side button
  • control center (swipe from the bottom)
  • apps will now launch much faster on average
    • apps that are in the dock are kept in memory and updated in the background
    • same for apps whose complications are currently displayed
    • fitness apps can also run in the background
    • even apps that aren’t in the background should launch faster
  • raising your wrist shows previously open app for up to 8 minutes, after that it switches back to watch face
  • quickly switching between watch faces by swiping left/right on the watch face
  • a few new watch faces (a set of Activity faces, Numerals, X-Large, Minnie Mouse)
  • more spaces for complications in existing faces
  • new complications for built-in apps
  • more reaction options in notifications
  • you can now type text by drawing letters (even in Chinese)
  • some built-in apps have new layout/navigation
  • updated Messages with features matching iOS 10
  • timer app: easy way to pick common intervals for timer
  • clock app: redesigned with bedtime reminders
  • workout app: auto pausing, more metrics on one screen
  • new ‘Breathe’ app - like meditation apps on iOS, but very simple, includes reminders
  • Heart Rate moved to a new app
  • Home app for managing HomeKit devices
  • Find My Friends and Reminders apps
  • deleting built-in apps from iOS also removes them from the Watch
  • emergency SOS calls by holding the side button and selecting from the menu -> calls 112/911
    • sends your info, location
    • shows your “medical ID”
  • activity sharing: shares your activity rings with friends or family, you can send messages through the app commenting on their activity
  • better support for wheelchair users (no more “Time to stand up” :)
  • Apple Watch can now unlock your computer without having to type a password
  • shortcut for taking screenshots can be disabled

tvOS 10


  • updated Photos and Apple Music with features matching iOS 10
  • Siri can search movies by topic
  • Siri can find content on YouTube
  • live tune-in - go straight to live video instead of having to navigate through the app
  • dark mode
  • Home app for managing HomeKit devices
  • keyboard on an iPhone can be used to type on tvOS keyboard
  • Remote app for iOS that controls the Apple TV
  • support for up to 4 game controllers
  • games can require a controller
  • single sign on for paid TV apps
  • apps can now add badges on icons like on iOS
  • automatic download of apps bought on another device

Foundation & Core Frameworks

  • iCloud Core Data sync is deprecated - though it will continue to work for a while
  • CloudKit now allows sharing data between users
  • NSPersistentContainer - a simpler interface for setting up Core Data
  • NSDateInterval for representing intervals between two dates
  • NSDimension, NSMeasurement, NSMeasurementFormatter - for representing units of measure and converting between different units
  • NSISO8601DateFormatter
  • NSPersonNameComponentsFormatter can parse name components from a single name string
  • NSURLSessionTaskMetrics for measuring request time
  • completely new logging system
  • BNNS (Basic neural network subroutines) - a simple neural network SDK, focused on image recognition (part of Accelerate framework)
  • App Transport Security will be required for all apps at end of 2016, most existing exceptions removed (there will be exceptions for web views and video streaming)
  • various parts of Foundation, Core Data and other core frameworks are now accessible from Swift 3 through significantly more “swifty” APIs (more strictly typed, less string-based, more object oriented, less boilerplate)

macOS 10.12 SDK



  • new API for Safari extensions, extensions can now be sold through the App Store
  • window tabs support - automatic for NSDocument apps, new API for other apps
  • new APIs for handling content copied via Universal Clipboard
  • support for wide color spaces
  • purpose strings are now required to ask for permission to anything (camera, calendar etc.)
  • better support for right-to-left languages

New frameworks:

  • SafariServices for implementing new Safari extensions

Framework updates:

  • non-MAS apps (signed only with DeveloperID) can now use CloudKit, Push Notifications, iCloud Keychain, iCloud Drive
  • apps can integrate with the Contacts app, adding info to contacts
  • photo extensions can edit live photos

AppKit updates:

  • NSCollectionView:
    • collapsible sections
    • floating headers
    • scrollable backgrounds
  • NSFetchResultsController from iOS is now available on the Mac
  • NSGridView - like UIStackView but on a grid
  • NSStatusItem:
    • options to allow the user to remove the icon from the menu bar
  • simpler convenience constructors for a lot of UI control classes
  • AppKit can automatically find layout feedback loops (NSViewLayoutFeedbackLoopDebuggingThreshold)


  • UIAutomation framework is deprecated
  • removed support for garbage collection

iOS 10 SDK



  • improvements to Dynamic Type:
    • text size is now a trait, can be used in AutoLayout
    • available in app extensions
    • labels and text views can automatically update themselves (adjustsFontForContentSizeCategory)
  • widgets:
    • now displayed in a few different places
    • need to be able to handle two different display modes: compact (fixed height) and extended (whatever space you need)
    • new options for setting vibrancy
  • new APIs for handling content copied via Universal Clipboard
  • support for wide color spaces
  • purpose strings are now required to ask for permission to anything (camera, calendar etc.)

New frameworks and targets:

  • CallKit:
    • identification and blocking of incoming calls
    • call provider API - VoIP apps can make their calls appear just like those done from the Phone app and appear on Phone app’s history and favorites list
  • iMessage SDK - sticker packs and apps running inside Messages app
  • Siri SDK (Intents) - only for: ride booking, messages, payments, fitness, voip, searching photos, and some CarPlay features
  • Speech framework - speech recognizer
  • UserNotifications - new APIs for handling notifications
    • notifications now have a title, subtitle and description
    • notifications can have media attachments (including gifs)
    • more control over how the notifications are displayed, more callbacks
    • app extension for expanded views when the user presses the notification
    • service extension that pre-processes the notification before it’s displayed (e.g. to implement encryption)
    • you can even update already delivered notifications
    • default action can be assigned to be called when a notification is dismissed
  • Video Subscriber Account framework - for supporting single sign on with paid TV network accounts
  • many new app extension types (19 new in total!)

Framework updates:

  • advertisingIdentifier returns a string of zeroes if user has enabled limiting ad tracking
  • NSUserActivity and Spotlight APIs:
    • support for specifying user and place locations
    • Spotlight continuation - user can continue Spotlight search inside the app
    • apps can query the Spotlight index
  • PassKit:
    • new APIs for handling payments without using UIKit controls
  • Photos framework:
    • apps can edit live photos
  • SafariServices:
    • SFContentBlockerManager: content blocker can check if user has enabled it
    • SFSafariViewController: you can set toolbar tint color
  • SceneKit:
    • new rendering engine
  • WebKit:
    • WKWebView: more options for implementing peek & pop

UIKit updates:

  • UIApplication:
    • openURL is now asynchronous with a completion handler
  • UICloudSharingController - for letting the user share content with others through CloudKit
  • UICollectionView:
    • automatic size estimation in flow layout
    • paging support
    • automatic cell prefetching
    • data prefetching
  • UIGraphicsRenderer - new block-based API for rendering images in memory
  • UIPreviewInteraction - new class for implementing more complex force touch interactions
  • UIRefreshControl:
    • it’s now supported in all scroll views, table views and collection views
  • UISpringTimingParameters - for more precise spring animations
  • UITabBar:
    • more options to customize colors
  • UITableView:
    • prefetching delegate like in UICollectionView
  • UITextField:
    • can provide more fine-grained info about its semantics (textContentType) to get better smart suggestions while typing
  • UIViewPropertyAnimator for controlling complex and interactive animations

watchOS 3 SDK


  • complications can now have 50 scheduled updates per day
  • glances no longer available
  • notification detail views can have more complex UIs, including SceneKit
  • UserNotifications API like on iOS
    • Watch can show its own notifications locally, independently of the iPhone
  • dock snapshots:
    • new app dock shows static snapshots of apps saved when they were suspended
    • periodically updated in the background, e.g. when a notification is received
    • you can control what gets saved into the snapshot - can be different than the actual UI
  • in apps with hierarchical navigation you can do vertical paging from one detail view to another (as long as they fit on one screen)
  • ability to play inline audio and video (Core Audio, AVFoundation)
  • support for Background App Refresh and background URL sessions
  • access to crown and touch events, gesture recognizers (WKGestureRecognizer)
  • fitness apps are allowed to run in the background and access sensors continuously (accelerometer, gyroscope, heart rate)
    • iOS app can automatically start matching Watch app when the user starts a workout
  • support for Apple Pay
  • SpriteKit and SceneKit
  • CloudKit, GameKit, HomeKit
  • support for wide color spaces

tvOS 10 SDK


  • support for Photos, HomeKit, ReplayKit, Multipeer Connectivity
  • UserNotifications API like on iOS
  • Video Subscriber Account framework - for supporting single sign on with paid TV network accounts
  • new view focusing API (UIFocusItem)
  • dark mode implemented as a new trait
  • new APIs for handling content copied via Universal Clipboard
  • support for wide color spaces
  • purpose strings are now required to ask for permission to anything (camera, calendar etc.)

Developer tools


  • Swift Playgrounds app for learning and experimenting with Swift on an iPad
  • unified and redesigned documentation site

Xcode 8


  • Xcode editor extensions (old plugins don’t work anymore)
  • improvements in storyboards:
    • smooth zooming, allows editing at any zoom level
    • should be much faster
    • allows switching quickly between device sizes (“view as”)
    • much more accurate rendering (done using the simulator), includes effects like vibrancy
    • supports both AutoLayout and non-AutoLayout views in a single hierarchy
  • automatic provisioning in development mode
    • support for multiple development certificates per user
    • manual control still possible, more customizable and transparent than before
  • includes both Swift 3 and 2.3 for easier migration to new SDKs (but it’s recommended to migrate to Swift 3 soon)
  • Swift compiler can treat warnings as errors
  • includes complete documentation (no need for extra downloads)
  • asset bundles improvements:
    • automatic compression
    • support for right-to-left
    • support for wide color assets
  • memory debugger for visualizing object graphs in memory and finding leaks (Swift 3)
  • thread sanitizer for detecting threading bugs (Swift 3)
  • address sanitizer supports Swift (3)
  • static code analyzer finds missing localizations, nullability violations in ObjC
  • accessibility inspector to detect missing accessibility info (including automatic audit)
  • view debugger:
    • more accurate display
    • more detailed info about constraints
    • shows autolayout issues
  • better Core Data support: Xcode can now automatically create and manage NSManagedObject subclasses for your models (Swift 3)
  • color and image literals
  • new San Francisco Mono font
  • new color themes
  • active line highlighting
  • comments like TODO or FIXME are listed in the method dropdown with nice icons
  • LLDB runs in a separate process, so shouldn’t crash Xcode anymore
  • xcodebuild has a “-quiet” flag
  • Xcode cleans up outdated derived data, precompiled headers and module caches
  • supports switching Swift toolchains without relaunching Xcode

App Store

  • promo codes for in-app purchases
  • subscriptions:
    • allowed for any kind of app
    • subscriptions leave 85% revenue for the developer after 1st year for a given user
    • per territory pricing, more price tiers
    • you can choose to let users keep old price after raising prices
  • analytics now counts “impressions” (number of times your app has appeared on any lists) apart from product page views
  • screenshot simplification: upload one set of screenshots per device class and by default they’re reused for all smaller devices and all locales
  • support for stickers: new category, new set of screenshots for how your app looks inside iMessage
  • completely rewritten App Store review guidelines (more human readable, translated to 10 languages)
  • iTunes Connect Mobile updates:
    • supports multiple teams
    • can switch between downloads and revenues
    • can release a prepared version to the App Store


  • classes can now have class properties (@property (class)) - no @synthesize though, you have to implement them yourself
  • support for type inference (__auto_type)


  • Apple File System (APFS) - preview version available for testing

1 comment:


Thank you for this awesome list!!! And for the 2017 one!!

Leave a comment


This will only be used to display your Gravatar image.


What's the name of the base class of all AppKit and UIKit classes?