What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Most apps should not receive a separate “folding-phone” interface. Apple’s September 9, 2026 guidance for iPhone Duo says to keep using established iPhone patterns while making layouts respond to changing available space, two displays, a hinge, asymmetric reserved regions and multiple poses. The practical work is replacing fixed-size and orientation-based assumptions with size classes, trait collections, scene-aware bounds, safe-area handling and continuous state.

What iPhone Duo changes for app layouts

Apple describes iPhone Duo as a new folding iPhone form factor with an outer display, an inner display and several usable poses. The displays do not offer one permanently identical canvas: the available width, height, hinge position, safe-area shape and convenient control locations can change as the device is opened, closed or repositioned. Apple’s Designing for iPhone Duo guidance, published September 9, 2026, says existing iPhone design patterns and best practices still apply.

That means the main engineering task is adaptation, not a collection of hand-drawn screens for every hinge angle. A robust app keeps its information architecture and state intact while selecting a layout appropriate to the space the system currently provides.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Design concern What changes on iPhone Duo What to build
Available space The outer and inner displays, and different poses, provide different bounds. Responsive containers, size classes, margins and safe-area insets instead of fixed widths.
Layout decision Portrait or landscape does not reliably describe the useful arrangement. Use horizontal and vertical size classes in SwiftUI, or UIKit trait collections.
Reserved regions The outer camera region is always present and may expand into the Dynamic Island for Live Activities. Read safe areas and asymmetric insets; keep content and controls clear.
Information density The inner display may have regular size classes in both dimensions and room for an additional column. Add useful secondary content, such as a list beside a selected item, without changing the app’s core hierarchy.
Continuity The user can move between displays while using the same task. Preserve navigation, selection, edits, playback and other state during transitions.

Design from available space, not from a device name

Do not create a rule such as “if this is iPhone Duo, show the tablet layout.” The same device can present materially different space in different poses, and future iPhones can expose similar conditions. Apple’s developer session Prepare your app for iPhone Duo recommends using size classes rather than interface orientation for layout decisions.

Use size classes as the primary breakpoint

In SwiftUI, read the environment’s horizontal and vertical size classes and let those traits select the experience appropriate to the current space. In UIKit, make the corresponding decision from the view controller’s trait collection and respond when traits change. A regular horizontal class is an opportunity for a sidebar or split view; it is not proof that a particular physical model is in use.

struct MessageView: View {
    @Environment(.horizontalSizeClass) private var horizontalSizeClass

    var body: some View {
        Group {
            if horizontalSizeClass == .regular {
                MessageSplitView()
            } else {
                MessageStackedView()
            }
        }
    }
}

The code illustrates the decision boundary, not a required iPhone Duo-only screen. Keep the compact presentation useful on its own, and make the regular presentation an enhancement rather than a separate product.

Do not use orientation as a proxy for width

Two layouts can have the same orientation but very different usable widths because of the hinge, camera region or pose. Conversely, a pose that does not look like conventional landscape may still offer regular width. Orientation remains relevant for content such as a game’s controls, but it should not be the switch that determines whether navigation, a sidebar or a toolbar fits.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Let containers and margins do the work

Prefer flexible stacks, grids, split views and system navigation containers. Constrain content with layout margins and readable-width limits rather than a hard-coded pixel width. When space contracts, allow columns to collapse, text to wrap and secondary controls to move into an overflow group. When space expands, expose the next useful level of information instead of merely enlarging every control.

Account for safe areas and asymmetric reserved regions

The camera region on the outer display is always present. Apple notes that it can expand into the Dynamic Island when a Live Activity is active. That reserved space is part of the layout model, not a visual defect to cover with a custom offset.

Read the safe area instead of guessing an inset

In SwiftUI, keep content inside the system safe area by default and use the safe-area environment when an intentional edge-to-edge element needs to know the available inset. In UIKit, use the view’s safe-area layout guide and update constraints when the safe area changes. Do not assume the top inset is equal on both sides or that a value measured on one display applies to the other.

