AppleはiPhone Duo向けに複数の表示領域と折りたたみ操作を扱う設計資料を公開しています。iPhone Duo向け準備資料で確認できる方向性から判断すると、iPhone Duoの折りたたみレイアウト対応は、専用画面を新設するより、固定サイズ・方向判定・メイン画面参照を先に取り除くのが最短です。iPhone 18 Proをコンパクト幅の回帰基準として残し、iPhone Duoでは展開、折りたたみ、複数領域を検証してください。

この方法なら、既存のiPhone Appを一つのコードベースで保守しやすくなります。SwiftUIの開発者は伸縮するコンテナーへ、UIKitの保守チームはtrait collection、safe area、シーン境界へ作業を分け、技術責任者は各段階に完了条件を置けます。

SwiftUI開発者は固定されたStackを伸縮可能なレイアウトへ置き換えたい人に向いています。UIKitの保守チームはtrait collectionやsafe areaに依存する画面を整理したい人が対象です。技術責任者は、実機が届いてからまとめて改修するのではなく、適応作業を検収可能な段階へ分割したい場合に役立ててください。

最終更新:2026年9月17日。XcodeとSDKの要件は、AppleのXcodeシステム要件およびApple DeveloperのiPhone Duo関連資料を基準に確認しています。

着手前の互換性ベースライン

最初に、iPhone 18 Proと現在サポートしている端末で、主要画面の状態を保存します。対象はトップ画面だけではありません。ログイン後の一覧、詳細、編集、決済や送信前の確認画面まで、通常の導線を一度通して記録します。

保存するものは次のとおりです。

  • 縦向きと横向きでの画面キャプチャ
  • ナビゲーションの遷移順と戻る操作
  • キーボード表示中の入力位置
  • スクロール位置と選択中の項目
  • Split Viewや複数シーンを使う画面の状態
  • 既存のUIテスト、スナップショット、リリースビルド結果

ここでの完了条件は、「改修前の画面が再現できる」ことです。見た目だけでなく、戻る、再表示、フォーカス復帰まで記録してください。後でレイアウトが変わった際、意図した再配置なのか、コンテキスト消失なのかを判定できるようになります。

次にXcode、macOS、iOS SDKの組み合わせを確認します。Xcode 27.1 betaについては、Apple Developerが提供予定として案内している段階の内容と、実際に利用できるツールの挙動を分けて扱ってください。専用APIを前提に実装せず、利用するツールが公開された後に最小構成のプロジェクトで再確認します。

初回監査で固定レイアウトを洗い出す

iPhone Duoの表示領域が変化すると、画面幅を一度だけ決めて配置する設計ほど破綻しやすくなります。最初の監査では、次の検索語やパターンをコードベース全体で確認してください。

  • 固定されたwidth、height、frame値
  • 端末名や画面サイズによる分岐
  • portrait、landscapeを前提にした手動判定
  • UIScreen.mainから取得したサイズの直接利用
  • 一つのsafe areaだけを全画面の基準にする処理
  • 広い画面でも横一列を維持するStack
  • 再表示時にスクロールやフォーカスを初期化する処理

修正順は、画面を見えなくするものから始めます。最初に、ボタンや入力欄が切れる処理、固定幅によるクラッシュ、重なりを止めます。次に、回転やシーンサイズ変更で崩れる制約を直し、その後に余白、優先順位、見た目を整えます。外観の微調整から入ると、後でコンテナー構造を変えた際に作業をやり直すことになります。

注意:端末名で「Duoならこの画面、通常のiPhoneなら別の画面」と分ける実装は、折りたたみ状態やシーンのサイズ変化を表現できません。端末名はログや分析の補助にとどめ、レイアウトの決定材料にしないでください。

既存のiPhone AppをiPhone Duoへ適応する場合も、まずはこの監査を完了させます。折りたたみ画面だけを対象にすると、通常のiPhoneで残っている固定値が回帰原因になります。

初日の連続適応レイアウト

