iPhone Duo Developer Hub

Apple's three steps to get your app ready

Submissions for iPhone Duo are open and the device lands on 23 October. Apple's "Preparing your app for iPhone Duo" guide — the one that was still coming later this month when we wrote our SDK notes — is now live, and it is a three-step checklist rather than a concept piece.

6 October 2026Apple's readiness guide, now liveXcode 27.1 release candidate

This is the most practical page Apple has published for the Duo: three steps, with the code patterns named. It also settles a question we had to hedge — the guide exists now, so the checklist below is Apple's, not our reconstruction.

Confirmed Apple's guide or release notes state it. Each claim links to the source.

Our reading What it means for your code. Not Apple's words.

Open Apple has not answered it, so we have not guessed.

01 · Where things stand

Three facts from Apple, all with dates attached:

WhatStatus
iPhone Duo availabilityStarting 23 October 2026
App submissionsOpen — Apple's words for the Duo's launch content are that submissions are officially open
Xcode 27.1Now listed as a Release Candidate on Apple's Get ready page — it was a beta (27A9269) when we covered the simulator runtime

Our reading: the SDK question is now a scheduling question rather than a technical one. Nothing about the three levels below changed; what changed is that the toolchain a release plan should sit on has reached release candidate, so "we will move to 27.1 after launch" is a choice rather than a constraint.

02 · What the SDK you build against decides

Before the three steps, the premise. Apps built with the iOS 27 SDK and later resize dynamically on the Duo: unfold it and the app expands to the inner display, fold it and the app returns to the outer one. Hardcoded screen sizes, fixed orientations and device assumptions are what break. Apple's own before-and-after:

Built withWhat it looks like on the Duo
iOS 26 SDK or earlierRuns, but does not adapt to all layouts. Open, the app appears in the centre of the inner display with empty space around the window. Closed, the outer display shows its content to the left of the status bar and camera.
iOS 27 SDKResizes to fill most of the inner display, but still avoids the status bar on the right edge — improved, with the empty space minimised.
iOS 27.1 SDK or laterOptimised: content extends across the full display, with toolbars and tab bars appearing vertically below the status bar. Apple's warning before you ship on 27.1: make sure your content adapts to the bars becoming vertical.

We walked through the same three levels in September from the SDK release notes and the session videos — Three Levels of Duo Support. Apple's guide now states them directly, which makes that post the background and this one the working list.

03 · Step 1 · Run the app resizability skill

In Xcode, ask the coding assistant to "get my app ready for iPhone Duo." The skill scans your project for the patterns in Step 2, and for each issue it finds it explains the problem and suggests a fix. If you use a different coding agent, Apple's route is to export the skill from Terminal:

  • xcrun agent skills export — then give the exported skill to your own agent

Our reading: the interesting detail is Apple telling you the skill is not complete — the guide says it "finds most issues, but not all of them," and asks you to review the Step 2 list and catch anything it misses. Treat the skill as the first pass and the list below as the specification.

04 · Step 2 · The patterns to fix

Stop sizing from the main screen

On the Duo your app's size changes whenever the device folds or unfolds, and it does not always match the size of the screen. Search for UIScreen.main and replace each use:

Instead ofUse
UIScreen.main.boundsview.bounds or window.bounds; in SwiftUI, GeometryReader or onGeometryChange
Reading size once at launch or in viewIsAppearingSize-dependent layout in layoutSubviews / viewDidLayoutSubviews, with viewWillTransition(to:with:) for work that runs when size changes — a fold can resize your app mid-session
Scale from the screentraitCollection.displayScale in UIKit, @Environment(\.displayScale) in SwiftUI
UIWindow(frame: UIScreen.main.bounds)UIWindow(windowScene:) — create windows from a scene
Storing a UIScreenRead it dynamically: view.window?.windowScene?.screen

Avoid using orientation to make layout decisions

The device's orientation does not tell you what shape your app is. Apple names the properties to search for and strip from layout logic: UIDevice.current.orientation, statusBarOrientation, and interfaceOrientation — including windowScene.effectiveGeometry.interfaceOrientation. If you need to know whether your app is wider than it is tall, compare the width and height of the space you actually have: view.bounds in a view controller, superview.bounds in a view, or the size from a GeometryReader in SwiftUI.

Stop assuming idiom or size class identifies the device

