📱
Подготовьте свои приложения для iPhone DuoApple выпустила целый
раздел для разработчиков по адаптации приложений для iPhone Duo, давайте разбиарться! Начнем с
🟡Приложения будут работать криво в режиме совместимости как iPhone приложения на iPad
🟡Если собрать с iOS 27 SDK то будет уже фулскрин в режиме совместимости (черный статус-бар)
🟡При сборке с iOS 27.1 SDK можно сделать пополноценную поддержку
🟡Apple предлагает ориентироваться на доступное пространство через size classes. Для SwiftUI используется .enviroment
🟡На внешнем экране Duo всё выглядит примерно как на обычном iPhone.
🟡На внутреннем экране имеет
regular size class сразу по горизонтали и вертикали и спокойно помещает sidebar
🟡Внутренний экран вообще
не обязан соблюдать ваши supportedInterfaceOrientations.
🟡У Duo два дисплея, поэтому понятие
UIScreen.main становится неоднозначным. Apple прямо говорит, что такие обращения будут deprecated
🟡Если реально нужен экран конкретного окна, получаем его через
UIWindowScene:
window?.windowScene?.screen🟡Лучше вообще работать через environment, traits и размеры самой scene.
🟡Ещё одна ловушка —
safe area теперь может быть асимметричной width - leftInset * 2 больше не гарантирует правильный результат Левый и правый inset могут отличаться из-за формы устройства, камеры и системного UI. Apple советует считать каждую сторону отдельно и держать весь интерактивный UI внутри safe area, а фон уже спокойно растягивать edge-to-edge.
🟡Если вы используете стандартную навигацию, большая часть адаптации приезжает бесплатно.
NavigationSplitView,
UISplitViewController,
TabView,
UITabBarController, sheets, popovers и alerts уже умеют адаптироваться к разным положениям Duo
🟡На внутреннем экране даже можно автоматически превращать tab bar в sidebar.
🟡А в iOS 27.1 появилась ещё одна интересная штука:
ReservedRegion в SwiftUI и
UIViewReservedRegion в UIKit. Она нужна кастомному edge-to-edge UI, чтобы сказать системе: дай мне максимум пространства, но не залезай туда, где уже живёт системный интерфейс.
🟡В Xcode 27.1 через Device Hub можно симулировать разные состояния Duo: открыть, закрыть, повернуть, сложить и посмотреть, как ваш layout переживает всё это
🟡Появился новый AI скил для адаптации новых практик
Главный вывод после просмотра довольно приятный: iPhone Duo не приносит какой-то отдельный "FoldableKit". Apple просто продолжает давить в сторону адаптивного интерфейса:
🟢не угадывать устройство
🟢не ориентироваться на конкретную ширину
🟢не считать, что экран один
🟢не предполагать симметричные safe areas
Если вы уже следовали этим правилам, у вас будет минимум работы по адаптации