По данным официального объявления Apple от 9 сентября 2026 года, iPhone Duo стал первым складным iPhone в линейке компании — см. публикацию Apple Newsroom. Для команды это означает не необходимость переписать каждый экран, а другой порядок работ: сначала обновите среду разработки и восстановите адаптивную разметку, затем последовательно проверьте внешний экран, внутренний экран, изменение окна и состояния сгибания. До появления устройства большая часть layout-проверок выполнима в официальной среде, но камеру, сенсорные зоны, автономность и механику складывания нужно подтвердить на реальном iPhone Duo.

Эта инструкция для вас, если приложение всё ещё зависит от фиксированных размеров, ручного определения ориентации или собственного навигационного контейнера. Она также пригодится QA-руководителю, которому нужно составить регрессионный план, и команде, которой на короткий срок требуется дополнительная Mac-мощность для сборок и параллельного тестирования.

Последнее обновление: 10 сентября 2026 года. Сведения о возможностях iPhone Duo и инструментах сверены с официальным объявлением Apple, материалами Apple Developer, Tech Talks и документацией Xcode.

До первой сборки: отберите приложения по уровню риска

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

До изменения проекта проведите короткий аудит. Для каждого приложения отметьте:

  • используются ли фиксированные ширина, высота, координаты и отступы;
  • определяется ли ориентация через собственное условие вместо анализа доступного окна;
  • берётся ли размер главного экрана вместо границ текущей сцены;
  • есть ли собственная навигационная панель, таб-бар или контейнер, который не умеет сжиматься;
  • присутствуют ли двухколоночные экраны, редакторы, таблицы, карты и панели инструментов;
  • поддерживаются ли многоконность, разделённый экран, картинка в картинке и восстановление сцены;
  • открываются ли камера, полноэкранное видео, клавиатура и системные диалоги поверх изменяемого интерфейса.

После аудита разделите проекты на три группы.

Без немедленных изменений. Разметка уже использует стандартные ограничения и компоненты, размеры не зашиты, а критические потоки не зависят от конкретной ориентации.

Требуют корректировки интерфейса. Есть фиксированные области, ручная логика ориентации, неполные ограничения, переполнение текста или разрыв иерархии при изменении ширины.

Требуют отдельной функциональной проверки. Приложение использует камеру, видео, многозадачность, интерактивный редактор, сложный drag-and-drop, собственную навигацию или долгие фоновые операции.

Так вы не потратите время на полную проверку малорискового приложения и заранее выделите сценарии, где визуальный дефект может превратиться в блокирующую ошибку.

Первый час: закрепите Xcode 27, SDK и повторяемую сборку

Начните не с исправления constraints, а с фиксации среды. На 10 сентября 2026 года ориентируйтесь только на статус, который указан на официальных страницах Apple Developer. Системные требования Xcode должны быть проверены для конкретной версии, которую вы собираетесь использовать. Если профиль iPhone Duo, SDK или отдельная функция обозначены как beta либо coming later, это нужно сохранить в документации проекта, а не описывать как стабильное требование.

Последовательность первого часа:

  1. Зафиксируйте версию Xcode 27, SDK, macOS, Swift-пакетов и инструментов подписи в CI-описании.
  2. Создайте отдельную ветку или тег для адаптации, чтобы результаты тестирования не смешивались с обычным релизным циклом.
  3. Проверьте, что локальный Mac и удалённая Mac-среда используют одинаковые версии инструментов, сертификаты, зависимости и переменные окружения.
  4. Соберите текущую версию приложения без изменений.
  5. Запустите базовые сценарии и сохраните снимки внешнего экрана, внутреннего экрана, узкого окна и широкого окна, если эти профили доступны в официальном симуляторе.
  6. Запишите предупреждения компилятора, логи запуска, ошибки Auto Layout и сбои восстановления сцены.

Для работы с подключёнными устройствами и профилями используйте официальную документацию Device Hub. Не добавляйте в скрипты неофициальные имена конфигураций: Apple может изменить профиль, способ его выбора или статус доступности.

Важно. Симулятор должен быть воспроизводимым инструментом, а не единственным доказательством совместимости. Зафиксируйте имя профиля и версию SDK в отчёте, иначе через неделю команда не сможет понять, на каком сочетании настроек был получен результат.

Если для короткого цикла вам не хватает сборочных слотов, сначала оцените текущую Mac-среду для разработки и удалённой работы. Важна не сама аренда, а одинаковый образ среды: при разных версиях Xcode сравнение результатов теряет смысл.

Первый день: замените предположения о размере на правила адаптивной разметки

Главная задача первого дня — найти места, где код предполагает один дисплей. Начните с поиска фиксированных значений, прямого обращения к размеру экрана и ручной смены интерфейса по признаку portrait или landscape. Затем проверьте, не используется ли размер устройства там, где нужен размер текущего окна или сцены.

