Skip to content
すべての記事

iPhone Duo 対応の準備:優先順位付きチェックリスト

アプリを iPhone Duo に対応させるための優先順位付きチェックリスト。サイズクラス、セーフエリア、iOS 27.1 SDK、縦向きバー、ArrangementView、ヒンジ、テストまで。

AppleDuo 編集部公開 17分で読めます

ほかの言語:EnglishDeutschEspañolFrançaisTürkçe

このページの内容
  1. 古い SDK でビルドしたアプリは iPhone Duo でどうなる?
  2. アプリを iPhone Duo に対応させるためのチェックリストは?
  3. まずサイズクラス、レイアウトマージン、セーフエリアを修正するには?
  4. iPhone Duo でフルスクリーン表示にするには?
  5. ツールバー、縦向きバー、シートはどう変わる?
  6. 折り目に自動で対応してくれるコンテナと API は?
  7. iPhone Duo の姿勢をテストし、Xcode の agent skills を使うには?
  8. iPhone Duo に必要な App Store 用アセットは?
  9. まとめ

iPhone Duo は 2026 年 10 月 23 日に iOS 27.1 を搭載して発売されました。アプリを iPhone Duo に対応させるには、2 つのディスプレイ、ヒンジ、側面のカメラ、そして端に移動するバーに適応する必要があります。対応範囲が広いため、このチェックリストでは作業に順序を付けています。まずすべてのアプリに役立つ修正、次にデバイス固有の仕上げです。

この記事は、iPhone Duo デベロッパ向けシリーズのハブです。各ステップから詳しいガイドにリンクしています。内容は Apple の Tech Talk、Apple の iPhone Duo のページ、Apple Developer Forums、デベロッパの報告に基づいています。AppleDuo チームはこれらの API を実機でテストしておらず、そのほとんどは iOS 27 または iOS 27.1 の新機能なので、リリース間で詳細が変わる可能性があります。

古い SDK でビルドしたアプリは iPhone Duo でどうなる?

アプリはすでに iPhone Duo で動作します。どう表示されるかは、ビルドに使った SDK によって決まります。Apple の iPhone Duo の準備に関するページでは、3 つの段階が説明されています。

ビルドに使った SDK内側ディスプレイ(開いた状態)外側ディスプレイとバー
iOS 26 SDK 以前周囲に余白がある状態で中央に表示コンテンツがステータスバーとカメラの左側に配置
iOS 27 SDKディスプレイの大部分を使うが、右端のステータスバーは避ける部分的に適応
iOS 27.1 SDK 以降ディスプレイ全体を使うツールバーとタブバーがステータスバーの下に縦に移動

Apple のガイダンスでは、27.1 SDK でリリースする前に、コンテンツが縦向きバーに適応することを確認するよう求めています。待ち続けるのも長期的な選択肢ではありません。Apple によると、2027 年 4 月以降、App Store へのアップロードには iOS 27 SDK 以降の使用が必要です。

アプリを iPhone Duo に対応させるためのチェックリストは?

各ステップの手間に対して修正できる範囲の大きさをもとに、私たちが推奨する順序は次のとおりです。最初の 3 つは、アプリの対応に割ける時間が限られている場合に Sarun Wongpatcharapakorn が勧めているものです。

優先度ステップ導入バージョン詳しいガイド
1idiom や向きではなくサイズクラスを使う既存の APIiPhone Duo のサイズクラス
2レイアウトマージンと非対称なセーフエリアのインセットを尊重する既存の API、iOS 27 で新しいマージンオプションiPhone Duo のセーフエリアとコンテンツマージン
3Xcode 27.1 と iOS 27.1 SDK でビルドするXcode 27.1この記事
4ツールバーのアイテムにアイコンとタイトルを与えるiOS 27.1 SDK(縦向きバー)iPhone Duo の縦向きツールバー
5シートの配置を確認するiOS 27 SDKiPhone Duo のシートと presentationPlacement
6システムのコンテナと ArrangementView を使うiOS 27.1SwiftUI の ArrangementView
7手動で配置したコントロールを予約領域から外すiOS 27.1予約領域と折り目
8効果的な場面でヒンジのエフェクトを追加するiOS 27.1ヒンジの状態と onHingeChange
9Device Hub ですべての姿勢をテストするXcode 27.1、27.2 で機能追加この記事
10iPhone Duo のスクリーンショットを提出するApp Store Connect、2026 年 10 月iPhone Duo の App Store スクリーンショットサイズ

