Apple представила первый складной iPhone 9 сентября 2026 года. Имя — iPhone Duo. Предзаказ начинается 16 октября в 5:00 PT, это 20:00 того же дня по пекинскому времени. Первая волна, более 70 стран и регионов, включая Китай, поступает в продажу 23 октября. Ещё 28 регионов — 30 октября. На устройстве с завода стоит iOS 27.1. В США цена начинается с 1999 долларов за 256 ГБ. Характеристики — по пресс-релизу Apple.
Вопрос сегодня не в том, покупать ли его. Вопрос про iOS-приложения, которые уже есть в App Store: сделает ли складной экран их ненужными и какие экраны придётся менять. Документация для разработчиков прямая. Каждое приложение запускается на Duo. Собранные с SDK iOS 27 и новее меняют размер при складывании. В закрытом виде приложение возвращается на внешний экран. В открытом заполняет внутренний. Растягивается, обрезается или встаёт не туда то, где размер экрана зашит, ориентация фиксирована, а вёрстка предполагает конкретное устройство.
У обоих экранов одно соотношение сторон, поэтому содержимое может масштабироваться. Поэтому многие списки и формы не нужно рисовать заново. Внутренний экран — 7,6 дюйма, на 50 процентов больше, чем у iPhone 18 Pro Max. Внешний — 5,4 дюйма, около 90 процентов площади iPhone 18 Pro, в сложенном виде близок к паспорту. Одна колонка, растянутая на эту площадь, оставляет ленту пустой. Для этого полотна нужна разделённая вёрстка.
В заметке от 9 сентября железо описано под именем Ultra, которое ходило в тот день. Имя продукта в пресс-релизе — iPhone Duo. Этот текст только про интерфейс уже существующих приложений.
Существующие iOS-приложения не устареют. Бизнес-логику переписывать не нужно. Новая вёрстка нужна там, где в макет зашито «экран всегда одного размера»: жёсткие размеры, ветки phone/pad, свои панели, а также камера, видео и рабочие области, которые на внутреннем экране должны делиться.
Запускается. Это не готовая вёрстка
Prepare for iPhone Duo ставит нижнюю границу в первом абзаце. Каждое приложение запускается. Собранные с SDK iOS 27 и новее при открытии занимают внутренний экран, при закрытии возвращаются на внешний. Жёсткие размеры, фиксированная ориентация и допущения об устройстве ломают вёрстку.
Слово «устареют» здесь слишком сильное. Учётные записи, API, встроенные покупки и push не переписываются из-за шарнира. 23 октября старый бинарник всё ещё стартует. Покупатель может увидеть старое окно телефона по центру внутреннего экрана, вокруг пусто. Для 7,6 дюйма с ценой от 1999 долларов это не готово.
Human Interface Guidelines сужают задачу так же. Поддержка положений не значит отдельный макет на каждый угол сгиба. Compact width снаружи и regular width внутри закрывают основу. Не изобретать приложение заново при смене размера. Дать текущей вёрстке занять свободное место. См. Preparing your app for iPhone Duo.
Три уровня SDK решают внутренний экран
Один и тот же продукт выглядит по-разному в зависимости от SDK сборки. Сравнение Apple такое:
| SDK сборки | Открыт (внутри) | Закрыт (снаружи) |
|---|---|---|
| iOS 26 и старше | Окно по центру, вокруг пусто | Содержимое слева от строки состояния и камеры |
| iOS 27 | Заполняет большую часть, но обходит строку состояния справа | Возвращается на внешний экран, пустого поля меньше, чем у старого SDK |
| iOS 27.1 и новее | Весь экран. Панели инструментов и вкладок вертикально под строкой состояния | Те же вертикальные панели, экран меняется при складывании |
Duo поставляется с 27.1. Оставаться на старом SDK только чтобы приложение «ставилось» — оставить внутренний экран с полями. Перед сборкой на SDK 27.1 проверить, что содержимое не наезжает на панели, когда они становятся вертикальными.
Каким приложениям менять интерфейс
Не резать сначала по категории. Сначала найти в проекте допущения ниже. Нашлось — этот экран меняет вёрстку. Не нашлось — чаще всего хватает системных контейнеров.
Жёсткий размер экрана
Искать UIScreen.main. Складывание меняет размер приложения посреди сессии, и этот размер часто не равен размеру экрана.
UIScreen.main.boundsзаменить наview.boundsилиwindow.bounds. В SwiftUI —GeometryReaderилиonGeometryChange.- Одного чтения при запуске или в
viewIsAppearingмало. Вёрстку, зависящую от размера, класть вlayoutSubviewsилиviewDidLayoutSubviews, смену размера — вviewWillTransition(to:with:). - Масштаб брать из
traitCollection.displayScaleили@Environment(\.displayScale). UIWindow(frame: UIScreen.main.bounds)заменить наUIWindow(windowScene:). Не хранитьUIScreen.- Таблица известных высот вроде
bounds.height == 844с Duo не совпадёт.
Ориентация и ветки устройств
На Duo ориентация устройства не говорит, шире приложение или выше. Убрать вёрстку, которая зависит от UIDevice.current.orientation, statusBarOrientation и interfaceOrientation, включая windowScene.effectiveGeometry.interfaceOrientation. Сравнивать ширину и высоту доступного места.
С Duo и изменяемым по размеру iPhone Mirroring у iPhone-приложения может быть любое сочетание size class. На внутреннем экране оно должно выглядеть как естественное продолжение iPad-вёрстки, а не как второй продукт.
- Не выбирать вёрстку через
userInterfaceIdiom == .phoneили== .pad. Выбирать по size class или доступному месту. - Не считать regular width признаком «это iPad». Эта ветка теперь выполняется на внутреннем экране iPhone. Внешний экран в портрете по-прежнему compact width и regular height, как у обычного iPhone.
- Если в iPad-ветке остались жёсткие размеры только для большого экрана, внутренний экран выполнит их как есть.
Свои панели становятся вертикальными
В 27.1 системные вкладки, навигация и элементы экрана блокировки уходят вбок, под строку состояния, чтобы вертикальное место осталось содержимому. В открытом виде домашний экран — две страницы, слева Today View, вертикальный список виджетов. Строка состояния становится кругом в углу. Dynamic Island тоже встаёт вертикально сбоку на обоих экранах.
Своя верхняя панель, нижняя панель или плавающая кнопка, которая всё ещё считает, что «внизу одна горизонтальная полоса», спорит за край с вертикальными системными панелями или закрывает строку состояния справа на внутреннем экране. Свои панели и холсты до края используют ReservedRegion из iOS 27.1 в SwiftUI или UIViewReservedRegion в UIKit, чтобы сгиб и перекрытие камеры оставались свободными. Системное разделение обходит сгиб само. Собранные вручную HStack и ZStack — нет.
В полусложенном положении системный arrangement ставит основное представление по одну сторону сгиба, вторичное — по другую. Полностью открытый или закрытый, без разделяющей reserved region, overlay остаётся стопкой. Своя стопка должна обработать этот переход сама.
Видео, камера, чтение, звонки
В полусложенном виде внутренний экран ведёт себя как две половины. Медиа, камера, чтение и видеозвонки кладут содержимое на одну половину, управление — на другую, не поперёк сгиба.
Собственная камера Apple уже использует оба экрана: Duo Preview показывает селфи задней камеры на внешнем, Kid Cue проигрывает там анимацию, Duo FaceTime пускает человека рядом через внешний экран. Сторонняя камера, фильтр или эфир с одним холстом предпросмотра разрежет объект сгибом, как только устройство откроется.
Картинки и видео на весь кадр с .scaleAspectFill или .aspectRatio(contentMode: .fill) могут потерять объект на более широком внутреннем экране. Выбирать fill или fit по текущему size class или соотношению сторон либо задать точку фокуса. В пресс-релизе Netflix использует внешний экран для коротких роликов и большой экран после открытия; Zoom делит общий материал и участников на внутреннем. Это смена вёрстки: то же содержимое, другой контейнер, не новый бизнес.
Внутри разделение, снаружи одна колонка
iOS 27 впервые ставит системный Split View на iPhone: два приложения рядом или два окна одного приложения, например два Safari. Можно говорить с Siri AI с одной стороны и смотреть содержимое с другой, а пару приложений сохранить и открыть снова.
Почта, документы и рабочая область в духе Slack тратят внутренний экран, если остаются одной растянутой лентой. В SwiftUI — NavigationSplitView, в UIKit — UISplitViewController: боковая панель или две колонки внутри, одна колонка снаружи, тот же путь, что regular против compact на любом другом iPhone. В сетке чётное число колонок, чтобы сгиб мог их разделить. Ширина каждой панели должна читаться и во время складывания.
Пресс-релиз называет Slack приложением, которое уже выводит всю рабочую область на внутренний экран. Инструмент совместной работы без iPad-разделения — экран, который стоит поставить в план до 23 октября. Это всё ещё вёрстка, а не переписывание синхронизации сообщений.
Что может подождать
| Интерфейс | Если к 23 октября ничего не менять | Переделывать? |
|---|---|---|
| Настройки, формы, системные списки | Работают. Старый SDK оставляет внутри пустое поле. Новый растягивает одну колонку | Нет. Перейти на SDK 27.1 и проверить, что вертикальные панели не закрывают текст |
| Адаптивная вёрстка, которая уже есть для iPad | Внутренний экран идёт по пути regular width | Небольшое изменение. Убрать «regular width значит только iPad» |
Жёсткие 390/844 и UIScreen.main | Растяжение, обрезка, элементы не на месте | Вёрстку менять нужно. Бизнес-логику — нет |
| Камера, видеозвонки, чтение, видео на весь кадр | Объект может сесть на сгиб. Fill может обрезать лицо | Менять этот экран: половины, фокус, безопасная зона |
| Почта, документы, совместная работа | Работают, внутри как одна растянутая лента | Разделение стоит сделать. Снаружи остаётся одна колонка |
| Игры, карты, холсты | Новое соотношение показывает края или обрезает объект и HUD | Менять холст и безопасную зону, не правила игры |
Внутренний инструмент, которому снаружи хватает обычного телефона, а пустое поле внутри допустимо, может продолжать работать. Страница App Store — отдельное решение. В App Store Connect можно посмотреть материалы для iPhone Duo, в заявке на featuring указать все положения. Это витрина, а не вторая кодовая база.
Не держать три несвязанных интерфейса для закрытого, открытого и полусложенного вида. Требование — одна вёрстка, которая растёт вместе с местом.
Как проверить перед выпуском
В Xcode сказать помощнику: get my app ready for iPhone Duo. Он ищет шаблоны выше и предлагает правку. Для другого агента навык выгружается командой xcrun agent skills export. Навык находит не всё. Жёсткие высоты и свои панели всё равно смотрит человек.
Три места. Документация называет симулятор Duo полным нативным опытом:
- Симулятор iPhone Duo в Xcode 27.1
- Изменяемый по размеру симулятор iOS в Device Hub
- iPhone Mirroring в macOS 27, окно растянуть до крайних размеров в обе стороны
Минимум шесть положений: закрыто, открыто и полусложено, каждое в портрете и в альбоме. Затем один раз системный Split View. Для своей камеры или видео отдельно смотреть, не режет ли сгиб объект в полусложенном виде.
- Xcode 27.1 и симулятор Duo — на отдельный Mac. Дневные встречи и релизная сборка не делят этот ноутбук.
- Сначала прогон навыка, потом руками свои панели, видео на весь кадр и полусложенное положение.
- Если regular-вёрстки нет, не начинать разделение утром 16 октября, когда откроется предзаказ.
- Скриншоты магазина и код планировать отдельно. Нехватка картинок не снимает старый бинарник с Duo.
Месячный счёт за Mac, программу Developer и CI разобран в тексте о стоимости от 14 сентября. Duo не обнуляет эту таблицу. Нужна только чистая машина под SDK 27.1 и симулятор.
Вопросы
Откроется ли существующее iOS-приложение 23 октября без обновления?
Да. Apple пишет, что каждое приложение запускается. На SDK iOS 26 или старше: открытое стоит по центру с пустым полем, закрытое — слева от строки состояния и камеры. Открытие не равно готовой вёрстке.
Нужно ли переписывать приложение под складной экран?
Нет. Учётные записи, API и бизнес-логика остаются. Меняются UIScreen.main, фиксированная ориентация, ветки phone/pad, жёсткие ширина и высота, свои панели. Меньше всего работы у приложений на системных контейнерах, которые уже меняют размер на iPad.
Каким типам ставить смену интерфейса в первую очередь?
Камера, видеозвонки, чтение и видео на весь кадр — сгиб и полусложенное положение. Почта, документы и совместная работа — разделение внутри и одна колонка снаружи. Игры, карты и холсты — растяжение и безопасные зоны. Обычные списки и настройки можно выпустить вместе с переходом на новый SDK.
Перестанет ли работать приложение только для iPhone, без версии для iPad?
Нет. Внешний экран в портрете остаётся compact width. Внутренний — regular width. То, что открыто только для iPad при regular width, появится на внутреннем экране Duo. Если regular-вёрстки нет, новый SDK растянет одну колонку, старый оставит пустое поле.
С какой системой поставляется iPhone Duo?
В пресс-релизе указана iOS 27.1. Полный внутренний экран и вертикальные панели под строкой состояния — SDK 27.1 и новее. SDK iOS 27 по-прежнему обходит строку состояния справа.
Когда начинаются предзаказ и продажи?
Предзаказ 16 октября в 5:00 PT, 20:00 того же дня по пекинскому времени. Продажи с 23 октября более чем в 70 странах и регионах, включая Китай, и с 30 октября ещё в 28 регионах. В США — от 1999 долларов за 256 ГБ.
Итог
Складной экран не списывает существующие iOS-приложения. Он списывает допущение, что экран всегда одного размера. До 23 октября имеет смысл менять жёсткие размеры, ветки устройств, свои панели, а также камеру, видео и разделение на внутреннем экране. Списки и настройки могут идти за SDK 27.1. Проверять в симуляторе Duo из Xcode 27.1, на Mac, который не является повседневной машиной.
Xcode 27.1 и симулятор Duo — на отдельный Mac
Закрытое, открытое и полусложенное — каждый вид отдельно. Это не должен быть ноутбук, на котором весь день встречи.