iPhone Duo · Before launch

Do iOS apps need re-adaptation before iPhone Duo ships? 2026 sizes, orientation, multiwindow, and Xcode test cost

2026.10.15 · about 14 min read

The apps that need re-adaptation are the ones that still lay out from the screen, from orientation, or from a single window, not every app that already launches. The sections below check four gates, size, orientation, multiwindow, and Xcode test cost, and mark what you can still promise in the week before sale.

Two hands holding a phone, used to compare the outer display, inner display, orientation, and Split View to test before iPhone Duo ships

Today is 15 October 2026. Apple’s product page says pre-order 16 October at 5:00 a.m. Pacific, and the phone is on sale 23 October. The 5 October developer news already allows a rebuild and a submission with Xcode 27.1. From April 2027, new submissions also have to include iPhone Duo screenshots. Launching only shows that the old binary is still there. It does not show a full-bleed inner display. It does not show that portrait and landscape took the right branch. It does not show that the primary button is still inside the safe area in Split View. The 13 October article priced the retrofit schedule together with buying a Mac outright. This article answers only the question before launch: whether the code has to change, and what this round of testing should cost.

4 gates
Size · orientation · windows · tests
5.4 / 7.6
Outer and inner, inches
$20.2
M4 16GB day; five days equal the month

Why launching is not re-adaptation

The old judgment and the new judgment stick on the same user report. The old judgment is “it launches in the simulator, so wait for the bad reviews after launch.” The new judgment starts by asking which fact the layout still reads: the whole screen, the device orientation, or this one window. Apple’s prepare page is direct. Apps built with the iOS 27 SDK and later change size as Duo folds. Hardcoded screen sizes, fixed orientations, and device assumptions stretch, clip, or misplace the layout.

The same sources look different across three SDK tiers. That is the first cut before launch, not a design preference. An iOS 26 SDK build, or earlier, still runs. When the device is open, the window sits in the center with empty space around it. When it is closed, the content sits to the left of the status bar and camera. An iOS 27 SDK build fills most of the inner display and still avoids the status bar on the right. Only the iOS 27.1 SDK and later is the optimized state. Content uses the full display area. Toolbars and tab bars stand vertically under the status bar. A team that only swaps store screenshots, while the binary is still the old SDK, shows users a letterbox when they open the inner display. That empty space will not be read as “we will adapt next week.”

The second cut is that a window is not the screen, and orientation is not the shape. The prepare page requires a fresh read on every size change. Reading once inside viewIsAppearing is not enough, because the fold happens in the middle of a session. UIKit puts size-dependent layout in layoutSubviews or viewDidLayoutSubviews. Work that has to run when the size changes uses viewWillTransition(to:with:). SwiftUI uses GeometryReader or onGeometryChange. Take scale from the trait collection. Leave UIScreen.main.scale alone. On a dual-display device the meaning of the main screen is ambiguous. Apple says it will be deprecated in a future release.

The third cut is the test machine. The iPhone Duo simulator in Xcode 27.1, the open-close-rotate controls at the bottom of Device Hub, and the extreme stretch of iPhone Mirroring on macOS 27 are all tied to a Mac. Windows does not have this chain. How a team picks a builder is in the Xcode Cloud versus remote Mac comparison. Xcode Cloud can compile a build. It does not replace you sitting in front of Device Hub, rotating closed, partially folded, and open once each, then dragging Split View from the left to the right.

One quotable line
The watershed is not whether you redraw a whole interface for the foldable. It is whether size, orientation, and window count are still hardcoded. The model lives in system components. The shape lives in the current window.

How to classify fold size, orientation, and multiwindow

Write “support iPhone Duo” as one milestone and the schedule before launch will drift. Split the work by the behavior users actually hit, into four gates. Miss one gate and you will write “it compiles” as “it is adapted.”

ToolEntryWhat it can doContextWho it fits
Fold sizeOuter display, inner display, current windowLay out from size class and bounds. Do not hardcode pixels or inchesResolutions on the spec page are only for scaleAny code that still compares bounds.height == 844
OrientationOuter-display orientation declaration; inner-display aspect ratioThe outer display honors supported orientations. The inner display does not, including Split ViewTent pose makes people lay the closed phone on its sideScreens that switch layout with interfaceOrientation
MultiwindowSplit View, a second scene, scene accessoriesEvery app sits side by side. A new window exists only on the inner displayA new-scene request on the outer display failsApps that copied the iPad “New Window” button as-is
Xcode testingDevice Hub in Xcode 27.1Three poses, rotation, left and right Split View, a second scene requestFive working days of the day rate equal the 16GB monthAnyone who needs a regression sheet before 23 October