まずサイズクラス、レイアウトマージン、セーフエリアを修正するには?

iPhone Duo のレイアウトの大部分はサイズクラスで決まります。Apple の Tech Talk「Prepare your app for iPhone Duo」に一覧があります。外側ディスプレイは縦向きでは幅が compact・高さが regular、横向きでは両方向とも compact です。内側ディスプレイは両方向とも regular です。Sarun の言葉を借りれば、閉じれば iPhone、開けば iPad です。

注意すべきなのは、多くのアプリが regular の幅を「これは iPad だ」と解釈していることです。Apple の準備に関するページは、そうしないよう求めています。iPhone アプリはどのサイズクラスの組み合わせも取りうるようになったため、デバイスの idiom、向き、ハードコードした高さではなく、サイズクラスそのもので分岐してください。次の SwiftUI ビューは環境を読み取ってレイアウトを選びます。

struct LibraryView: View {
    @Environment(\.horizontalSizeClass) private var horizontalSizeClass

    var body: some View {
        if horizontalSizeClass == .regular {
            TwoColumnLibrary()
        } else {
            SingleColumnLibrary()
        }
    }
}

2 つ目の修正はセーフエリアです。iPhone Duo では縦向きバーによって leading と trailing のインセットが追加され、Apple は反対側同士のインセットが等しくないと注意を促しています。レイアウトマージンも非対称です。Sarun によると、マージンは片側で 20 ポイント、バーの横では 0 になることがあります。Tech Talk で紹介されている次の UIKit のパターンは、各辺を個別に扱います。

// 避ける:leading と trailing のインセットが同じだと想定している
let width = view.bounds.width - view.safeAreaInsets.left * 2

// 推奨:各辺をそれぞれの値でインセットする
let width = view.bounds.inset(by: view.safeAreaInsets).width

インタラクティブなコンテンツはセーフエリア内に収め、背景はその外まで広げましょう。姿勢ごとの完全な表は iPhone Duo のサイズクラスのガイドに、新しいマージン API は iPhone Duo のセーフエリアとコンテンツマージンにまとめています。

iPhone Duo でフルスクリーン表示にするには?

iPhone Duo の開発サポートと iOS 27.1 SDK が追加された Xcode 27.1 で再コンパイルします。Apple の Tech Talk によると、フルスクリーン表示には Xcode 27.1 が必要です。その前に、Apple の準備に関するページに挙げられているパターンを解消しておきましょう。

  • UIScreen.main.bounds を view.bounds または window.bounds に置き換えます。Apple は、2 つのディスプレイを持つデバイスでは UIScreen.main が曖昧であり、今後非推奨になるとしています。スケールは traitCollection.displayScale から読み取ります。
  • UIWindow(frame: UIScreen.main.bounds) を UIWindow(windowScene:) に置き換えます。Blake Crosley と Adapty はどちらも、最新の SDK でビルドしたアプリにはシーンベースのライフサイクルが必要だと報告しています。
  • UIDevice.current.orientation や interfaceOrientation に基づくレイアウトロジックを削除します。代わりに、使えるスペースの幅と高さを比較します。
  • アスペクトフィルを使った全面表示の画像や動画を確認します。内側ディスプレイの形状によって、想定以上に切り取られることがあります。