Backgrounds can extend behind a reserved region when that is intentional, but text, navigation controls, primary actions and touch targets should remain in the safe area. Test both the ordinary camera reservation and the expanded Dynamic Island state if the app supplies Live Activities.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep important controls in predictable relative positions

Users should not have to hunt for navigation or a prominent action after changing pose. Anchor those controls to the relevant safe-area edges and preserve their relationship to the content, rather than to an absolute screen coordinate. A toolbar should reflow as space changes; it should not be held together with manual spacer widths.

Group toolbar items with system groups

Apple’s iPhone Duo guidance recommends system groups for related toolbar items. System groups can adapt spacing and visibility as available space changes, while fixed spacer views can force clipping or push a primary action into a reserved region. Give the system semantic groups—such as editing, sharing or navigation—and let the container arrange them.

Remove assumptions about a “main screen”

On a two-display device, the phrase “main screen” is ambiguous. The iPhone Duo developer session warns against relying on a presumed main-screen reference and says that approach will be deprecated. Code should ask the environment that owns the content for its current size and traits.

SwiftUI approach

Use environment values, size classes, safe-area information and the bounds of the scene hosting the view. A view should not reach for a global screen singleton to decide its layout. If a feature needs geometry, obtain it from the view hierarchy with a geometry reader or the container’s layout APIs, then treat the result as changeable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

UIKit approach

Use the view controller’s trait collection, safe-area layout guide and window scene. For scene-specific geometry, obtain the current window scene from the view or window that owns the content and read its coordinate space or window bounds. Re-evaluate constraints in the normal trait and safe-area update callbacks rather than caching one launch-time screen size.

guard let scene = view.window?.windowScene else { return }
let sceneBounds = scene.coordinateSpace.bounds
// Use sceneBounds as current geometry; do not cache it as a device constant.

This also makes multi-window and resizable contexts safer. The relevant question is “what space does this scene have now?” rather than “which iPhone model is this?”

Keep the app recognizable as it moves between displays

A display transition should not reset the user’s task. Preserve the information hierarchy, selection, navigation path, form values, scroll position where practical, playback position and unsaved edits. If the user is reading a message on the outer display and opens the device, the selected message should remain selected on the inner display.

Add hierarchy only when the larger space helps

Apple gives an email example: on a larger inner display, show the message list beside the selected message. That is an additional level of simultaneous information, not a reason to redesign the app’s navigation model. Keep the same labels, actions and ordering so the user can recognize the expanded presentation immediately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a deliberate collapse path

Every expanded layout needs a compact equivalent. A two-column email view can collapse to list-then-detail navigation; a wide inspector can become a sheet; a multi-column settings view can become a stack. Define which column remains primary, how selection is represented and how the user returns to the secondary content. Do not simply hide a column and leave its actions inaccessible.

Handle transitions without destructive side effects

Trait changes and view recomputation can occur more than once. Keep model state outside transient layout branches, make rendering idempotent and avoid starting duplicate network requests when a view is rebuilt. Save drafts and other user input in the model or scene state, not only in a view that may be replaced during adaptation.

Implement the adaptation in SwiftUI and UIKit

SwiftUI checklist

  1. Read horizontal and vertical size classes from the environment.
  2. Use adaptive stacks, grids and split navigation so children can accept the proposed size.
  3. Respect the safe area; inspect safe-area insets when an edge-to-edge component needs custom placement.
  4. Use view-local geometry for measurements and avoid a global screen-size constant.
  5. Keep the data model and navigation state above conditional layout branches.
  6. Preview compact and regular combinations, the smallest and largest supported text sizes, and localized strings that expand.