Size: two displays, plus a window that changes

The spec page fixes the numbers. Layout code should not follow them. The outer display is a 5.4-inch Super Retina XDR, resolution 1398 by 2034 at 460 ppi. The folded body measures closed 117.8 x 84.1 x 11.3 mm. The inner display is a 7.6-inch foldable Super Retina XDR, resolution 1878 by 2670 at 430 ppi, with a nano-texture. The unfolded body measures open 117.8 x 164.6 x 5.2 mm, and the weight is 254 g. Open height is still 117.8 mm. Apple states that the two displays share an aspect ratio and that content scales in proportion. The rectangular measurements about 5.36 and 7.58 inches are the standard-rectangle figures. The actual visible area is smaller. The rounded corners sit inside the rectangle.

Size class is the bucket layout should read. The outer display matches other iPhones. Portrait is regular vertically and compact horizontally. Landscape is compact on both axes. The inner display is regular horizontally and vertically, so a sidebar has a place. The window can get smaller still. Split View, the partially folded pose, and mirroring stretch all make the window unequal to the whole display. Pixels on the spec page are a magnitude, not a constant. Take scale from traitCollection.displayScale, or from SwiftUI’s displayScale. Do not write 1398 or 1878 into ==.

Two other system behaviors get mixed up with “screen size.” Corners use Concentricity from iOS 26. SwiftUI uses ConcentricRectangle. UIKit uses UICornerConfiguration. The fold and the cameras use reserved regions. Do not measure the crease yourself. SwiftUI reads ReservedRegion from a geometry proxy. UIKit uses UIViewReservedRegion. Hinge angle is a separate channel. onHingeChange and UIHingeInteraction report closed, partially open, fully open, and a continuous angle. Apple says the angle fits motion. Layout goes through arrangement and reserved regions. If you change the frame from the angle, the partially folded pose will jitter in the first week of sale.

Orientation: the outer display obeys, the inner display does not

The prepare page’s Tech Talk puts orientation in two sentences. Interface orientation on the outer display matches other iPhones. Duo is also the chance to add landscape, because some people lay the closed phone on its side like a tent. The inner display does not honor the supported orientations you declare in Info. As with idiom, do not branch layout on orientation. To know whether it is wider than it is tall, compare the width and height you actually have. Use view.bounds in a view controller. Use superview.bounds in a view. Use the size from GeometryReader in SwiftUI.

The properties to search out are UIDevice.current.orientation, statusBarOrientation, and interfaceOrientation, including windowScene.effectiveGeometry.interfaceOrientation. The Human Interface Guidelines add one line about continuity. When the device is on its side, keep controls on the side at the same vertical level, instead of rearranging the whole page because the phone turned. Standard system components do this themselves. A bar you draw does not.

UIRequiresFullScreen still applies, but the app still changes size as it opens and closes. Another sentence is easier to misread. Duo respects the supported orientations you declare, yet an app on the inner display still scales, and the same is true in Split View. So “I locked portrait, so the inner display will not get wider” does not hold. Safe areas are often asymmetric. In landscape and in Split View, a vertical button can appear on the left. Doubling the left inset to estimate width pushes the button off the other side. Subtract each edge on its own.

Multiwindow: Split View is the default, a second window is not

The multiwindow Tech Talk says it directly. Every app takes part in multitasking on Duo, and two apps can sit side by side. Apps that already resized for iPad or for iPhone Mirroring start ahead. There is also a new layout that stacks video and the app. Handle it the same way as Split View. Still read size class and scene geometry. Do not write a second branch that means “this is video.”

Duo is the first iPhone that supports multiple interface instances of the same app. What can open a new window on iPad can open one here. There is only one difference. The outer display cannot create a new window. That behavior is reserved for the inner display. A request for a new scene must handle failure. Use UIWindowSceneActivationAction. It hides itself when a new window is unavailable, instead of leaving a button that errors when tapped. Scene accessories are a third path. They put a supplementary interface on the other display. The camera’s CameraCaptureAccessory places the extra interface on the outer display, keeps the main interface full-screen on the inner display, and requires an in-progress camera session. After the device closes, the accessory is unavailable, and the button should turn off with onAvailabilityChange. That is a bonus for a camera app. Split View is not a bonus. It is the default for every app.

