A new layout container (ArrangementView in SwiftUI, UIArrangementViewController in UIKit) for split and overlay presentations that automatically query reserved regions — the hinge and camera housings — on iPhone Duo.
• Reserved regions (division regions like the hinge, occlusion regions like cameras) are queryable so layouts can route content around them instead of guessing coordinates
• Arrangements respond automatically to size class, aspect ratio, and fold state — no manual pose detection required
• Split and overlay arrangement styles cover the two most common dual-pane patterns (list/detail and floating panel)
Uses ArrangementView to present a list/detail split that reflows around the hinge’s reserved region as iPhone Duo opens and closes.
import SwiftUI
struct MailAppView: View {
@State private var reservedRegions: [ReservedRegion] = []
var body: some View {
ArrangementView {
MessageListView()
} secondary: {
MessageDetailView()
}
.arrangementViewStyle(.split)
.onGeometryChange(for: [ReservedRegion].self) { proxy in
proxy.reservedRegions
} action: { regions in
reservedRegions = regions
}
}
}
struct MessageListView: View {
var body: some View { Text("Inbox") }
}
struct MessageDetailView: View {
var body: some View { Text("Select a message") }
}The foundational adaptation layer for iPhone Duo: build against the iOS 27 / 27.1 SDK, simulate poses with DeviceHub in Xcode, and use size classes (not interface orientation) to lay out across the outer and inner displays.
Apple’s design system for iPhone Duo’s reimagined iOS: controls move to the outer edge, content displaces away from the hinge, and interfaces adapt across held, used, and folded poses.
APIs for observing continuous hinge angle and open/closed state (onHingeChange / UIHingeInteraction), plus scene accessories that present supplementary content on iPhone Duo’s second display simultaneously with the main UI.
In-depth guide
iPhone Duo & Foldables in iOS 27 →• Division regions (hinge) and occlusion regions (cameras) are reported separately — handle both
• .arrangementViewStyle(.overlay) changes stacking order via @Environment(\.overlayArrangementZIndex); don’t assume z-order is fixed
• Query reserved regions with onGeometryChange rather than caching them — they change as the device opens and closes
iPhone Duo hardware, or the DeviceHub simulator in Xcode 17+
New toolbar, tab bar, and navigation bar axis behavior for iPhone Duo’s wider aspect ratio, where top/bottom controls move to a shared vertical region along the side of the display.