監査が終わったら、同じコンテンツを狭い領域と広い領域で再配置できる構造に変えます。iPhone Duo用に別の画面を一式作る必要はありません。iPhone Duoに独立した画面セットを作るのではなく、表示可能な幅と高さに応じて役割を変える方針にします。

SwiftUIでは、環境から得られるsize classと自動調整されるコンテナーを起点にします。UserInterfaceSizeClassの公式ドキュメントが示す考え方に沿って、横幅が狭いときは主コンテンツを優先し、余裕があるときは補助情報を横に置きます。

実装時は、次のように役割を分けると整理しやすくなります。

  • 画面全体の配置:適応するコンテナー
  • 主コンテンツ:狭い領域でも成立する単一カラム
  • 補助情報:広い領域で表示するサブカラム
  • 操作領域:常に到達できる位置へ再配置
  • 状態管理:表示幅が変わっても同じモデルを保持

UIKitでは、画面の境界を直接推測せず、シーンから通知される境界情報とtrait collectionを使います。UITraitCollectionの公式資料を参照し、compactとregularの変化を画面構成へ反映させます。古い画面をそのまま複製するのではなく、主従関係を定義して、狭い場合は詳細を遷移先へ、広い場合は同時表示へ切り替えます。

既存画面の置き換え例

たとえばメール一覧と本文を同時に扱う画面なら、狭い領域では一覧から本文へ遷移し、広い領域では一覧を残したまま本文を横に表示します。ここで重要なのは、表示方法が変わっても選択中のメール、スクロール位置、編集中の内容を同じ状態モデルで維持することです。

反対に、設定画面のように項目間の依存関係が強い画面では、広い領域でも無理に二列化しない方が安全です。レイアウトの変更は「広いから分割する」ではなく、ユーザーが同時に比較・操作する価値があるかで判断してください。

折りたたみ領域と保留領域の扱い

次の段階で、画面上の領域を単なる余白として扱わないようにします。Appleの設計資料では、表示領域の分割、遮蔽される領域、左右非対称の安全領域を考慮した適応が説明されています。iPhone Duoの適応レイアウトに関する技術講演を基準に、利用可能な領域と実際に操作できる領域を分けて検証します。

折りたたみ領域がコンテンツを遮る場合は、主に三つの判断をします。

  1. 主コンテンツを別領域へ分割する
  2. 背景や装飾だけをまたがせ、操作部品は保留領域から外す
  3. その状態では一つの領域に絞り、もう一方を補助表示にする

折りたたみ領域がコンテンツを遮るときの処理は、透明な余白を足すだけでは不十分です。ボタンのタップ可能範囲、文字の読み順、ドラッグ対象、キーボード表示後のフォーカス位置も確認します。

経験上、見た目が整っていても、折りたたみ状態から展開した瞬間に選択項目やスクロール位置が失われると、実運用では不合格です。状態の保持をレイアウトテストとは別の受け入れ条件として記録してください。

長尾ケースへの回答

iPhone Duo用に一式の画面を新設するか迷った場合は、コンテンツモデルと画面状態を共有できるなら、まず単一コードベースで進めます。情報の優先順位自体が異なる製品体験だけは別画面を検討しますが、端末名だけを理由に複製しないでください。

折りたたみ対応後に通常のiPhoneへ影響を出したくない場合は、iPhone 18 Proを毎回の回帰基準に残します。通常幅でのナビゲーション、safe area、入力、回転を固定し、Duo向けの分割ロジックが狭い画面へ漏れていないかを確認します。

第一週のシミュレーションと回帰流水線

シミュレーターで検証できる状態を、チームの共有手順に落とし込みます。外側の表示、内側の表示、展開、折りたたみ、縦向き、横向き、Split Viewを一つのチェックリストにまとめ、状態ごとに期待結果を一行で定義します。