Shape reads the window. The hinge only drives an effect (sketch)
import SwiftUI

struct LaunchCheck: View {
    @Environment(\.horizontalSizeClass) private var widthClass

    var body: some View {
        GeometryReader { proxy in
            let wider = proxy.size.width > proxy.size.height
            Root(regularWidth: widthClass == .regular, widerThanTall: wider)
        }
        .onHingeChange { _, context in
            guard let hinge = context.hinge, hinge.status == .partiallyOpen else { return }
            // hinge.angle drives an effect. Do not lay out from the angle.
            playBend(hinge.angle)
        }
    }
}

This is not a project template. It fixes three things. At regular width on the inner display a sidebar can appear, and at compact width on the outer display it collapses. Portrait and landscape come from which side of the current window is longer, not from orientation. The hinge angle drives an effect only when partially open. Layout still goes through size class and bounds. Hand the second-window button to an activation action that hides itself. Do not leave a “New Window” control that stays tappable on the outer display.

Size, orientation, windows, and test cost

The real difference is whether the code still assumes “the phone has one screen, one orientation, and one window,” not whether design wants a fold animation. Both tables below use the same columns. Test prices are the U.S. dollar figures on this site’s pricing page: M4 16GB day 20.2 / week 54.5 / month 100.9, 24GB day 40.2 / week 108.5 / month 200.9. Person-days are not converted to dollars in this article. Schedule bands and the buy-outright comparison are in the 13 October adaptation cost.

ToolEntryWhat it can doContextWho it fits
Rebuild only to 27.1Size classes already, no screen singletonCheck vertical bars, reserved regions, full-bleed focal points, left and right Split ViewThe scan is clean, and a day can close itApps that already resized for iPad Split View or mirroring
Orientation branches remaininterfaceOrientation decides the layoutCompare width and height. Look at the tent pose for outer-display landscape on its ownThe inner display does not honor supported orientations. Locking portrait does not stop it getting widerNews, reading, and players with many landscape ifs
Single-window assumptionThe iPad “New Window” copied as-isHide the entry on the outer display. Handle creation failure on the inner display. Treat Split View as the defaultA second instance is legal only on the inner displayDocuments, mail, and design tools
Fixed pixels844, 1398, or a device tableRebuild containers, asymmetric insets, remove idiomSpec-page resolutions cannot go into constantsStores drawn for one iPhone display for years
ToolEntryWhat it can doContextWho it fits
Apple silicon you already haveLocal Xcode 27.1The full simulator matrixAdded device cost is 0, but it fights daily DerivedData for diskThe machine can already install the Xcode you pinned
M4 16GB by the dayRemote desktopOne Device Hub pass$20.2 per day. Five working days are $101.0The scan is clean, and you truly close it within two days
M4 16GB by the weekRemote desktopOne calendar week$54.5 per week. Two weeks are $109.0, still above the monthIt may slip past Friday, but it will not enter a second month
16GB / 24GB by the monthRemote desktopThe whole regression cycle. 24GB can keep more simulators open at once$100.9 or $200.9 per month. Five 24GB day rates are $201.0Orientation or pixel branches show up on day two
Xcode CloudCloud archiveCompile and signThe log does not contain the moment you drag the Home indicatorBuilds stay in the cloud. Poses stay on a remote Mac

Multiply the day rate and the test-cost conclusion is the same arithmetic as the retrofit cost. On 16GB, 20.2 times 5 = 101.0, which already equals the month at 100.9. On 24GB, 40.2 times 5 = 201.0, against the month at 200.9. The week rate, 54.5 times 2 = 109.0, is still a little above one month of 16GB. So “try it by the day” holds only when you are sure the matrix finishes in one or two days. If App Resizability on day two lists a string of orientation checks or UIScreen.main, the billing period should become a month. Day eight pays for the period, not for testing.