UIRequiresFullScreen はどうでしょうか。Apple によると、iPhone Duo はこれを引き続き尊重しますが、デバイスを開閉するとアプリのサイズは変わります。逃げ道にはなりません。内側ディスプレイでは、システムはサポートするインターフェイスの向きも無視し、アプリを拡大縮小します。

Apple Developer Forums では、Apple のエバンジェリストがスレッド 848047 で同じ助言をしています。デバイスの判定ではなくサイズクラスを使い、すべての向きをサポートすること。iPhone アプリは iPad 上や、iPhone ミラーリングを通じて Mac 上でもサイズ変更できるようになったからです。

ツールバー、縦向きバー、シートはどう変わる?

iOS 27.1 SDK を使うと、外側ディスプレイと内側ディスプレイの横向きでは、ナビゲーションバー、ツールバー、タブバーが片側の端に沿った縦向きバーに移動します。ルールは Apple の Tech Talk「Raise the bar with iPhone Duo」で説明されています。移動するのはナビゲーションコンテナが管理するバーだけなので、カスタムの UIToolbar、UINavigationBar、UITabBar インスタンスはその場に留まります。

縦向きバーの幅は固定なので、シンボルが優先されます。アイコンのあるアイテムは縦軸に移動し、テキストのみのアイテムは横向きのままです。Sarun のまとめはシンプルです。ツールバーのアイテムにアイコンとタイトルの両方を与えれば、おそらく準備はできています。タイトルはオーバーフローメニューで引き続き使われます。次のプレースメントとモディファイアは、Apple の Tech Talk に示されている表記のとおりです。.topBarPinnedTrailing は iOS 27 の新機能です。

.toolbar {
    ToolbarItem(placement: .cancellationAction) {
        Button("Close", systemImage: "xmark") { dismiss() }
    }
    ToolbarItem(placement: .topBarPinnedTrailing) {
        Button("Done", systemImage: "checkmark") { save() }
    }
    ToolbarItem {
        Button("Share", systemImage: "square.and.arrow.up") { share() }
    }
    .visibilityPriority(.high)
}

いちばん上に「戻る」または「閉じる」、次に目立つアクション、その後に残りを置きます。スペースが足りなくなると、アイテムは下から上へとオーバーフローし、どれが残るかは .visibilityPriority で決まります。電卓のような、下部に要素が集中した 1 ページのレイアウトは .toolbarVerticalBehavior(.disabled) でオプトアウトできます。オーバーフロー、カスタムビュー、UIKit での対応方法は iPhone Duo の縦向きツールバーのガイドで解説しています。

シートも変わります。外側ディスプレイでは、シートのツールバーは縦向きになります。内側ディスプレイでは、シートはデフォルトで中央に表示され、leading 側や trailing 側に配置することもできます。詳しくは iPhone Duo のシートと presentationPlacement をお読みください。

折り目に自動で対応してくれるコンテナと API は?

まずはシステムのコンテナから使いましょう。NavigationSplitView と UISplitViewController は、閉じた状態では 1 つのスタックに折りたたまれ、開いた状態では列を表示します。TabView はすべての姿勢に適応し、内側ディスプレイでは .defaultTabBarPlacement(.sidebar) でサイドバーにオプトインできます。List と ScrollView は折り目に自動で適応します。

独自の 2 ビューレイアウトには、iOS 27.1 で SwiftUI の ArrangementView と UIKit の UIArrangementViewController が追加されました。これらは「Strike a pose with adaptive layouts on iPhone Duo」で解説されています。.split スタイルは 2 つのビューでスペースを分割し、.overlay はデバイスが折り曲げられるまで 2 つを重ねます。ArrangementView を List、ScrollView、またはほかのナビゲーションコンテナの中に置かないでください。詳しくは ArrangementView のガイドをご覧ください。