Apple рекомендует строить интерфейс вокруг адаптивной компоновки, стандартных компонентов и ограничений. В документации UIKit по layouts описаны базовые подходы, которые следует сопоставить с вашим проектом. Отдельно изучите материал о работе с представлениями и контроллерами UIKit, если навигация и вложенные контейнеры создавались вручную.

Проверяйте интерфейс в таком порядке:

  1. Безопасная область. Ни один интерактивный элемент не должен перекрываться системными областями, клавиатурой или зоной, которую устройство резервирует при изменении состояния.
  2. Информационная иерархия. На внешнем экране сохраняются заголовок, основной контент и ключевое действие; на внутреннем экране дополнительная ширина не должна создавать бессмысленную пустоту.
  3. Сжатие. Длинные заголовки, локализованные строки, поля ввода и кнопки должны либо переноситься, либо корректно менять расположение.
  4. Навигация. Переход между списком и деталями не должен зависеть от того, какая ширина была у окна в момент запуска.
  5. Состояние. После изменения размера или возврата приложения из фона введённые данные, выбранная вкладка, позиция прокрутки и открытый экран должны сохраняться по правилам продукта.

Если у вас есть отдельный компактный и расширенный режим, описывайте переход между ними через доступное окно и размер сцены, а не через название конкретного устройства. Это снизит риск повторной переделки, если Apple изменит классы размеров или добавит другой форм-фактор.

Второй и третий день: отделите изменение окна от логики сгибания

На этом этапе проверяется не только сам layout. Нужно установить, что происходит с пользовательским действием, когда приложение переходит между состояниями:

  • полностью закрытое устройство;
  • полностью раскрытый экран;
  • частично согнутое состояние;
  • узкое или разделённое окно;
  • режим с картинкой в картинке, если он предусмотрен продуктом;
  • возврат из фона после изменения размера.

Не превращайте каждое состояние в отдельную копию интерфейса. Базовое правило такое: если меняется доступное пространство, перестраивается компоновка; специальная логика состояния сгибания добавляется только тогда, когда она действительно нужна бизнес-сценарию. Например, редактор или видеопросмотр может использовать частичное сгибание иначе, чем обычный список. Но карточки, формы и навигация не должны получать аппаратно-зависимые условия без доказанной необходимости.

Проверьте четыре класса дефектов:

  • визуальные: обрезанный текст, перекрытие, пустые панели, неверный масштаб изображения;
  • интерактивные: недоступная кнопка, неправильная область жеста, потеря drag-and-drop, сброс фокуса;
  • состояния: повторная загрузка, потеря введённых данных, возврат на первый экран;
  • ресурсные: повторное подключение камеры, остановка видео, ошибка аудиосессии или неожиданный переход приложения в фон.

Для ограничений размера окна изучите официальную документацию UISceneSizeRestrictions. Не копируйте пример в проект механически: сначала определите минимальный размер, при котором конкретный экран сохраняет смысл, затем проверьте, что запрет сжатия не ломает многозадачность.

Опыт из приёмки. Если интерфейс выглядит правильно только после перезапуска, адаптация не завершена. Пользователь меняет состояние устройства во время работы приложения, поэтому непрерывность навигации и сохранение данных важнее одного удачного снимка экрана.

Первая неделя: превратите проверку iPhone Duo в регрессионную матрицу

После ручного исправления экранов создайте компактный набор автоматических проверок. Он должен охватывать не все комбинации, а наиболее дорогие для бизнеса потоки:

  • запуск после чистой установки;
  • вход, восстановление сессии и выход;
  • открытие ключевого списка и карточки;
  • ввод текста с клавиатурой;
  • изменение размера окна;
  • поворот или смена доступной ориентации, если сценарий поддерживается;
  • переход приложения в фон и возврат;
  • открытие камеры, видео или системного диалога;
  • включение специальных возможностей;
  • повторный запуск после прерванной операции.

Разделите проверки на две группы. Автоматизируйте стабильные действия: запуск, переходы, наличие элементов, текстовые значения, сохранение состояния и отсутствие падения. Вручную проверяйте то, что зависит от восприятия и физики: перекрытие, удобство жеста, поведение при частичном сгибании, точность сенсорной зоны, плавность перемещения контента и внешний вид камеры.

Заранее введите уровни дефектов:

  • Blocker: невозможно выполнить ключевое действие, приложение падает или теряет пользовательские данные;
  • High: основной сценарий выполняется только после обходного действия, важный элемент перекрыт или экран непригоден в одном из основных состояний;
  • Medium: нарушена вторичная функция либо визуальная иерархия, но основной поток сохраняется;
  • Observation: косметическое отличие, которое не мешает работе и может попасть в следующий цикл.

