iPhone Duo compatibility checklist
Start with the blockers — the problems your users would actually see. For most apps that is all you need to know where you stand, and all we need to send you a free evaluation. Progress is saved in your browser.
Tick what your app already handles. Tap a check to see what it means.
BlockersVisibly broken for users
Apple ships three tiers of iPhone Duo compatibility. Which one your app gets is decided entirely by the SDK you build against.
What you’d see: The app runs but is inset from the edge of the inner display, or leaves an unused band beside the status bar.
How to fix it — Rebuild against the iOS 27.1 SDK to reach the screen edge→Needs iOS 27.1 SDKEvery iOS appLayout code that assumes a fixed iPhone width breaks immediately on the iPhone Duo inner display, which is 626 points wide instead of roughly 400.
What you’d see: Content is stuck in a narrow column on the left, stretched past the edges, or overlapping after the device is unfolded.
iPhone Duo is the first iPhone with two displays, so a single global main screen no longer has a well-defined meaning. Apple is deprecating the API.
What you’d see: Wrong scale factor, wrong bounds, or blurry rendering when the app is on the outer display or after moving between displays.
How to fix it — Stop using UIScreen.main — read the screen from the window scene→SwiftUI · UIKit · React Native · Flutter · Unity · Capacitor / webSafe areas and layout margins are asymmetric on iPhone Duo. Math that assumes the left inset equals the right inset produces visibly off-centre layout.
What you’d see: Content sits off-centre, or is clipped on one edge only, on the inner display.
The iPhone Duo inner display ignores supportedInterfaceOrientations, so a portrait-locked app is still laid out in landscape.
What you’d see: A portrait-locked app renders sideways, stretched, or with a layout it was never designed to show.
Apple's guidance is to avoid making display assumptions from the user interface idiom and to design across a continuum of sizes instead.
What you’d see: The app shows its cramped iPhone layout on a 7.6-inch display with room for a sidebar, wasting most of the screen.
All apps take part in side-by-side multitasking on iPhone Duo, so your app can be resized to a fraction of the display whether or not you opted in.
What you’d see: Layout breaks, content overlaps, or the app appears frozen when the user places it side by side with another app.
The inner display's aspect ratio is roughly 1.42, so a 16:9 video letterboxes heavily. Full-bleed assets designed for a tall phone crop badly.
What you’d see: Video sits in a small band with thick black bars, or a full-screen background image is cropped to an unrecognisable centre slice.
That’s enough to get our free evaluation
Send what you ticked. An engineer replies with what breaks, what to fix first, and a realistic effort estimate.
Reply in 2 working days · No call · No obligation
MajorWorks, but looks wrong
When iPhone Duo is partially folded the hinge divides the inner display. The ReservedRegion API reports where that division falls.
What you’d see: A control, a face in a photo, or a line of text lands directly on the fold when the device is partially open.
Occlusion regions cover part of the display rather than dividing it. The inner FaceTime camera is the example on iPhone Duo.
What you’d see: A button or a piece of text sits behind the inner camera and is partly hidden or hard to tap.
How to fix it — Handle occlusion regions around the under-display camera→Needs iOS 27.1 SDKSwiftUI · UIKitArrangementView places two related views across iPhone Duo's poses automatically, taking size classes, aspect ratio and active division regions as input.
What you’d see: Custom fold-handling code that has to be rewritten for each pose, or a secondary panel that overlaps the hinge.
How to fix it — Adopt ArrangementView for main-and-secondary layouts→Needs iOS 27.1 SDKSwiftUI · UIKitOn the outer display and the inner display in landscape, navigation, toolbar and tab bar controls move to a shared vertical region at the side.
What you’d see: Toolbar labels truncate, custom bar views render sideways or clipped, or too many items collapse into an overflow menu.
A vertical bar holds fewer items than a horizontal one, so more actions overflow. Priorities decide which survive.
What you’d see: Frequently used actions disappear into an ellipsis menu, or several separate overflow menus appear in one bar.
How to fix it — Set overflow priorities so the right actions stay visible→Needs iOS 27.1 SDKSwiftUI · UIKitNavigationSplitView, UISplitViewController, TabView and UITabBarController adapt across every iPhone Duo pose with no pose-specific code.
What you’d see: A hand-rolled navigation container that has to be taught about each pose, and gets one of them wrong.
A horizontal tab bar wastes the inner display's regular width. One modifier moves it to a sidebar.
What you’d see: A five-item tab bar stretched across a 626-point-wide display, with the icons marooned in the middle.
iPhone Duo is the first iPhone to support multiple instances of an app. Apps that already support this on iPad get it for free.
What you’d see: Users cannot open a second window, or the option to do so is missing where it would be useful.
iPhone Duo has two front cameras — outer and under-display inner. If you select cameras individually you must handle the device opening and closing.
What you’d see: The camera preview goes black, freezes, or keeps using the wrong lens after the device is folded or unfolded.
How to fix it — Adopt AVCaptureDeviceDirectionCoordinator in camera apps→Needs iOS 27.1 SDKSwiftUI · UIKitRotation must stay correct as your app moves between the inner and outer displays. Adopting the coordinator also unlocks a performance win.
What you’d see: Captured photos or video come out rotated, or preview orientation disagrees with the saved file.
Apple's guidance is to avoid making display assumptions based on the user interface idiom. iPhone Duo reports the phone idiom with a regular-width display.
What you’d see: iPad-quality layouts exist in the codebase but never appear on iPhone Duo, because the branch is gated on idiom.
How to fix it — Audit code that branches on user interface idiom→SwiftUI · UIKit · React Native · Flutter · Unity · Capacitor / webA launch screen sized for a fixed iPhone, or a legacy full-screen requirement, produces a visibly wrong first impression on iPhone Duo.
What you’d see: The app opens letterboxed, shows a stretched splash image, or briefly flashes a phone-sized frame before the real UI appears.
How to fix it — Make the launch screen and app resizability foldable-ready→SwiftUI · UIKit · React Native · Flutter · Unity · Capacitor / web
PolishLeaves quality on the table
Apple's rule is that foreground content stays inside the safe area while background artwork extends to the full bounds.
What you’d see: Visible bands of background colour at the edges of the inner display where artwork stops short of the corners.
onHingeChange and UIHingeInteraction report the hinge angle. Apple is explicit that this is for effects, not for layout decisions.
What you’d see: Layout jitters as the hinge angle changes, because the angle is driving frames instead of an arrangement.
Scene accessories pair supplementary UI on the outer display with your main UI on the inner display — a teleprompter, a subject preview, a controller.
What you’d see: The outer display sits unused while the app runs on the inner display, in a case where it could show something useful.
How to fix it — Consider scene accessories to use both displays at once→Needs iOS 27.1 SDKSwiftUI · UIKitXcode 27.1 adds an iPhone Duo simulator with on-screen controls to open, close, rotate and fold the device.
What you’d see: Layout bugs that only appear in a pose nobody tested, discovered by users after release.
Xcode 27.1 extends its app modernization skill to cover SwiftUI and iPhone Duo, automating part of the mechanical migration.
What you’d see: Manually hunting through a large codebase for fixed sizes and deprecated screen references.
How to fix it — Run the App Resizability modernization skill in Xcode→Needs iOS 27.1 SDKSwiftUI · UIKit