手動で配置するコントロールには、同じく iOS 27.1 の新機能である予約領域を問い合わせます。division 領域は折り目を示し、occlusion 領域はアクティブな間の内側の FaceTime カメラを示します。Apple は SwiftUI での呼び出しを、GeometryReader 内の proxy.reservedRegions(kind: .division) として示しています。アクティブな領域と非アクティブな領域については、予約領域と折り目の記事で説明しています。

ヒンジそのものはレイアウトではなくエフェクトのためのものです。Apple のドキュメントでどちらも iOS 27.1 とされている SwiftUI の onHingeChange と UIKit の UIHingeInteraction は、閉じた状態、部分的に開いた状態、完全に開いた状態と、連続的な角度を報告します。ヒンジのないデバイスではヒンジの値は nil になるので、必ず確認してください。アイデアとしては、Marbles Unhinged が折り目をスロープに変えている例を見てから、ヒンジの状態と onHingeChange をお読みください。

iPhone Duo の姿勢をテストし、Xcode の agent skills を使うには?

Xcode 27.1 で iPhone Duo シミュレータを選び、Device Hub でアプリを実行します。画面上のコントロールでデバイスを開く、閉じる、回転させる、折り曲げることができるので、閉じた縦向き、閉じた横向き、開いた縦向き、開いた横向きの各姿勢を確認してください。Apple は、アプリを Split View で片側に、続いて反対側にドラッグし、縦向きのコンテンツがどちらでも機能するか確認することも勧めています。縦向きバーはハードウェアの同じ側に留まるため、右から左に書く言語も確認してください。

Sarun によると、Xcode 27.2 の Device Hub では、メモリ不足、スローモーションのアニメーション、シェイク、落下を擬似的に発生させることもできます。負荷がかかった状態で折り曲げても状態が保たれるかを確認するのに便利です。

Xcode 27 には、最新のベストプラクティスと新しい API のための agent skills も含まれています。Apple の準備に関するページによると、Xcode のコーディングアシスタントに「get my app ready for iPhone Duo」と依頼できます。ほかのコーディングエージェントでこの skills を使うには、Sarun が共有したコマンドでエクスポートします。

xcrun agent skills export --output-dir ~/Downloads/xcode-skills

Xcode 27.1 より前に skills をエクスポートした場合は、もう一度エクスポートしてください。uikit-app-modernization skill は app-resizability に名前が変わり、SwiftUI と iPhone Duo のサポートが追加されています。Apple は、この skill ですべてを検出できるわけではないとしているので、上記のパターンは手作業でも確認してください。

iPhone Duo に必要な App Store 用アセットは?

App Store Connect には iPhone Duo のスクリーンショット枠があり、外側ディスプレイと内側ディスプレイで別々のサイズが用意されています。iPhone Duo のスクリーンショットを提出すると、プロダクトページにアプリが iPhone Duo に最適化されていることを示すバッジが表示されます。Apple によると、2027 年 4 月以降はスクリーンショットが必須になります。各枠のサイズと最初の 3 枚に何を見せるべきかは、iPhone Duo の App Store スクリーンショットサイズのガイドにまとめています。

ローンチの仕上げとして、さらに 2 つの項目があります。Apple は、App Store Connect でフィーチャーのノミネーションを提出し、すべてのデバイスの姿勢を含めて iPhone Duo への対応を明記するよう勧めています。Apadmi は、App Intents の対応範囲を見直すことも勧めています。iOS 27 で Siri に新しい機能が加わったので、次のプロジェクトとして iOS 27 の App Intents とセマンティックインデックスのガイドがおすすめです。インスピレーションを得るには、ヒンジをゲームプレイに取り入れている Built for the fold のゲームをご覧ください。

