This week I’ve been thinking about...
On Wednesday, YouTube was full of iPhone Duo reviews. Looks like that was the day Apple let all the bloggers show the device publicly. The most interesting part for me was seeing how our apps look on it right now. Old versions look pretty strange, apps have black bars on the sides, or just stretch to the full screen. It reminded me of the first iPad, when you could run iPhone apps on it. I’m really glad Apple delayed the release and gave us time to prepare!
Foldables have been around for years, but no one pushed developers to make their apps look good on them. Apple did, and I love it. I like how all the controls move to the side of the screen, so the content gets the whole display. I hope a lot of apps, especially popular ones, managed to update to the new layout in time.
Today iPhone Duo lands in the hands of the mass market, so I wish you clean Crashlytics and zero incidents. I’m picking up mine in about a week, and I think by then all the apps will be ready. If yours isn’t ready yet, keep reading, this issue is full of great articles, including how to adapt your app to the new iPhone Duo layout!
What’s New
Developers bring incredible new app experiences to iPhone Duo
Today the first users get their iPhone Duo, and we want them to be as happy as possible when they open your app, already adapted for the new device. And if you do it, you get a special “Made for iPhone Duo” badge on the App Store!
Releases
Must Read
The Upload Finished. Did the Work?
Offline mode and data uploads is a classic system design question and this article covers it really well. Your user can lose an internet connection halfway through an upload, or exit the app and come back later, you need a state machine to know where the upload process is at.
Btw, the Idempotency-Key is also described here. Understanding this concept is important if you want to handle the retry logic in the right way.
A Practical Guide to Migrating from RxSwift to AsyncSequence and Observable
If your minimum supported version is iOS 17, I highly recommend this tutorial. I remember the times when RxSwift was in every project, and we all used it to bind the View and the ViewModel. I even built my own localization package, RxLocalizer, which was accepted into the RxSwiftCommunity. Good times!
Today we have many native ways to update the View automatically when the ViewModel changes.
SwiftUI Performance: Find Redraws in Xcode Instruments
I’ll be honest, I don’t use Instruments that often. I probably haven’t worked on really complex UI lately, but I still think it’s a very important skill. When you need to debug a slow view, Instruments always helps.
This tutorial explains how to find views that redraw too often and what triggers them. A single body update is cheap, but hundreds of them on the main thread sounds like a real problem.
When to Use a View Model in SwiftUI (and When It’s Overkill)
Good examples of when you need to use a view model, and when it’s just an extra file. Trust me, you don’t always need a new view model for small screens. If you have a main screen with its own view model, smaller screens can reuse the same one, even for their actions.
Quick Read
Positioning SwiftUI views around the fold on iPhone Duo
// iOS 27.1: find the fold and keep content clear of it .onGeometryChange(for: ClosedRange<CGFloat>?.self) { proxy in proxy.reservedRegions(kind: .division) .first { $0.frame.height > $0.frame.width } .map { $0.frame.minX...$0.frame.maxX } } action: { fold = $0 }Making custom SwiftUI controls accessible with accessibilityRepresentation
// VoiceOver treats the custom waveform as a native Slider WaveformScrubber(position: $position, duration: duration) .accessibilityRepresentation { Slider(value: $position, in: 0...duration) { Text("Playback position") } }
Video
iPhone Duo Review: After 3,000 Folds, Here’s What We Found
This is not just another iPhone Duo review, it’s a masterpiece of editing! Highly recommend watching it and just enjoying it. You’ll also see what happens to the iPhone Duo screen after heavy use, and how apps look on it today.
Toolbox
On every project I’ve worked on, we used different app icons for debug, staging, and production builds. It’s super convenient, you always know which one to tap! This CLI tool creates them for you.
Weekly Poll
📊 Last Week’s Poll Results
Did you pre-order iPhone Duo?
Top Answer: I’m not going to buy iPhone Duo
Upcoming Conferences
November
2–3 — Swift Connection (Paris 🇫🇷)
10–12 — Do iOS 2026 (Amsterdam 🇳🇱)
19–20 — Swift Bharat (Mumbai 🇮🇳)
20–22 — SwiftSonic 26 (Nashville 🇺🇸)
February 2027
16–18 — ARCTIC Conference (Oulu 🇫🇮)
March 2027
2–4 — try! Swift Tokyo 2027 (Tokyo 🇯🇵)
16–18 — Appdevcon 2027 (Amsterdam 🇳🇱)
April 2027
4–6 — Deep Dish Swift 2027 (Chicago 🇺🇸)
September 2027


