Developers bring incredible new app experiences to iPhone Duo
The iPhone Duo introduces a dual‑panel display driven by a hinge‑aware display controller that presents two logically independent UIWindowScene instances to the operating system. The display server (SpringBoard) now negotiates a shared surface with the GPU driver, exposing a continuous 120 Hz refresh across both panels while allowing each panel to adopt distinct safe‑area insets, pixel‑density scaling, and orientation locks. This architecture required a rewrite of the CoreAnimation compositor to treat the hinge as a first‑class layout constraint, enabling seamless transitions between folded, half‑folded, and fully unfolded states without a full‑screen redraw.
At the SDK level, Apple shipped FoldableKit in iOS 18, a new framework that surfaces hinge angle, fold posture, and panel geometry through a dedicated UIFoldableDevice protocol. Existing UIKit and SwiftUI layout engines consume these metrics via the updated UIWindowSceneDelegate methods sceneWillEnterFoldState(_:) and sceneDidChangeFoldGeometry(_:). Developers can now declare adaptive split‑view hierarchies, persistent multi‑window sessions, and continuity‑aware state restoration without resorting to private APIs. The toolchain also adds a new entitlement (com.apple.developer.foldable) that gates access to the hinge sensor and multi‑window APIs, ensuring sandbox compliance.
| Subsystem / Parameter | Baseline / Previous | Updated Implementation |
|---|---|---|
| Display Subsystem | Single full‑screen panel, static safe‑area | Dual logical panels with hinge‑aware safe‑area insets and independent density scaling |
| Window Management | One UIWindowScene per app, full‑screen only | Multiple concurrent UIWindowScenes per app, split‑view and side‑by‑side modes |
| Developer SDK | iOS 17 SDK, UIKit/SwiftUI only | iOS 18 SDK with FoldableKit, UIFoldableDevice protocol, foldable entitlement |
Actionable Diagnostic & Implementation Steps
- Upgrade to Xcode 16.2 (or later) and enable the
com.apple.developer.foldableentitlement in the target’s Signing & Capabilities pane; verify the entitlement appears in the provisioning profile. - Adopt
UIFoldableDevicein yourUIWindowSceneDelegateto observesceneWillEnterFoldState(_:)andsceneDidChangeFoldGeometry(_:); refactor layout code to useUIWindowSceneGeometryPreferencesfor split‑view constraints and to preserve state across fold transitions. - Run the app on the iPhone Duo simulator (select “Foldable” device profile) and on a physical unit; exercise folded, half‑folded, and unfolded postures, then submit the binary with the new
UISupportedFoldStatesInfo.plist key to App Store Connect.
Ecosystem Compatibility & Support Notice
- iOS 18.0 or later on iPhone Duo hardware
- Xcode 16.2+ with Swift 6.0 toolchain
- App Store Connect configured for foldable metadata (supported fold states, panel dimensions)
Source and technical reference: Apple Newsroom RSS.
Share your OS version, device model, and exact error code in our independent peer Q&A rooms.