With the Duo and resizable iPhone Mirroring, an iPhone app can have any combination of size classes, and on the inner display Apple's expectation is that your app looks like a natural extension of its iPad layout:

  • Do not choose a layout by idiom — search for userInterfaceIdiom == .phone and == .pad; base the choice on size classes or available space
  • Do not treat horizontalSizeClass == .regular as "iPad" — that layout will now run on an iPhone
  • Remove comparisons against specific device sizes, such as bounds.height == 844 or a list of known iPhone dimensions
  • Check full-bleed media: hero images and video set to .scaleAspectFill or .aspectRatio(contentMode: .fill) can lose important content on wider displays — choose fill or fit from the current size classes or aspect ratio, or set a focal point

Our reading: the three headings are one bug in three disguises — code that asks the device what it is instead of asking the space how big it is. If you only have time for one pass, the UIScreen.main search is the highest-yield one, because it is greppable and every hit is a potential clipped or stretched layout.

05 · Step 3 · Test resizing

ToolWhat it gives you
The resizable iOS simulator in Device HubA resizable iPhone runtime to drag through sizes
iPhone Mirroring on macOS 27Resize the window to extreme sizes in both directions
The iPhone Duo simulator in Xcode 27.1Apple's note is unambiguous: this is the best way to test the full native experience

Our reading: use all three for what each is good at. Mirroring is the fastest way to feel extreme widths, Duo Simulator is the closest thing to the device, and neither covers camera behaviour — Simulator has no camera, so the camera APIs need hardware. Our simulator notes carry the runtime's current limits (no StandBy, no app-extension debugging, slow first launch).

06 · What this guide leaves out

The guide is deliberately about resizability. Three things it does not cover, which is where the rest of the preparation lives:

  • Camera. Direction and the outer-display accessory are separate articles — see which way that camera faces.
  • State across a fold. Apple answered this in the Group Lab: opening or closing the device is a size-class and trait change, not a scene disconnect or app teardown, so your process keeps running and text input, scroll position and playback are generally preserved. The exception is a scene that genuinely disconnects and reconnects — use stateRestorationActivity(for:) there. Our notes on those answers carry the rest.
  • Store assets and design. Screenshot and preview specifications for the Duo, plus the Figma and Sketch design kits for the device, sit in Apple's App Store asset and design resource pages rather than in this guide.
Correction to our own earlier notes: our events page and SDK post both recorded "Preparing your app for iPhone Duo" as still being coming soon. It is live now at Apple's documentation, and the events page has been updated to say so. Where a page of ours and Apple's current documentation disagree, Apple's is the source.

07 · Checklist

  • Decided which SDK your release ships on, given Xcode 27.1 is at release candidate and the device ships on iOS 27.1
  • Resizability skill run in Xcode, or exported with xcrun agent skills export for another agent
  • Every UIScreen.main hit replaced or justified
  • Layout logic cleaned of UIDevice.current.orientation, statusBarOrientation and interfaceOrientation; width/height compared instead
  • No layout branch decided by idiom or by treating regular width as iPad
  • No comparisons against hardcoded iPhone screen dimensions
  • Full-bleed media reviewed for what it loses on a wider display
  • Bars checked as they become vertical on the 27.1 SDK
  • Resized to extremes in iPhone Mirroring and in the resizable simulator
  • App run in the iPhone Duo Simulator in Xcode 27.1, with its current limits in mind
  • Capture paths tested on hardware, not in Simulator
  • Store screenshots and previews updated for the Duo's displays
Provenance: every Confirmed line comes from Apple's "Three steps to make your app shine on iPhone Duo" guide at developer.apple.com/iphone-duo/prepare and the "Preparing your app for iPhone Duo" documentation, both read on 6 October 2026, plus the Get ready for iPhone Duo page for the Xcode 27.1 release-candidate listing and availability date. The Group Lab answers are quoted from Apple's own summary thread. Apple has not reviewed this page; anything that is our judgement is marked "Our reading".
From the developer of this hub
RevDog app icon
Mac app · Developer Tools
RevDog: Indie Revenue
Revenue in your menu bar. If you ship apps, RevDog keeps your RevenueCat numbers where you already look: today's revenue against yesterday and your recent average, MRR and active subscribers, and monthly progress against your own goal. Dig into purchases, renewals, trials and refunds with amounts, store commission, tax and net. Native Mac interface with light and dark appearance, revenue charts with selectable date ranges, local caching with offline fallback, optional sales notifications. Credentials stay in the macOS Keychain: no developer-operated backend, no advertising, no analytics.
Mac · macOS 14 or later · English · one-time purchase, no subscription, no in-app purchases. Requires your own RevenueCat connection; a Demo Mode works without an account. Independent product, not affiliated with or endorsed by RevenueCat, Inc.
View on the Mac App Store →
Videos · Specs · Prices · Apps

Unofficial dev hub. Not affiliated with, endorsed by, or sponsored by Apple Inc.