Apple объяснила, как адаптировать приложения для складного iPhone Duo

Apple опубликовала серию материалов для разработчиков, посвящённых подготовке приложений к складному смартфону iPhone Duo. В подборку вошли шесть видеороликов и новый раздел в Human Interface Guidelines. Компания объяснила, как проектировать интерфейсы для устройства с двумя дисплеями, учитывать область сгиба, перестраивать элементы управления и поддерживать многоконный режим.
Существующие приложения смогут запускаться на iPhone Duo без пересборки, однако качество адаптации будет зависеть от версии SDK. Сборки, созданные с использованием 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.
Для сценариев, связанных непосредственно со складыванием устройства, Apple добавила API onHingeChange в SwiftUI и UIHingeInteraction в UIKit. Они позволяют получать информацию о состоянии шарнира и угле раскрытия смартфона. Технология Scene Accessories, в свою очередь, предназначена для вывода связанного содержимого на оба дисплея. Например, камера может показывать элементы управления на внутреннем экране, а на внешнем — превью изображения или телесуфлёр.
Поддержка двух фронтальных камер
В iPhone Duo используются две фронтальные камеры: внешняя и расположенная под внутренним дисплеем. В AVFoundation появилась виртуальная фронтальная камера, которая автоматически выбирает подходящий модуль при открытии и закрытии смартфона. Apple называет этот вариант самым простым способом сохранить привычную логику съёмки.
Приложениям, которым нужен полный контроль над каждым сенсором, разрешено обращаться к камерам напрямую. Для переключения между ними рекомендуется использовать AVCaptureDeviceDirectionCoordinator. При каждом переходе между экранами разработчикам также следует проверять соотношение сторон превью, зеркальное отражение и ориентацию изображения.