UIKit checklist

  1. Base layout decisions on the view controller’s trait collection, not only interface orientation or user-interface idiom.
  2. Constrain content to safe-area and layout-margin guides; allow those guides to change.
  3. Respond to trait and safe-area changes by updating constraints or view configuration.
  4. Use the owning window scene for current bounds and coordinate-space information.
  5. Use split view, navigation and toolbar APIs that can collapse or reflow instead of fixed frame calculations.
  6. Keep task state in models or coordinated controllers so a layout transition does not discard it.

Apple’s guidance does not require a unique custom screen for every pose. Size-class-driven layouts can often adapt naturally as the app changes size, reducing both code paths and transition bugs.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Test the ordinary iPhone cases as well as Duo poses

The general Layout guidance, updated September 9, 2026, calls out screen sizes, orientation, the Dynamic Island, text size, localization and resizable contexts. An iPhone Duo pass should therefore be added to—not substituted for—the normal adaptation matrix.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start with the extremes

Preview the smallest and largest layouts first. Verify that the compact version still exposes the primary task and that the expanded version has a meaningful use for its extra space. Then check intermediate widths so a layout does not work only at two hand-picked breakpoints.

Run a transition checklist

  • Open and close the device while a user is editing, reading, navigating and playing media.
  • Confirm that selection, draft text, scroll position and playback do not unexpectedly reset.
  • Check both displays with the camera reservation and with a Dynamic Island Live Activity, where applicable.
  • Test each supported orientation, but verify that size-class changes—not orientation alone—drive the layout.
  • Increase text size until labels wrap and controls remain usable.
  • Switch to long localized strings and right-to-left languages if the app supports them.
  • Inspect keyboard, sheet, popover and split-view behavior when the available height changes.
  • Test accessibility focus order and VoiceOver navigation after columns appear, collapse or move.

Apple’s recommendations describe design and implementation behavior; they do not establish compatibility results for every existing third-party app. A physical iPhone Duo can provide additional validation when available, but no particular purchase is required by the guidance.

Common mistakes and their fixes

Mistake Why it fails Fix
Hard-coding the outer display’s width The same app can receive different bounds and safe areas. Use flexible constraints, size classes and scene geometry.
Switching layouts only on portrait versus landscape Orientation does not describe hinge, inset or useful width. Use traits and available space as the breakpoint.
Applying one symmetric top padding value Reserved regions can be asymmetric and can expand. Use safe-area insets and layout guides.
Using a global “main screen” object There are two displays and the reference can be ambiguous or deprecated. Read the owning scene, environment or trait collection.
Adding fixed toolbar spacers Items collide or disappear as space changes. Group related items with system toolbar groups.
Creating a bespoke screen for every pose More branches multiply maintenance and make transitions inconsistent. Let size classes and adaptive containers handle natural changes.
Resetting state when a view is rebuilt Trait changes can recreate portions of the hierarchy. Keep state in the model or scene and make layout changes non-destructive.

A practical migration sequence for an existing app

  1. Inventory assumptions. Search for fixed widths and heights, absolute coordinates, orientation-only branches, global screen references and cached safe-area values.
  2. Move decisions to traits. Replace model-name checks with size-class and trait-collection checks.
  3. Make edges safe. Replace guessed camera or top offsets with safe-area and layout-margin constraints.
  4. Define compact and expanded states. Document what collapses, what remains primary and which additional information appears in regular space.
  5. Separate state from presentation. Ensure navigation, selections, drafts and playback survive a layout recomputation.
  6. Rework toolbars. Use semantic system groups and allow secondary actions to move into overflow.
  7. Exercise the matrix. Preview extremes, text sizes, localizations, orientations, Dynamic Island conditions and display transitions.
  8. Review accessibility. Confirm readable order, target sizes, labels and focus movement in both compact and expanded presentations.

Apple’s What’s new — Design page records the September 9, 2026 release of the iPhone Duo and Layout guidance. Those documents are the appropriate baseline as the platform’s APIs and device behavior continue to develop.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.