Apple опубликовала серию гайдов для разработчиков о подготовке приложений к складному iPhone Duo. Подборка включает в себя шесть видеороликов и новый раздел Human Interface Guidelines. В них компания рассказывает, как приложения должны работать на двух дисплеях, обходить сгиб экрана, менять расположение элементов управления и поддерживать несколько окон.

Существующие приложения будут работать на iPhone Duo без пересборки, но степень их адаптации зависит от версии SDK. Сборка с iOS 27 оставит поля на внутреннем и наружном дисплеях, а SDK iOS 27.1 позволит занять всю доступную площадь и автоматически перестроит стандартные панели навигации.


Один из главных советов от команды Apple — не создавать отдельный интерфейс для каждого положения смартфона. Приложение должно реагировать на доступное пространство, а не название устройства или его ориентацию. Для этого рекомендуют опираться на классы размеров, геометрию сцены, безопасные области и системные контейнеры SwiftUI и UIKit.
В некоторых положения iPhone Duo верхние и нижние панели становятся вертикальными и перемещаются к краю экрана. Благодаря этому система сохраняет больше места по высоте и оставляет кнопки в зоне досягаемости большого пальца.


Автоматическая адаптация работает прежде всего со стандартными контейнерами: NavigationStack и NavigationSplitView в SwiftUI, UINavigationController и UITabBarController в UIKit. Содержимое самодельных экземпляров UIToolbar, UINavigationBar и UITabBar система при перестройке не учитывает.
У вертикальных панелей фиксированная ширина, поэтому Apple рекомендует использовать понятные символы и иконки для кнопок. Отдельного внимания потребуют составные кнопки, переключатели с текстом и другие нестандартные элементы. Для них можно задать предпочтительную ось или подготовить компактное вертикальное представление. Полностью отключать вертикальную панель рекомендуют только в случаях, где она действительно мешает.
Все приложения на iPhone Duo должны быть доступны для работы в режиме Split View, где два приложения работают рядом. Кроме того, должна быть возможность открывать несколько экземпляров одного приложения. Если программа уже умеет создавать несколько окон на iPad, то эта возможность будет работать и на iPhone Duo.


Для взаимодействий, связанных непосредственно со складыванием устройства, появились onHingeChange в SwiftUI и UIHingeInteraction в UIKit. Они сообщают состояние шарнира и угол раскрытия.
Scene Accessories позволяет одновременно выводить связанный контент на оба дисплея. Камера, например, может оставить управление на внутреннем экране, а на внешнем показать человеку в кадре превью или телесуфлёр.

У iPhone Duo две фронтальные камеры: внешняя и расположенная под внутренним дисплеем. В AVFoundation появилась виртуальная фронтальная камера, которая сама выбирает подходящий модуль при открытии и закрытии смартфона. Компания называет это самым простым способом сохранить привычную логику съёмки.
Приложения, которым нужны полные возможности каждого сенсора, смогут обращаться к камерам отдельно. В таком случае для переключения следует использовать AVCaptureDeviceDirectionCoordinator. Apple также рекомендует проверять соотношение сторон превью, зеркальное отражение и поворот изображения при каждом переходе между экранами.
Источник: habr.com