Для каждой ошибки сохраняйте состояние окна, ориентацию, профиль симулятора, версию сборки и шаг, на котором изменилось состояние. Без этих полей разработчик получит только снимок проблемы, но не сможет воспроизвести переход.

FAQ: что проверять до появления реального устройства

Нужно ли полностью переписывать существующее приложение?

Нет, если проект уже опирается на адаптивные ограничения, стандартные контейнеры и размер текущей сцены. Сначала исправьте фиксированные размеры, ручную ориентацию и неполные ограничения. Полная переработка нужна не из-за самого факта складного экрана, а из-за архитектуры, которая не умеет переживать изменение окна и восстановление состояния.

Как организовать проверку внешнего и внутреннего экрана?

Установите подтверждённый Apple профиль симулятора, если он доступен для вашей версии Xcode 27, затем выполняйте один и тот же набор сценариев на компактном и расширенном окне. Снимайте базовые кадры до исправлений и после них, отдельно отмечая переход, а не только конечное состояние. Неподтверждённые тестовые профили не используйте как основание для релизного решения.

Где искать самые вероятные ошибки интерфейса?

Начните с экранов, где есть фиксированные координаты, собственная навигация, таблицы, редакторы, камера, видео, двухколоночная схема и длинные локализованные строки. Затем проверяйте безопасную область, клавиатуру, всплывающие окна, drag-жесты и восстановление после изменения размера. Именно эти места чаще всего раскрывают скрытую зависимость от одной ширины.

Достаточно ли симулятора без iPhone Duo?

Для layout, навигации, изменения окна, большинства UI-тестов и восстановления состояния симулятор может закрыть основную часть подготовительной работы. Он не доказывает правильность тактильных зон, работу камер, расход заряда, нагрев, длительную производительность и механику складывания. Поэтому физическое устройство нужно не для повторения всей регрессии, а для целевого подтверждения ограниченного списка рисков.

Как определить срок адаптации складного iPhone?

Составляйте оценку по уникальным состояниям окна и критическим потокам, а не по числу экранов. Простое приложение с адаптивной разметкой пройдёт аудит и регресс быстрее продукта с камерой, видео, несколькими сценами и собственным навигатором. В план обязательно включите время на повторную сборку, анализ дефектов, проверку доступности и отдельный слот для реального устройства после его получения.

После выхода iPhone Duo: короткая физическая приёмка вместо бесконечного полного прогона

Когда устройство поступит в команду, не запускайте всю матрицу без приоритета. Сопоставьте номер сборки и контрольные снимки с предрелизной базой, затем выполните только то, что симулятор не мог доказать:

  1. Проверьте реальные зоны касания на внешнем и внутреннем экране.
  2. Несколько раз выполните переход при закрытии, раскрытии и частичном сгибании.
  3. Откройте камеру, переключите объективы и проверьте возврат в приложение.
  4. Запустите длительный сценарий с видео, навигацией или редактором.
  5. Сравните нагрев, расход заряда и поведение после возврата из фона.
  6. Проверьте жесты, клавиатуру, системные панели и специальные возможности.
  7. Зафиксируйте отличия от симулятора, а не только наличие новых ошибок.

После этого примите одно из трёх решений: немедленно выпустить адаптированную сборку, включить ограниченное распространение и наблюдать телеметрию либо отложить публикацию до исправления блокирующих проблем. Для распространения на зарегистрированные устройства сверяйтесь с официальной процедурой Apple, поскольку требования к подписи и доступным профилям могут меняться вместе с SDK.

Условия выбора среды для короткого цикла адаптации

Если у команды уже есть стабильный Mac с нужным Xcode, зависимостями и свободным временем CI, проводите основной цикл локально и добавляйте физический iPhone Duo только на финальную стадию. Если среда занята релизами, несколько разработчиков должны собирать разные ветки параллельно, а проверка ограничена сроком до поставки устройства, временная удалённая Mac-среда может быть рациональнее покупки дополнительного оборудования.

Используйте следующий выбор:

  • Если проект собирается в едином образе, CI свободен, а тестировщиков немного — выбирайте существующий локальный Mac и добавьте отдельный симуляторный профиль.
  • Если нужно параллельно собирать несколько веток, фиксировать версии Xcode 27 и выдавать доступ QA — рассмотрите временное расширение Mac-мощностей.
  • Если основная проблема связана с камерой, тактильным вводом, нагревом или шарниром — не заменяйте физическое устройство удалённой средой.
  • Если приложение выполняет стабильную тяжёлую нагрузку месяцами и требует постоянного доступа к физическим интерфейсам — сравните аренду с покупкой собственного Mac, потому что краткосрочная схема не обязательно выгоднее постоянной.
  • Если у вас нет подтверждённого профиля iPhone Duo в текущем SDK — не стройте релизное решение на стороннем симуляторе; дождитесь официального инструмента или ограничьте выводы тестами общей адаптивности.