判断項目 iPhone 18 Pro iPhone Duo 完了条件
狭い表示領域 コンパクト幅の基準 折りたたみ時に確認 主コンテンツが切れず、操作が完了する
広い表示領域 通常の回帰対象 展開時に確認 補助情報を表示しても主状態を失わない
方向変更 縦・横の既存動作 折りたたみ状態との組み合わせ フォーカスとスクロールが意図どおり
複数領域 既存画面への影響を確認 分割・遮蔽領域を確認 操作部品が保留領域に置かれない
リリースビルド 毎回実行 新状態を追加 スナップショットとUIテストが通る

CIでは、レイアウトスナップショット、単体テスト、リリースビルドを同じジョブに詰め込みません。依存関係の少ない単体テストを先に実行し、次に表示状態ごとのスナップショット、最後に配布用ビルドを走らせます。これにより、開発者のMacを長時間占有せず、失敗原因も追いやすくなります。

iOS 27向けのビルドでは、シミュレーターの成功を実機動作の証拠とみなさないでください。シミュレーターで確認できるのは、主に制約、再配置、状態遷移の初期検証です。タッチの届き方、カメラ、姿勢変更、性能、実際のマルチタスク操作は、別の受け入れ工程へ分けます。

実機受け入れと継続保守

シミュレーターの全状態が通ったら、実機では次の順序で確認します。

  1. 折りたたみと展開の途中で操作を止める
  2. 入力中に姿勢を変え、フォーカスを確認する
  3. カメラや権限ダイアログを表示する
  4. スクロール中に表示領域を変更する
  5. 別シーンへ移動して戻る
  6. Split Viewなどの実際のマルチタスク導線を完了する
  7. iPhone 18 Proで既存の主要導線を再実行する

完了条件は、単に画面が表示されることではありません。操作対象が指で届くこと、重要な情報が遮られないこと、途中のタスクを再開できること、通常のiPhoneで既存フローが変わらないことまで確認します。

検出した問題は、リリース阻断、延期可能な体験改善、公開後監視の三つに分類します。入力不能、データ消失、主要ボタンの遮蔽はリリース阻断です。余白やアニメーションの細部は延期できますが、公開後にクラッシュや状態消失を追えるログは先に用意してください。

改修計画をチームへ渡す方法

技術責任者は、各作業に「開始条件」と「完了条件」を付けて管理します。たとえば、初回監査は固定値の一覧と改修優先度が揃った時点で開始可能です。連続適応レイアウトは、狭い表示領域で主コンテンツが成立し、広い表示領域で補助情報の配置方針が決まった時点で次へ進めます。

長期的には、新しい画面を追加するたびに端末名分岐を禁止し、表示領域、シーン境界、保留領域を判断材料にします。AppleのUIKitアプリ modernize資料も参照しながら、UIKitの既存画面を段階的に適応構造へ移行してください。

複数のiOS 27ビルドや状態別スナップショットを短期間に並列実行する場合、手元のMacだけで全ジョブを抱えると、ビルド待ち、SDK切り替え、ログ回収がボトルネックになります。先にMac開発環境の相談窓口で必要な環境条件を整理し、適応期間だけ実行環境を増やす方法も比較してください。

現在の環境をそのまま使い続ける場合、単一のMacにビルド、シミュレーター、スナップショット、リリース作業が集中し、並列回帰の待ち時間と環境の取り合いが発生しやすくなります。実機が少ないチームでは状態確認も後回しになり、結局、公開直前に手作業が増えます。短期の改修や複数構成の検証なら、kvmsyncのMac環境を適応期間だけレンタルし、CI用と手動受け入れ用を分ける方が運用を組み立てやすいです。必要な期間と構成を決めたら、Macレンタルのプランで継続利用と短期利用の差を確認してください。

関連記事

kvmsync M4 リモートノード

折りたたみ対応の検証環境を、kvmsyncで整えませんか

kvmsyncなら、専有のMac mini M4を使って、実機に近い環境でレイアウトの回帰テストと受け入れ確認を進められます。

今すぐ Mac mini M4 をレンタル M4 プランを比較