Skip to content

Instantly share code, notes, and snippets.

@mackuba
Last active March 5, 2023 21:28
Show Gist options
  • Save mackuba/e8fb4219c7ef611f47cdb66b93986d85 to your computer and use it in GitHub Desktop.
Save mackuba/e8fb4219c7ef611f47cdb66b93986d85 to your computer and use it in GitHub Desktop.
New stuff from 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).


OSX → macOS 10.12 Sierra

http://www.apple.com/macos/sierra-preview/

  • 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

http://www.apple.com/ios/ios10-preview/

  • 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

http://www.apple.com/watchos-preview/

  • 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

http://www.apple.com/tvos-preview/

  • 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

https://developer.apple.com/library/prerelease/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/
https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatNewCoreData2016/

  • 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 SDK

https://developer.apple.com/macos/
https://developer.apple.com/library/prerelease/content/releasenotes/MacOSX/WhatsNewInOSX/Articles/OSXv10.html
https://developer.apple.com/library/prerelease/content/releasenotes/AppKit/RN-AppKit/

  • non-MAS apps (signed only with DeveloperID) can now use CloudKit, Push Notifications, iCloud Keychain, iCloud Drive
  • new API for Safari extensions, extensions can now be sold through the App Store
  • apps can integrate with the Contacts app, adding info to contacts
  • photo extensions can edit live photos
  • window tabs support - automatic for NSDocument apps, new API for other apps
  • 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
  • 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.)
  • AppKit can automatically find layout feedback loops (NSViewLayoutFeedbackLoopDebuggingThreshold)
  • better support for right-to-left languages
  • UIAutomation framework is deprecated
  • removed support for garbage collection

iOS SDK

https://developer.apple.com/ios/
https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html
http://adcdownload.apple.com/WWDC_2016/iOS_10_beta/iOS_10_beta_Release_Notes.pdf
https://developer.apple.com/ios/human-interface-guidelines/overview/whats-new/
https://developer.apple.com/sirikit/
https://developer.apple.com/imessage/

  • Siri SDK (Intents) - only for: ride booking, messages, payments, fitness, voip, searching photos, and some CarPlay features
  • iMessage SDK - sticker packs and apps running inside Messages app
  • 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
  • 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
  • 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 is 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
  • 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
  • SceneKit: new rendering engine
  • SFContentBlockerManager: content blocker can check if user has enabled it
  • SFSafariViewController: you can set toolbar tint color
  • WKWebView: more options for implementing peek & pop
  • 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
  • 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)
  • many new app extension types (19 in total now)
  • 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.)

watchOS SDK

https://developer.apple.com/watchos/
https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInwatchOS/Articles/watchOS3.html

  • 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 SDK

https://developer.apple.com/tvos/
https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewinTVOS/Articles/tvOS10.html

  • 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

https://developer.apple.com/swift/
https://developer.apple.com/swift/playgrounds/

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

Xcode 8

https://developer.apple.com/xcode/
http://adcdownload.apple.com/Developer_Tools/Xcode_8_beta_2/Release_Notes_for_Xcode_8_beta_2.pdf

  • 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

ObjC

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

Other

https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html
https://developer.apple.com/library/prerelease/content/documentation/FileManagement/Conceptual/APFS_Guide/

  • Apple File System (APFS) - preview version available for testing
@tbaranes
Copy link

Awesome!

@radekcieciwa
Copy link

Thanks !

@Kastet
Copy link

Kastet commented Jul 16, 2016

Nice overview! Thanks!

@khangaldi
Copy link

Neat. Thanks

@xxx50236
Copy link

Good Job. Tks

@sfsam
Copy link

sfsam commented Jul 16, 2016

You might add Gatekeeper Path Randomization on Sierra. It's pretty consequential for indie developers who distribute outside the Mac App Store. Some info on it here: http://weblog.rogueamoeba.com/2016/06/29/sierra-and-gatekeeper-path-randomization/

@nemesis
Copy link

nemesis commented Jul 18, 2016

What a great list of changes 🍸

@ChrisHong
Copy link

Thank you for compiling this time-saving list.

@ElyasNaranjeeSani
Copy link

Nice! Appreciate it.

@wavs
Copy link

wavs commented Jul 23, 2016

Thank you! :)

@mackuba
Copy link
Author

mackuba commented Jul 23, 2016

@sfsam thanks, I heard about this in one presentation, but I assumed it was something that would only cause problems in some edge cases, since in 99% cases apps just include everything they need inside the app bundle... But I haven't realized it also mounts apps on a read-only volume and breaks Sparkle. So I guess in this case the solution is to keep nagging the user to move the app to Applications?

@cepages
Copy link

cepages commented Jul 25, 2016

Nice one!

@lucasvercelot
Copy link

Thank you :)

@bendodson
Copy link

@mackuba one relatively minor but important change is that the permissions for Apple Music now encompass read-only access to the media library via MPMediaQuery - I've written about it a lot since discovering the media library could be used for tracking users across apps so happy to see it fixed in iOS 10. I have a post about the changes at https://bendodson.com/weblog/2016/08/02/media-library-privacy-flaw-fixed-in-ios-10/

@stevemoser
Copy link

Don't forget about redrawn and new emoji 😄

@axel-fp
Copy link

axel-fp commented Aug 5, 2017

Hey @mackuba, great review! Thank you for this! Any follow-up experiences with this machine? i've heard about some issues in the long run like keyboard being stuck or weird stuffs about some models and it would be great to know if you are experiencing those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment