New stuff from WWDC 2018
For the last 3 WWDC’s I’ve been collecting ordered lists of all new features and APIs added in the new releases of Apple’s OSes, either announced in the keynote or one of the talks, or in release notes, or just discovered by some API diff spelunkers :) I’m pretty late with that this year, because I spent some time instead on a couple of longer posts about notifications and Dark Mode, but here it is, just in time for the final launch and the September event.
In general, there seems to be noticeably less changes this year, which is good in a way - it should be easier for us to learn the new things and update our apps. For a moment it even looked like the “macOS SDK” section could be longer than the “iOS SDK” this time with all the Dark Mode changes, but iOS got a boost from the notification APIs and finally finished 3 lines ahead of macOS :)
If you want to learn more about any given topic, the best way is probably either to look it up in the shiny new Apple Developer Documentation (redesigned last year), or watch the recorded WWDC talk videos - either on Apple’s site, or using the great unofficial WWDC Mac app.
Previous editions are available here:
Quick links:
macOS 10.14 β’ iOS 12 β’ watchOS 5 β’ tvOS 12
Foundation & Core Frameworks β’ macOS 10.14 SDK β’ iOS 12 SDK β’ watchOS 5 SDK β’ tvOS 12 SDK
Web APIs β’ Developer Tools β’ Safari 12
macOS 10.14 Mojave
ποΈ https://www.apple.com/macos/mojave/
- Dark Mode (more info: part1, part2)
- 8 accent colors instead of just blue/graphite
- Desktop:
- dynamic wallpapers
- desktop stacks
- Screenshots:
- thumbnail sliding in in the corner like on iOS that opens an edit view
- options HUD while screenshot is being taken (Cmd+Shift+5)
- recording screencasts from inside the screenshot tool
- new redesigned Mac App Store
- new apps ported from iOS with Marzipan:
- Home
- News
- Stocks
- Voice Memos
- Books:
- renamed from iBooks to Books
- Finder:
- gallery view replacing Cover Flow
- right sidebar shows more file metadata (e.g. for photos)
- the set of fields shown can be configured per file type with the “Show Preview Options” context menu action (source)
- quick actions on files in the right sidebar and Touch Bar
- new actions can be created in Automator (“Quick Action” template, replaces older “Service”)
- markup editing and video trimming inside Quicklook
- iCloud Drive has now its own section in the folder sidebar (source)
- FaceTime:
- group calls - up to 32 people (delayed)
- Mail:
- emoji picker button
- suggests a folder to move a message?
- stationery feature removed
- Safari:
- favicons in tabs
- prevents tracking through commenting systems and share buttons (loads on demand)
- makes fingerprinting harder - lists only built-in fonts, no legacy browser plugins
- iCloud Keychain:
- can automatically create strong passwords for you when signing up
- highlights duplicated passwords
- Siri can be asked to find saved passwords
- Continuity Camera - use your iPhone as an external camera to take a photo for the Mac
- forms will auto-suggest security codes from recent SMS
- access to camera and microphone is now protected with privacy popups
- access to various locations on the disk e.g. Mail & iMessage databases, Safari data, backups is also protected and must be manually granted in the System Preferences
- OS updates have been moved from the App Store back to System Preferences
- subpixel antialiasing option has been removed
- option to show recently used apps in the Dock (like on iPad), between the main and folders/minimized sections
- “Prefer External GPU” option in app properties (source)
- DVD player app rewritten, but hidden in /System (source)
- Grab utility app has been removed
- APFS is now available for Fusion drives and HDDs
- faster wake from sleep?
- Siri has access to HomeKit (source)
- removed social network accounts from “Internet Accounts” (Twitter, Facebook, LinkedIn, Vimeo, Flickr) (source)
- drops support for 2009-2011 macs (source)
- removed “Back to My Mac” feature (source)
- Mojave is the last version to support 32-bit code at all (32-bit-only frameworks like QuickTime and Java 1.6 will also be removed next year)
- Software > Legacy Software in System Report lists installed 32-bit software
- NOT merging with iOS π
iOS 12
ποΈ https://www.apple.com/ios/ios-12/
ποΈ https://www.apple.com/ios/ios-12/features/
- massively improved performance: some common actions up to 2x as fast on some devices
- Siri Shortcuts:
- any app can expose quick actions to Siri, to which the user assigns their own phrase and can launch them by saying it
- Siri will automatically suggest some shortcut actions that it thinks you might want to run at a given time (e.g. on lock screen and search screen)
- shortcuts can also be run from HomePod, Apple Watch
- Shortcuts app:
- lets you create Siri shortcuts that execute whole workflows consisting of multiple chained actions
- includes a gallery of pre-made shortcut examples
- Do Not Disturb:
- DND during bedtime
- when turning on DND in control center, there’s an option to automatically turn it off later
- Notifications:
- notification tuning - turn off or silence notifications from notification center or lock screen (includes Siri suggestions)
- grouped notifications
- Screen Time:
- new section in Settings with reports on how you use your device
- weekly activity summary
- app limits: limit how much time you can spend daily in a given app, or in what hours some apps should be blocked
- parental controls: parents can get reports from their children’s devices and set time limits for them
- Measure app - AR measurements
- Animoji:
- tongue detection
- new faces: ghost, koala, tiger, t-rex
- Memoji: personalized animoji with custom-built faces
- animoji clips in messages can be up to 30s long
- Books:
- rebuilt with a new Apple Music-style design
- renamed from iBooks to Books
- new book & audiobook store
- “Reading now” shows currently read book
- Camera:
- “apps” panel that lets you add text, shapes, stickers and animoji/memoji
- FaceTime:
- group calls - up to 32 people (delayed)
- start a group call from a group chat
- members can join and leave at any time
- “roster” with people at the bottom, your face in the corner
- automatically enlarges the view of the person who is speaking, but you can pick anyone manually
- includes animoji and effects
- News:
- “Browse” tab - lists channels and topics
- new sidebar on the iPad
- Photos:
- search moved to a new tab, includes search suggestions
- much improved places search
- searching for events that you’ve attended
- searching with multiple search terms
- memories tab becomes “For You” tab, includes featured photos, shared album activity, suggestions for effects, sharing
- RAW file editing support
- iCloud share links can be generated for specific photos (source)
- improved import from an external camera?
- redesigned Albums tab?
- improved QR code reader?
- improved Portrait Lighting?
- Podcasts:
- support for chapters in MP3 podcasts (source)
- Safari:
- favicons in tabs
- prevents tracking through commenting systems and share buttons
- makes fingerprinting harder
- Safari on iPhone X now has tabs in landscape mode (source)
- Stocks:
- rebuilt with a new design
- includes sparklines, Apple News stories, interactive charts with after-hours prices
- available on iPad
- Wallet: supports student ID cards (6 US universities for now)
- Voice Memos:
- rebuilt with a new design
- available on iPad
- iCloud support
- iCloud Keychain:
- can automatically create strong passwords for you when signing up (on the web and in apps)
- highlights duplicated passwords
- Siri can be asked to find saved passwords
- updated iPad navigation gestures
- trackpad mode can now be activated through the space bar on non-force-touch devices (source)
- picture-in-picture on iPad has rounded corners (source)
- iPhone-only apps on iPad (*sigh*, Instagram…) now render on an iPhone6-sized screen (source)
- prevents accidental screenshots on iPhone X when picking up the phone
- easier closing of apps on iPhone X (source)
- CarPlay now supports third-party navigation apps
- you can add multiple faces to FaceID (source)
- easier way to retry FaceID login (source)
- in Settings > Cellular, the app list is now sorted by amount of data used (source)
- secure sharing of saved passwords with Macs, Apple TVs and other iOS devices
- USB restricted mode (source)
- automatic updates? (source)
- forms will auto-suggest security codes from recent SMS
- new file format for AR: USDZ - open file format supported by multiple companies, allows sharing of scene descriptions with animations through Messages/Mail/News/etc. and on websites
- more colors available in the markup editor (source)
- Siri support for translation
- battery usage stats in Settings shows data for 10 days
- available on all the same devices as iOS 11
watchOS 5
ποΈ https://www.apple.com/watchos/watchos-5
- Notifications:
- notification grouping
- interactive notifications
- Podcasts app
- Walkie-Talkie app
- new watch faces: Breathe, Fire & Water, Liquid Metal, Vapor
- Activity:
- challenging a friend to a multi-day competition
- improved precision of tracking based on tons of real-life data
- FaceTime:
- supports group calls (voice) (delayed)
- Siri watch face:
- new content: sports scores, navigation info, heart rate
- Siri shortcut suggestions
- Stocks:
- stocks can be added and removed on the watch (source)
- Timer:
- shows a list of recently used custom timers (source)
- Wallet: supports student ID cards (6 US universities for now)
- Weather:
- Workouts:
- Yoga and Hiking workout types
- rolling mile pace (previous mile)
- pace alerts when you’re below or above some pace
- cadence (steps per minute)
- automatic detection of a started workout (retroactively counts from the start) and finished workout
- World Clock:
- cities can be added and removed on the watch (source)
- launching Siri by raising the wrist and speaking (“Hey Siri” not required anymore)
- when turning on DND in control center, there’s an option to automatically turn it off later
- control center buttons can be rearranged (source)
- you can connect to unknown WiFi networks, entering the password on the watch (source)
- control center and notifications panel accessible from apps (source)
- WebKit web content in mail and messages
- memories in Photo face?
- new emoji picker?
- removed Time Travel feature (source)
- removed “Prominent Haptic” option (source)
- drops support for series 0 (source)
tvOS 12
- Zero Sign-on - automatically logs you in if you’re on the TV provider’s internet
- titles for screensaver locations, swiping between locations
- new screensaver location with views from ISS
- Dolby Atmos support
- secure password sharing with iOS devices (including other people’s iPhones)
- support for VPP (Volume Purchase Program)
Foundation & Core Frameworks
- Core ML 2: faster execution, new batching API, model quantization (much smaller models), custom models
- Natural Language - new easy to use Swift-focused API for natural language parsing, supports several languages
- Network - new low level network framework used by
URLSession
, like BSD sockets (Swift and C API) os_log
: addedos_signpost
andpointsOfInterest
log category for tracing and measuring execution time in InstrumentsNSCoding
: insecure coding is deprecated:- new initializers and encode/decode methods in
NSKeyedArchiver
andNSKeyedUnarchiver
that use secure coding and return/throw NSErrors instead of exceptions - old initializers and encode/decode methods are deprecated
NSValueTransformer
:unarchiveFromDataTransformerName
andkeyedUnarchiveFromDataTransformerName
are deprecated, replaced bysecureUnarchiveFromDataTransformerName
- a couple of Foundation classes have adopted secure coding
- new initializers and encode/decode methods in
NSUserDefaults
:synchronize
doesn’t do anything anymore, shouldn’t be used when targetting only latest OSes, will be deprecated (source)
macOS 10.14 SDK
ποΈ https://developer.apple.com/macos/
ποΈ https://developer.apple.com/macos/whats-new/
ποΈ https://developer.apple.com/app-store/mac/
ποΈ https://developer.apple.com/developer-id/
ποΈ https://developer.apple.com/machine-learning/
ποΈ https://developer.apple.com/metal/
https://developer.apple.com/documentation/appkit/appkit_release_notes_for_macos_10_14
http://codeworkshop.net/objc-diff/sdkdiffs/macos/10.14/
General:
- new enhanced runtime (opt-in): SIP protection for your apps, code validation, protection from debugging and code injection
- Notary Service (opt-in for now, requires enhanced runtime): extension to the Developer ID program, every binary is submitted to the service where it’s automatically checked for malware and re-signed
- some mysterious changes to the app sandbox that allowed some indie apps to come back to the Mac App Store (sadly, we still don’t know any details) (source, still waiting for that blog post π)
- added new restrictions and APIs for sending Apple Events between apps (article by Felix Schwarz)
- Finder quick actions can be provided by apps - this is not documented yet, but here’s a guide by Daniel Jalkut
- continued swiftification of existing APIs
NSImage.Name
and other similar types are now aString
typealias- some more formal protocols
New frameworks and targets:
- Create ML - a Swift-based tool for training ML models on your Mac
- Instruments Package target type for creating Instruments plugins
- Marzipan (codename) - a way to run iOS apps on macOS, coming officially in 2019
- UserNotifications framework from iOS brought to the Mac, including some of the new parts (?)
Framework updates:
- AVFoundation:
- updated Portrait Segmentation API and Depth API
- Metal:
- GPU-Driven Command Encoding
- new performance shaders for machine learning
- fast ray tracing (
MPSRayIntersector
)
- StoreKit:
SKStoreReviewController
from iOS (for requesting reviews) now also works with Mac App Store
- Vision:
- some new APIs that I don’t understand enough to comment on :)
AppKit updates:
NSAppearance
:bestMatch(from:)
, thread-localcurrent
variable
NSAppearance.Name
:- added
darkAqua
andaccessibility*
appearances
- added
NSApplication
:registerForRemoteNotifications()
and other new methods for UserNotifications integration, old API is deprecated
NSApplication
:- now conforms to
NSAppearanceCustomization
- now conforms to
NSButton
:- added
contentTintColor
- added
NSColor
:- added
withSystemEffect
to create sets of related colors - added new semantic colors, deprecated some older colors
- added
controlAccentColor
- deprecated APIs related to old blue/graphite tint color
- added
NSImageView
:- added
contentTintColor
- added
NSMenu
:items
now has a setter
NSRequiresAquaSystemAppearance
Info.plist key for controlling app behavior in Dark ModeNSResponder
:- Continuity Camera: implement
validRequestor(forSendType:returnType:)
- Continuity Camera: implement
NSTableView
:- changed behavior of setting
backgroundStyle
on descendant views
- changed behavior of setting
NSTabView
:tabViewItems
now has a setter
NSTextView
:fieldEditor()
scrollable(...)TextView
- creates a text view wrapped in a scroll viewperformValidatedReplacement(in:with:)
- replaces text as if the user edited it (matching style)
NSToolbar
:centeredItemIdentifier
- lets you put an item in the center- uses AutoLayout to do measurements of items (unless they’re set explicitly)
NSView
:- added
viewDidChangeEffectiveAppearance
callback - all views now automatically use layers (own or shared) - no need to set
wantsLayer
- added
NSView.BackgroundStyle
:- renamed
light
,dark
tonormal
,emphasized
- renamed
NSVisualEffectView
:- automatically chooses the right vibrant appearance, don’t set it explicitly now
NSVisualEffectView.Material
:- added several new semantic materials and deprecated old color-based ones
NSWindow
:- added
appearanceSource
- added
- some AppKit classes have adopted
NSSecureCoding
Deprecations:
- OpenGL & OpenCL (soft-deprecated)
NSUserNotification
&NSUserNotificationCenter
NSEnableScreenUpdates()
&NSDisableScreenUpdates()
- old
WebView
(comment) NSDraggingInfo.draggedImage
- using instance variables of Cocoa classes directly
iOS 12 SDK
ποΈ https://developer.apple.com/ios/
ποΈ https://developer.apple.com/ios/whats-new/
ποΈ https://developer.apple.com/arkit/
ποΈ https://developer.apple.com/sirikit/
ποΈ https://developer.apple.com/machine-learning/
ποΈ https://developer.apple.com/metal/
https://developer.apple.com/documentation/ios_release_notes/ios_12_release_notes
http://codeworkshop.net/objc-diff/sdkdiffs/ios/12.0/
General:
- performance improvements across the system:
- smarter scheduling of prefetch in table/collection views, so that it doesn’t slow down loading current row
- improved scrolling performance in general
- automatic backing store: OS automatically chooses a backing store for views with less bits per pixel if full color is not needed
- AutoLayout improvements - some methods that had exponential complexity are now O(n)
- continued swiftification of existing APIs
- some types and constants became subtypes of others (e.g.
UIApplication.State
, notification names) - some global functions became methods (e.g.
UIEdgeInsetsInsetRect
) NSStringFrom*
/NS*FromString
replaced withCodable
and debug printing support, old behavior is available in newNSCoder
methods likestring(for:)
- some types and constants became subtypes of others (e.g.
New frameworks and targets:
- AuthenticationServices - a framework for integrating third-party password managers like 1Password with the OS
- ASWebAuthenticationSession - lets you automatically log in users to apps using Safari sessions
- Autofill Credential Provider extension type - for third-party password managers
- CarPlay framework - for implementing navigation apps for CarPlay
- Unwanted Communication extension type (see IdentityLookup)
Framework updates:
- ARKit 2:
- improved face tracking (tracking eye movement and tongue)
- environment texturing - reflecting the real environment on AR objects (not visible parts simulated using ML)
- 2D image tracking
- 3D object detection
- persistent scenes and multi-user AR (sharing maps between sessions and devices)
- AVFoundation:
- updated Portrait Segmentation API and Depth API
- Core Motion:
- added some APIs for apps helping people with Parkinson’s disease
- HealthKit:
- access to user’s medical history (
HKClinicalType
) - rewritten workout APIs
- access to user’s medical history (
- IdentityLookup:
- new APIs for writing extensions that let users report spam calls and messages
- Metal:
- GPU-Driven Command Encoding
- new performance shaders for machine learning
- fast ray tracing (
MPSRayIntersector
)
- SiriKit:
- new APIs for working with Siri Shortcuts
- UserNotifications: APIs for handling new notification features:
UNAuthorizationOptions
:provisional
to request “provisional authorization” (notifications in quiet mode)criticalAlert
to request access to critical alertsprovidesAppNotificationSettings
to provide a link to notification settings screen
UNUserNotificationCenterDelegate
:userNotificationCenter(_:openSettingsFor:)
callback to open the notification settings screenUNNotificationExtensionUserInteractionEnabled
option to enable interaction with the Notification Content extension UIUNNotificationCategory
:categorySummaryFormat
for customizing the notification group summaryUNNotificationContent
:summaryArgument
andsummaryArgumentCount
UNNotificationSound
: methods for creating critical alert soundsNSExtensionContext
:notificationActions
lets you update actions while the Notification Content extension is openperformNotificationDefaultAction()
launches your appdismissNotificationContextExtension()
hides the extension
- Vision:
- some new APIs
UIKit updates:
NSUserActivity
:isEligibleForPrediction
,suggestedInvocationPhrase
for Siri Shortcuts integration- methods for deleting user activities
UITextInputPasswordRules
- for defining requirements for generated passwords in a “password rules language”- for web forms, use the
passwordrules
attribute and Apple’s Password Rules Validation Tool
- for web forms, use the
UITextContentType
:newPassword
andoneTimeCode
types
UIUserInterfaceStyle
(light/dark) from tvOS - only for CarPlay (for now :)
Deprecations:
- OpenGL & OpenCL (soft-deprecated)
UIWebView
(comment)
watchOS 5 SDK
ποΈ https://developer.apple.com/watchos/
ποΈ https://developer.apple.com/watchos/whats-new/
ποΈ https://developer.apple.com/sirikit/
https://developer.apple.com/documentation/watchos_release_notes/watchos_5_release_notes
http://codeworkshop.net/objc-diff/sdkdiffs/watchos/5.0/
General:
- Audio background mode, which lets non-workout apps (e.g. podcasts) play in the background (which was sort of mentioned as available in 2015, but then somehow wasn’t?)
- assets added only in 38mm version will be used as fallback for 42mm if that variant is missing
Framework updates:
- AVFoundation:
- direct access to AVAudioPlayer and AVAudioEngine (though they seem to have been available before?…)
- Core Motion:
- added some APIs for apps helping people with Parkinson’s disease
- HealthKit:
- access to user’s medical history (
HKClinicalType
) - rewritten workout APIs:
- updated
HKWorkoutSession
, addedHKWorkoutBuilder
andHKLiveWorkoutBuilder
- if a workout app crashes during a workout, it’s relaunched automatically
HKHealthStore.recoverActiveWorkoutSession(completion:)
can be used to recover a lost workout
- updated
- access to user’s medical history (
- Media Player - parts of the framework now available on watchOS, including:
MPNowPlayingInfoCenter
for telling the OS about the media being playedMPRemoteCommandCenter
for reacting to actions like play/pause etc. in the Now Playing system view
- SiriKit:
- new APIs for working with Siri Shortcuts
- UserNotifications: APIs for handling new notification features:
UNAuthorizationOptions
:provisional
to request “provisional authorization” (notifications in quiet mode)criticalAlert
to request access to critical alertsprovidesAppNotificationSettings
to provide a link to notification settings screen
UNNotificationSound
: methods for creating critical alert sounds- “Handles Grouping” option in the notification scene to route new incoming notifications to an open notification view
- “Has Interactive Interface” option in the notification scene to create a new “Dynamic Interactive Interface” notification view
- notifications opened from the notification center will now show the dynamic version if possible
WKUserNotificationInterfaceController
:notificationActions
lets you update actions while the notification view is openperformNotificationDefaultAction()
launches your appperformDismissAction()
hides the notification- unified
didReceive()
for local and remote notifications
- WatchConnectivity:
WCSessionFileTransfer
: addedprogress
(which apparently has something to do with transferring audio content, but documentation is missing)
WatchKit updates:
NSUserActivity
:isEligibleForPrediction
,suggestedInvocationPhrase
for Siri Shortcuts integration- methods for deleting user activities
UIFont.TextStyle
: title styles (largeTitle
,title1
,title2
,title3
) are available for use in IB andlargeTitle
also in code (preferredFont(forTextStyle:)
)WKInterfaceNowPlayingView
- a “now playing” view like in the system panel, which you can embed inside apps like Workouts app does (only available in IB)WKInterfaceVolumeControlView
- a separate control just for setting volume (only available in IB)WKRelevantShortcutRefreshBackgroundTask
- a background task that lets you set up Siri shortcutsWKIntentDidRunRefreshBackgroundTask
- a background task that runs when SiriKit launches your app
tvOS 12 SDK
ποΈ https://developer.apple.com/tvos/
https://developer.apple.com/documentation/tvos_release_notes/tvos_12_release_notes
New frameworks:
- TVUIKit framework - a set of TVML controls ported to UIKit:
TVCaptionButtonView
- a caption button that performs some actionTVCardView
- a card view with an arbitrarily composed hierarchy of parts insideTVPosterView
- a poster controlTVMonogramView
- a person’s avatar viewTVLockupView
- base class for all of the above, handles animation on focus
Framework updates:
- AVFoundation: updated Portrait Segmentation API and Depth API
- Metal:
- GPU-Driven Command Encoding
- new performance shaders for machine learning
- fast ray tracing (
MPSRayIntersector
)
- Vision: some new APIs
UI updates:
UILabel
:- added
enablesMarqueeWhenAncestorFocused
option that animates the text when it’s too long to fit
- added
UITextContentType
:newPassword
andoneTimeCode
types
UITextInputPasswordRules
- for defining requirements for generated passwordsTVDigitEntryViewController
- a view controller that shows a screen for entering digits, e.g. passcode- the focus engine now supports apps other than UIKit/SpriteKit/SceneKit apps, e.g. games written in Metal:
UIFocusSystem
:init(for:)
to get it from the environment,focusedItem
to get currently focused itemUIFocusEnvironment
:parentFocusEnvironment
,focusItemContainer
UIFocusItem
:didHintFocusMovement
UIFocusItemContainer
andUIFocusItemScrollableContainer
protocolsUIFocusMovementHint
Deprecations:
- OpenGL & OpenCL are soft-deprecated
Web APIs
- MapKit JS for embedding Apple Maps on websites
- MusicKit JS for embedding Apple Music and building custom music players using it
Developer Tools
Xcode 10
ποΈ https://developer.apple.com/xcode/
ποΈ https://developer.apple.com/xcode/whats-new/
https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
- tools for working with Dark Mode:
- support for Dark Mode in asset catalogs (images and colors)
- switching dark/light mode in storyboards and in a running app
- editor:
- multi-cursor editing and column selection
- jump to definition shows a list of implementations you can pick from
- some new actions for finding and selecting code in the menu
- improved code completion accuracy
- supports scrolling beyond last line
- restored code folding ribbon from Xcode 8 and earlier
- Object Library is now a floating popover, accessed from a button on the right side of the toolbar
- support for
NSGridView
designing in Interface Builder - documentation popups that include code are syntax highlighted (source)
- version control:
- source control change bar - displays changes on the left next to line numbers
- tracks upstream changes in the repo and highlights unmerged changes and conflicts
- git pull action supports rebase
- helps you create SSH keys and uploads public keys to service accounts
- added support for Bitbucket and GitLab
- removed support for SVN (source)
- testing:
- tests (unit and UI) can be executed in parallel on multiple copies of your Mac app or multiple simulators (“ludicrously fast” ;)
- test order can be randomized
- you can automatically include new tests in test bundles
- performance improvements:
- IB: up to 40% faster document opening, up to 3x faster canvas interaction
- editor loads large documents up to 2.5x faster
- downloading symbols from devices is 5x faster
- faster LLDB startup
- faster loading of memory debugger
- new build system is on by default, is faster and uses less memory, and has better diagnostics for your project configuration
- new compact layout for memory debugger
- View Hierarchy debugger shows color names and appearance info
- custom Instruments packages
- playgrounds have a REPL-like mode, evaluating each new entered line
- schemes are now created as shared by default
- Metal Dependency Viewer and Metal Shader Debugger
- Xcode no longer compiles 32-bit Mac apps? (source)
Swift
- Swift 4.2: see this summary by Paul Hudson
- Swift 5: coming early next year, will have binary ABI compatibility
-Osize
optimization - tries to minimize the binary size
ObjC
- ARC support for object pointers in C structs (source)
App Store & iTunes Connect
- iTunes Connect is renamed as App Store Connect, same for iTunes Connect app for iOS (source)
- free trials for apps are allowed in the form of IAPs (source, but see also: Ersatz Free Trials)
- apps can give users access to IAP-protected content that was acquired on another platform (source)
- apps must mention new features in “What’s New” (source)
- App Review will now pay closer attention to access purpose strings (they should explain specifically how the data you request will be used)
- all apps will be required to have a privacy policy since Oct 3 (source)
- App Store apps have been removed from the iTunes Affiliate Program (source)
- added some restrictions on how private data from users' phones can be used (source)
- more info about App Store guidelines changes here: https://www.macrumors.com/2018/06/04/apple-revamps-app-store-guidelines-ios-12/
Safari 12
ποΈ https://developer.apple.com/safari/whats-new/
https://developer.apple.com/safari/technology-preview/release-notes/
- support for viewing USDZ models
- Fullscreen API on iOS for iPad
- support for font collections in WOFF2 and TTC files
- support for font-display CSS property
- support for SVG in OpenType fonts
- support for cross-origin-window-policy and cross-origin-resource-policy
- WebGL Shader Debugging
- deprecated .safariextz extensions, removed support for .safariextz extensions not from the Gallery
- some content-blocking extensions using old APIs (e.g. Ghostery) are disabled on first launch (can be reenabled)
- removed support for legacy plugins except Flash
A couple more links if you want to go deeper :)