›bobbyencoded_
/posts/newsletter/about
/posts/newsletter/about

The Decode

The week's AI & software news, decoded.

Subscribe →

// © 2026 BobbyEncoded Inc. — A Canadian corporation

← Back to Blog

The Decode #010

The iPhone Duo Is a New Layout Class, Not Just a New Phone

September 11, 2026 · 7 min read

The Decode, iOS, SwiftUI, Apple, iPhone Duo, Mobile Development

Apple's event on Wednesday had the usual new iPhones, but the one that matters to app developers is the iPhone Duo, Apple's first foldable. I build iPhone apps on my own, so the question for me isn't whether to buy one. It's how many of my screens quietly assume a phone is a phone.

What Apple announced

The facts from Apple's newsroom post:

  • Two displays. A 7.6-inch inner display and a 5.4-inch outer display. Apple says both have the same aspect ratio, so content scales proportionally between them.
  • Split View on iPhone, "for the first time." Two apps side by side on the inner display, two windows of the same app, and saved app pairs.
  • Content follows the fold. Apple says content "reacts as the device folds," reorients when you turn it, and moves to the right display when you flip it.
  • A20 Pro, titanium, a hinge Apple says has more than 100 components.
  • $1,999 (US) and up. Pre-orders start Oct 16, availability Oct 23, and it ships with iOS 27.1, not 27.0.

On the developer side, Apple posted a "Get ready for iPhone Duo" note the same day with new videos, Group Labs and forum Q&As, and the newsroom post says Xcode support for the Duo is still to come. Separately, Apple opened App Store submissions for the 27 releases and set a deadline: from April 2027, iOS and iPadOS apps uploaded to App Store Connect must be built with the iOS 27 SDK or later.

Why it's a new layout class

Until now, an iPhone app could assume the screen is tall, narrow, and doesn't change size while the app runs. The Duo breaks that in three ways.

1. One device, two size classes. Apple's design guidance says to use "a compact width layout for the outer display and a regular width layout for the inner display." So the same physical phone gives your app the iPhone layout when it's closed and something much closer to the iPad layout when it's open. If your app has never been tested in regular width, the Duo is where users will find out.

2. The size changes while the app is running. Open the phone mid-task and your app is now on a different screen at a different size. Add Split View and it can be any width in between. Apple's guidance is blunt about this: base layout on "your scene or containing view's bounds rather than screen dimensions," and don't use the device idiom or interface orientation to make layout decisions.

3. The fold is a region to avoid. When the phone is partly open, the crease divides the inner display. Apple calls the fold and the camera cutouts reserved regions, and says system containers (split views, sheets, alerts, menus) move around them automatically. Custom layouts have to handle it themselves.

There's also a change I didn't expect: on the outer display, toolbars, tab bars and navigation bars move to the side of the screen, because that display is wider and shorter than other iPhones. If you build your bars with the standard SwiftUI .toolbar on a NavigationStack or NavigationSplitView, the system does this for you. Apple says an item with a title but no icon won't be shown vertically, so give every toolbar item both an icon and a title.

What it looks like in SwiftUI

The fix for most of this is old advice that suddenly matters. Here's the shape of it (a minimal example, not from Apple's docs):

// Before: decide layout from the device or the screen.
// if UIDevice.current.userInterfaceIdiom == .pad { ... }
// let width = UIScreen.main.bounds.width

// After: let the size class drive it, and let the container adapt.
struct LibraryView: View {
    @Environment(\.horizontalSizeClass) private var sizeClass
    let items: [Item]
    @State private var selection: Item?

    var body: some View {
        NavigationSplitView {
            List(items, selection: $selection) { item in
                Text(item.title).tag(item)
            }
            .toolbar {
                Button("Add", systemImage: "plus") { }
            }
        } detail: {
            if let selection {
                DetailView(item: selection)
            } else {
                Text(sizeClass == .regular ? "Pick something on the left" : "Pick something")
            }
        }
    }
}

NavigationSplitView collapses to a single stack in compact width and shows columns in regular width, which, according to Apple's design guidance, is exactly how a split view behaves on the Duo when you close and open it. The toolbar button has both a title and an SF Symbol, so the system can show it vertically.

My systems lens

This is the same lesson as elastic infrastructure. A service that assumes one machine breaks the day it gets moved; a view that assumes one screen breaks the day the screen changes underneath it. In both cases, stop reading your environment once at startup and react to it instead.

The good news is that if your app already works well on iPad, in iPad multitasking, or in iPhone Mirroring, Apple says you're "well on your way."

My try-list

I don't have the SDK support or the device, so this is what I plan to check, not what I've found:

  1. Search for UIScreen.main and userInterfaceIdiom in my projects. Every hit is a layout decision that won't survive the fold.
  2. Run every screen in regular width on an iPad simulator today. That's the closest thing to the inner display I have right now.
  3. Audit toolbar items for missing icons or titles.
  4. Check state survives a size change. Rotate and resize mid-task, and see whether anything reloads or resets.
  5. Put April 2027 in the calendar for moving every app to the iOS 27 SDK.

Quick hits

  • .NET 11 RC1 ships with a go-live licence (Sep 8). Microsoft says C# 15 "stabilizes unions," and the release adds JSON support for unions and closed-type polymorphism. If you know Swift enums with associated values, this is C#'s closest equivalent yet. GA is expected in November.
  • 18 groups say Apple's new EU terms still break the DMA (Sep 8). An open letter from the Coalition for App Fairness and 17 other organisations asks the European Commission to consult affected developers before accepting Apple's terms that take effect Oct 1, and to say which DMA proceedings against Apple are still open. The complaints include the 15% steering fee and the new 5% Core Technology Commission.
  • Xcode 27 RC is out and macOS 27 is Apple silicon only (Sep 9). You can submit apps built for the 27 releases now. Apple says macOS 27 drops Intel Macs, and suggests Mac apps can go arm64-only.

What I'm watching

When Xcode gets iPhone Duo support, and whether the first big apps on day one look native or just stretched.

Sources

iPhone Duo

  • Apple Newsroom, iPhone Duo announcement (Sep 9, 2026)
  • Apple Developer, Get ready for iPhone Duo (Sep 9, 2026)
  • Apple Developer, Preparing your app for iPhone Duo
  • Apple, Human Interface Guidelines for iPhone Duo
  • Apple Developer, App Store submissions now open, with the April 2027 SDK requirement (Sep 9, 2026)
  • NPR, coverage of the iPhone Duo launch (Sep 9, 2026)

Quick hits

  • Microsoft .NET Blog, .NET 11 Release Candidate 1 announcement (Sep 8, 2026)
  • Coalition for App Fairness, open letter on Apple's new EU App Store terms (Sep 8, 2026)
  • Mobilegamer.biz, coverage of the developer coalition letter (Sep 9, 2026)
  • Apple Developer, App Store submissions now open (Sep 9, 2026)
← Previous

Jev Isn't an LLM, and That's the Point

Next →

Nvidia Is Buying the npm of AI

STAY UPDATED

Get new posts on software engineering and AI in your inbox. No spam, unsubscribe anytime.