13
What's New
iOS 13 introduces SwiftUI, a declarative UI framework with Combine reactive programming support and Core Data integration, alongside significant audio/video enhancements including HEVC alpha encoding and AVAudioEngine improvements. Security improvements include URLSession MIME type sniffing removal and PAC scheme restrictions. Multiple legacy APIs are deprecated in favor of modern alternatives, requiring developer migration for continued compatibility.
Highlights
- SwiftUI framework with declarative UI, Combine integration, and Core Data support via @FetchRequest
- AVAudioEngine enhancements including voice processing mode, spatial audio rendering, and Audio Unit preset sharing
- HEVC video encoding with alpha channel support in AVFoundation for web and broad compatibility
- Core Haptics improvements with continuous events, dynamic parameters, and audio custom resources
- URLSession security hardening: MIME type sniffing disabled, FTP/File PAC schemes removed, SPDY deprecated
- RealityKit framework for AR development with object anchors and environment customization
Breaking Changes
- UIApplicationExitsOnSuspend key no longer supported; apps must handle modern multitasking
- URLSession no longer sniffs MIME type for application/octet-stream for enhanced security
- URLSessionTask with GET method containing body now produces NSURLErrorDataLengthExceedsMaximum error
- CNCopyCurrentNetworkInfo API changed to address privacy concerns
- FTP and File URL schemes removed from Proxy Automatic Configuration (PAC)
- URLSession and NSURLConnection no longer support SPDY protocol
- UITableViewCell no longer modifies contentView backgroundColor/isOpaque on highlight/selection
- OpenAL framework deprecated; transition to AVAudioEngine for spatial audio
- Inter-App Audio deprecated; use Audio Units instead
- Carbon component-based Audio Units deprecated with future removal planned
Deprecations
- OpenAL framework deprecated in favor of AVAudioEngine
- AUGraph deprecated; use AVAudioEngine instead
- Inter-App Audio deprecated; migrate to Audio Units
- Carbon component-based Audio Units deprecated
- Legacy Core Audio HAL audio hardware plug-ins no longer supported
- NavigationDestinationLink and DynamicNavigationDestinationLink deprecated in SwiftUI
- HAlignment and VAlignment deprecated; use HorizontalAlignment and VerticalAlignment
- SelectionManager protocol removed; use Optional and Set directly
- StaticMember protocol deprecated in SwiftUI
- relativeWidth, relativeHeight, and relativeSize modifiers deprecated