The matrix itself can be a grid, not a sentence that says “test the fold.” Look once at each of the three SDK tiers: letterbox, avoiding the status bar on the right, or full-screen vertical bars. Then, in the 27.1 simulator, rotate closed, partially folded, and open once each. On the inner display, use the Home indicator at the bottom to drag the app to the left, then to the right, and confirm the primary button is still there after the vertical bar changes sides. Request a second scene on the inner display. On the outer display, confirm the activation action disappears, or that a failed request is caught. The mirroring stretch on macOS 27 is an extra. It shows windows wider or narrower than Duo. It is not required before sale. Replace screenshots only after the main path is not letterboxed. Submitting Duo screenshots puts an optimized badge on the product page. From April 2027, new submissions must include those screenshots. That is a store deadline, not the layout deadline of 23 October.

Which path matches which case

If you areChooseWhy
SwiftUI only, already supports iPad Split ViewThe machine you have, or one remote day, and run the skill scan firstThe base is there. What remains is vertical bars, reserved regions, full-bleed art, and left and right Split View
Day two of the scan shows orientation or UIScreen.mainSwitch to a month immediately. Do not pay the day rate through a weekFive working days already equal one month
You locked portrait and think the inner display can waitCompare width and height first, then talk about screenshotsThe inner display does not honor supported orientations. Split View still scales
Documents or mail, with a new window on iPadHide the entry on the outer display. Handle failure on the inner displayA new window cannot be created on the outer display
A camera app that wants a teleprompterPass Split View first. Add the accessory laterThe accessory needs a full-screen inner display plus a camera session. Split View is the default for every app
Only trying to swap App Store screenshotsLand 27.1 first, then replace the artThe old SDK’s inner display is a letterbox. A badge does not turn a letterbox into adaptation
No Mac in the officeRent one, and read sw_vers and xcodebuild -version firstWhen the OS does not match, a paid day does not produce a valid cell

Keep the device on its own line. Hinge feel, and the items a simulator cannot do, need one machine. Price it from the Apple store page you see when you order. Do not spread that line across every Xcode ticket. A Duo on every desk does not make UIScreen.main disappear, and it does not let the outer display suddenly create a new window.

Recommended stacks

A — Independent developer, layout already follows size: Xcode 27.1, on the machine you have or one remote day. Have the coding assistant run “get my app ready for iPhone Duo,” or run xcrun agent skills export in the terminal and hand it to another agent. When the scan is empty, go to Device Hub: closed, partially folded, and open, rotate each once, then drag Split View to the left and the right. Tap “New Window” once on the outer display and confirm the entry disappears. Preview store screenshots for Duo in App Store Connect. This pass does not need a machine purchase just to test. Monthly node prices are on the pricing page.

B — Small team, orientation and custom bars remain: Week one is only the scan and the screen singleton. Use a week rental or go straight to a month. Do not let the day rate roll to day seven. Week two turns orientation branches into width-and-height comparisons, and writes the four safe-area edges separately. Week three keeps one image of Split View on the left and one on the right, and writes the second-scene failure path into regression. CI stays on the existing builder. The session where a person watches open and close uses that same remote Mac. The 24GB month is $200.9, and only when you must run Duo and the other simulators together. Five times 40.2 already equals that month tier.

C — You need a submission in the week of sale: Today is 15 October. Pre-order starts tomorrow. The phone is on sale 23 October. What you can promise is that on 27.1 the main path is not letterboxed, vertical bars do not cover the primary button, the button is still there after Split View changes sides, and the outer display does not surface an invalid new window. Do not put hinge motion you have not finished, or the camera accessory, into the store text. Checkout is on the rental page. OS versions and accounts go through the help center. Do not assume the image already has Xcode 27.1 installed.

Common mistakes

  1. Writing “it launches” as “it is adapted.” On the iOS 26 SDK the inner display is a centered letterbox. Users will not read the empty edge as “adaptation in progress.”
  2. Writing 1398 or 1878 from the spec page into a constant. Those are pixel magnitudes. The window is smaller in Split View and when partially folded, and scale should not be handwritten.
  3. Using orientation to decide portrait and landscape on the inner display. The inner display does not honor supported orientations. Take portrait and landscape from the aspect ratio of the current window.
  4. Thinking UIRequiresFullScreen turned off Split View and open-close. The key still applies, and size still changes as the device opens and closes. Declared orientations also do not stop the inner display from scaling.
  5. Leaving a new-window control that stays tappable on the outer display. A new window exists only on the inner display. If failure is not handled, an error appears when the device closes.
  6. Laying out from the hinge angle. The angle fits motion. Layout uses size class, reserved regions, and arrangement.
  7. Paying the day rate for a full week. Five working days on 16GB already equal the month. Day eight pays for the billing period.

