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.
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.
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+
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.