まとめ

  • iOS 26 SDK 以前でビルドしたアプリは動作しますが、開いた状態では周囲に余白がある表示になります。ディスプレイ全体を使えるのは、Xcode 27.1 の iOS 27.1 SDK でビルドした場合だけです。
  • まずサイズクラス、レイアウトマージン、セーフエリアのインセットを修正しましょう。regular の幅が iPad を意味するとも、反対側同士のインセットが等しいとも決して想定しないでください。
  • すべてのツールバーのアイテムにアイコンとタイトルを与え、縦向きバーに移動できるようシステムのバーを使いましょう。
  • レイアウトには NavigationSplitView、TabView、ArrangementView、手動で配置するコントロールには予約領域を使い、ヒンジはエフェクトだけに使いましょう。
  • Device Hub ですべての姿勢をテストし、27.1 以降に Xcode の agent skills を再エクスポートして、2027 年 4 月までに iPhone Duo のスクリーンショットを追加しましょう。

まずは iPhone Duo のサイズクラスから始め、次に縦向きツールバーに進んでください。アプリの準備ができたら、About ページで iPhone Duo 対応ゲームをフィーチャーしてもらう方法をご確認ください。

よくある質問

既存のアプリは変更なしで iPhone Duo で動作しますか?

はい。iOS 26 SDK 以前でビルドしたアプリも動作しますが、デバイスを開いた状態では周囲に余白がある状態で中央に表示されます。ディスプレイ全体を使えるのは、iOS 27.1 SDK 以降でビルドしたアプリだけです。

iPhone Duo にはどのバージョンの Xcode が必要ですか?

Xcode 27.1 で、Device Hub の iPhone Duo シミュレータや iOS 27.1 SDK など、iPhone Duo の開発サポートが追加されました。Xcode 27.2 では、メモリ不足や落下など Device Hub のシミュレーションがさらに追加されています。

iPhone Duo 対応で最初に修正すべきことは?

まずサイズクラス、レイアウトマージン、セーフエリアのインセットを修正してください。デバイスの idiom や向きで分岐するのをやめ、leading と trailing のインセットが等しいと想定しないでください。

UIRequiresFullScreen を設定すれば iPhone Duo でのサイズ変更をオプトアウトできますか?

できません。Apple によると、iPhone Duo は UIRequiresFullScreen を引き続き尊重しますが、デバイスを開閉するとアプリのサイズは変わります。いずれにしてもサイズ変更を前提に設計してください。

App Store で iPhone Duo への対応が必要になるのはいつですか?

2027 年 4 月以降、Apple はアップロードに iOS 27 SDK 以降の使用を求め、申請には iPhone Duo のスクリーンショットが必要になるとしています。それまでは iPhone Duo のスクリーンショットは任意ですが、提出するとプロダクトページにバッジが表示されます。

出典

  1. Prepare your app for iPhone Duo · Apple Developer (Tech Talks)
  2. Strike a pose with adaptive layouts on iPhone Duo · Apple Developer (Tech Talks)
  3. Raise the bar with iPhone Duo · Apple Developer (Tech Talks)
  4. Leverage multiple displays and scenes on iPhone Duo · Apple Developer (Tech Talks)
  5. iPhone Duo: Three steps to make your app shine · Apple Developer
  6. Prepare and submit your apps for iPhone Duo · Apple Developer News
  7. Recommended source of truth for adapting UIKit layouts on iPhone Duo · Apple Developer Forums
  8. Start with size classes, layout margins, and safe area insets · Sarun W. (@sarunw) on X
  9. Export Xcode 27 agent skills · Sarun W. (@sarunw) on X
  10. Re-export agent skills after Xcode 27.1 · Sarun W. (@sarunw) on X
  11. Xcode 27.2 Device Hub simulations · Sarun W. (@sarunw) on X
  12. Give toolbar items both an icon and a title · Sarun W. (@sarunw) on X
  13. iPhone Duo for developers · Blake Crosley
  14. How to adapt your iOS app to iPhone Duo · Adapty
  15. iPhone Duo: what now for your app? · Apadmi

折りたたみを、アプリの一部に。

AppleDuo は iPhone Duo を本当に活かしたアプリとゲームを紹介しています。App Store へのリンクを添えて送ってください。ほかの開発者の作品も見られます。

[email protected]