Seven steps

  1. Build the same sources against each SDK you can install. First record letterbox, avoiding the status bar on the right, or full-screen vertical bars. The target is 27.1.
  2. Search the project for UIScreen.main, UIDevice.current.orientation, statusBarOrientation, interfaceOrientation, userInterfaceIdiom, and size constants such as 844, 1398, and 1878.
  3. In Xcode, have the coding assistant run App Resizability, or run xcrun agent skills export. The skill finds most of them. The list above catches the rest.
  4. Open iPhone Duo in Device Hub. Rotate closed, partially folded, and open once each. Then use the Home indicator to drag the app on the inner display to the left and to the right. Keep one image per cell of the main paths.
  5. Request a second scene on the inner display, and confirm both success and failure are caught. On the outer display, confirm UIWindowSceneActivationAction hides itself.
  6. Check whether vertical bars cover the primary button, whether left and right insets were written as equal, whether the full-bleed subject is still there, and whether reserved regions cover controls when partially folded. Check the hinge angle for motion only, not for layout.
  7. Pick the billing period. One or two days can be the day rate. A scan that is already dirty moves you to the month. Before you order, run sw_vers and xcodebuild -version on the node. After the main path is clean, replace the Duo screenshots and preview them in Connect. Do not hard-scale another iPhone canvas.

FAQ

Will an old app open on iPhone Duo launch day without code changes?

Yes. Built with the iOS 26 SDK or earlier, the open window sits in the center with empty space around it, and when closed the content sits to the left of the status bar and camera. Running is not the same as adaptation being finished. Filling the display and using vertical bars needs the iOS 27.1 SDK. Split View and a second window do not become correct just because the app opens.

If landscape is only declared in Info, will the inner display honor it?

The outer display honors the supported orientations you declare. The tent pose is worth a look on its own. The inner display does not. In Split View the app still scales. UIRequiresFullScreen does not stop the size change from opening and closing. Layout compares the width and height of the current window.

Is multiwindow optional?

Split View is not optional. Apple states that every app sits side by side, and stacked video and app use the same size classes. A new window can be created only on the inner display. The entry on the outer display should use UIWindowSceneActivationAction, which hides itself. A camera accessory on the outer display is a bonus. It requires a full-screen inner display and an in-progress camera session.

If you only have the simulator, how do you price the test?

The layout main path is enough. Apple calls the iPhone Duo simulator in Xcode 27.1 the best way to test the full experience. An M4 16GB day rate is $20.2, and five working days equal the $100.9 month. If the scan turns dirty on day two, do not pay the day rate through day eight. 24GB is $40.2 a day and $200.9 a month, and five day rates line up with the month the same way. Hinge feel still needs a device. Do not spread that line into the simulator tickets.

Can you still test before launch without a Mac?

You cannot run Xcode 27.1 on Windows. First confirm the node’s macOS can install the Xcode you pinned. System requirements stay on Apple’s Xcode system requirements. The prepare page puts the mirroring stretch on macOS 27. Open a remote node from the rental page. Prices stay on the pricing page.

Conclusion

iPhone Duo is on sale 23 October. The bar for re-adaptation is not “can it open.” First check whether size still reads the whole screen, whether orientation still decides the inner display, and whether a new window is still tappable on the outer display. When those three gates are clean, test cost is one simulator matrix, and when five day rates equal one month you switch to a month. A small app that already adapts uses the machine you have or a short rental. Where orientation, pixels, and a single-window assumption remain, a month keeps the regression. A screenshot badge does not fix a letterbox. Remote nodes are on the rental page and the pricing page. Accounts and OS versions go through the help center.

Further reading

Split View and open-close in Xcode 27.1 need a Mac whose OS version matches

The iPhone Duo simulator lives in Xcode, not on Windows. A remote Mac is for running closed, partially folded, open, and left and right Split View, then tearing the environment down. Before you order, check whether the node’s macOS can install the Xcode you pinned.

Order now · See pricing

iPhone Duo · Before launch

Split View and open-close in Xcode 27.1 need a Mac whose OS version matches

Cloud Mac · Xcode 27.1 · iPhone Duo

Order now
Mac Order now