Этап Что проверяется Основной инструмент Результат, который нужен команде
До сборки Фиксированные размеры, ориентация, навигация, сцены Аудит кода и архитектуры Список экранов по трём уровням риска
Первый час Версии Xcode 27, SDK, зависимости и базовое поведение Локальный или удалённый Mac, симулятор Воспроизводимая сборка и исходные снимки
Первый день Безопасная область, ограничения, размеры сцены, информационная иерархия Симулятор и ручная проверка Исправленные layout-дефекты
Второй–третий день Сгибание, изменение окна, многозадачность, восстановление Симулятор, UI-тесты, ручные сценарии Матрица состояний и список исключений
Первая неделя Регресс, доступность, запуск, фон, ключевые потоки CI и ручная визуальная приёмка Решение по блокирующим дефектам
После получения устройства Касание, камера, шарнирная механика, нагрев, заряд Реальный iPhone Duo Выпуск, ограниченное распространение или перенос

Итоговая оценка должна учитывать не только цену оборудования или число сборочных машин. Локальная среда даёт полный контроль и физические интерфейсы, но требует закупки, обслуживания и свободного ресурса команды. Временная Mac-среда удобна для короткого адаптационного спринта, однако она не заменяет реальный iPhone Duo и не отменяет проверку аппаратных сценариев. Если вы арендуете Mac через MacPull, заранее согласуйте образ инструментов, срок доступа и способ передачи сборочных артефактов; актуальные варианты и условия можно проверить на странице тарифов MacPull.

Для проекта, который уже работает на обычном iPhone, переход на складной форм-фактор обычно не требует переписывать всё приложение. Слабое место текущего подхода — зависимость от одной ширины, ручная ориентация и невозможность воспроизвести несколько состояний окна на занятом Mac. Поэтому для короткого срока до релиза разумно сначала привести layout к адаптивной модели, затем вынести симуляторную регрессию в повторяемую среду, а уже после получения iPhone Duo подтвердить камеру, касания, автономность и механику. Если существующей мощности не хватает именно на этот временный цикл, аренда MacPull может оказаться практичнее покупки оборудования, которое будет простаивать после завершения адаптации.

Частые вопросы

Нужно ли переписывать существующее приложение для iPhone Duo с нуля?

Обычно нет. Сначала проверьте, насколько приложение зависит от фиксированных размеров, ручного определения ориентации, собственного навигационного контейнера и жёстких отступов. Если базовая разметка использует адаптивные ограничения и стандартные компоненты UIKit, чаще требуется корректировка экранов и сценариев, а не полная переработка. Полный рефакторинг оправдан только при системных конфликтах с изменяемым окном.

Как проверить переход между внешним и внутренним экраном iPhone Duo?

Используйте актуальную конфигурацию симулятора, если она уже опубликована Apple Developer и отмечена как доступная для текущей версии инструментов. Последовательно меняйте размер окна, ориентацию и состояние сгибания, фиксируя снимки экрана и логи. Проверяйте сохранение навигации, введённых данных и фокуса. До появления официального профиля не подменяйте его самодельным пресетом и не считайте результат окончательным.

Какие элементы интерфейса особенно часто ломаются на складном iPhone?

Наибольший риск создают фиксированные ширина и высота, привязка к главному экрану вместо границ сцены, ручная логика портретной ориентации, собственные панели навигации, двухколоночные экраны и элементы, выходящие за безопасную область. Отдельно проверяйте камеры, полноэкранные видео, клавиатуру, всплывающие окна и восстановление состояния после изменения размера окна.

Можно ли завершить адаптацию без физического iPhone Duo?

Большую часть проверки интерфейса и сценариев можно выполнить до поставки устройства, если Apple предоставила официальный симулятор и документацию для вашей версии SDK. Однако симулятор не подтверждает реальное поведение сенсорных зон, непрерывность перехода при складывании, работу камер, тепловой режим, расход аккумулятора и длительные сессии. Эти пункты оставляйте отдельным блоком обязательной проверки на устройстве.

Сколько времени заложить на проверку совместимости складного iPhone?

Для небольшого приложения с адаптивной разметкой достаточно планировать поэтапную проверку от первичного аудита до регресса в течение нескольких рабочих дней. Сложные продукты с камерой, видео, многими сценами, собственным навигатором и многозадачностью потребуют более длинного цикла. Срок следует считать не по числу экранов, а по числу уникальных состояний окна и критических пользовательских потоков.