16
What's New
iOS 16 introduces significant frameworks for health tracking and spatial computing, including HealthKit multisport support and the new RoomPlan 3D modeling framework. StoreKit 2 gains transaction verification and enhanced subscription management, while SwiftUI receives substantial UI improvements including customizable list backgrounds and multiline text fields. Graphics developers benefit from Metal mesh shaders and MetalFX upscaling, alongside networking enhancements for certificate-based authentication.
Highlights
- RoomPlan framework enables 3D parametric room modeling using device sensors and ML
- HealthKit adds multisport workouts, running metrics, AFib history, and Vision Prescription data types
- StoreKit 2 introduces AppTransaction verification, subscription period formatting, and Messages API control
- SwiftUI enhances Lists with customizable backgrounds, multiline TextFields, and improved navigation defaults
- Metal mesh shaders and MetalFX upscaling support advanced graphics rendering capabilities
- URLSession adds client-certificate authentication and Private Access Token support
Breaking Changes
- CGImageCreate now enforces parameter correctness; incorrect CGImageByteOrderInfo values cause image load failures
- Beta 4+ devices lack backwards compatibility with earlier beta versions
- SwiftUI enforces view and view controller representables must be value types at runtime
- List implementation no longer uses UITableView internally
Deprecations
- FTP deprecated in URLSession; migrate to HTTPS and modern secure protocols
- SKDownload API deprecated; nonconsumable in-app purchase asset hosting no longer supported
- UIViewController shouldAutorotate deprecated; use supportedInterfaceOrientations instead
- UIViewController attemptRotationToDeviceOrientation replaced by setNeedsUpdateOfSupportedInterfaceOrientations
- MapKit APIs: MKMapLandscape, MKStandardMapConfigurationMapMode, MKMapView configuration, showsBuildings
- navigationTitle modifier actions deprecated; use toolbarTitleActions modifier instead