iPhone Duo 教學會 QA 整理

🎤 兩場 QA2026/9/29 11:11 · 11:54🕒 19:03 + 20:1025 題

本頁整理 iPhone Duo 教學會的兩場 QA。問題集中在遊戲與全螢幕、折疊姿態與螢幕方向、大型既有 App 的漸進適配、自訂導航元件、佈局容器,以及模擬器測試。官方建議前後一致:以 iPhone 使用情境為核心,優先採用原生容器、系統預設行為與公開 API;必須自訂時,再依 Trait Collection、Reserved Region 與 Layout Guide 動態調整。

重點摘要

遊戲、第三方引擎與全螢幕

全螢幕遊戲如何適配 iPhone Duo?

建議移除 UIRequiresFullScreen。保留這個 key 仍可在 Duo 上運行,但部分姿態可能以固定比例橫屏渲染並出現黑邊。移除後,可用額外空間鋪素材或移動主遊戲區;同時要讓操作區避開攝像頭、狀態列等系統區域,使用陀螺儀的操作也需依姿態調整。

第 1 場

第三方遊戲引擎與跨平台框架有何方案?

Reserve Region 等公開 API 歡迎遊戲引擎廠商接入、共同推進支援。若使用 Flutter 或其他第三方引擎,適配需依賴引擎本身的支援;官方較建議採用原生方式。

第 1 場

折疊姿態、螢幕方向與 Standby

Landscape only 的 App,為何在 Duo 完全展開後會變成豎屏?

外屏會遵循 Orientation 設定,但內屏不支援固定方向,App 可能隨不同方向旋轉。因此必須做好多種視窗尺寸的適配。

第 2 場

如何針對帳篷姿態(Tent Mode)或半折疊姿態調整 App 內體驗?

沒有 API 能直接告知目前是否為帳篷姿態。應優先依 Size Class 與自身佈局適配,必要時再以鉸鏈狀態輔助判斷。

第 2 場

半折疊狀態有哪些典型情境?如何避免點擊不便?

典型情境包括書本式閱讀、筆記本式放在桌上看影片,以及雙 App 使用時略微張開。互動元件應盡量避開中央折疊區域。

第 2 場

展開時分屏顯示兩個 App,合攏後會如何處理?

外屏只會顯示一個 App,由系統決定顯示哪一個。

第 2 場

模擬器如何開啟 Standby Mode?

目前 Duo 模擬器不支援 Standby Mode;需求急迫可提交 Feedback Assistant。Standby 屬於 App 外體驗,應以 WidgetKit、即時動態與 AlarmKit 實作。

第 2 場

如何做到演示中的床頭鐘與鬧鐘光暈?

要做到演示中的 App 外鬧鐘效果,需要使用 AlarmKit。

第 2 場

大型既有 App 與 iPad 經驗

數百個頁面、舊架構的大型 App,應如何開始適配?

採漸進策略,具體路徑依團隊與產品特性決定。建議先採用新的設計語言、處理頂 bar 與底 bar 的縱向切換,並優先完成一級頁與關鍵路徑,深層頁面再逐步規劃。可先嘗試 app resizability,讓舊專案具備在 Duo 運行的基本能力。App Store 審核相關問題未在本場回答。

第 1 場

已完成 iPad 自由尺寸適配,可以直接套用到 iPhone Duo 嗎?

不能直接視為相同策略。Duo 的設計與技術適配仍以 iPhone 情境為核心。內容瀏覽或生產力情境在內屏展開時可接近 iPad 思路,但導航、Tab Bar 與 Toolbar 不建議照搬 iPad 做法。

第 1 場

iPad 的 Split Navigation Stack 可以套用到 iPhone Duo 嗎?

可以。若 iPad 已用 Split Navigation Stack 實作「列表加 detail」,可直接延伸到 Duo 展開橫屏。Arrangement View 的用途不同,不能拿來做導航。

第 2 場

iPhone Duo 的多窗口和 iPad 一樣嗎?

對 App 而言能力與 iPad 相同,差異只在系統操作方式。已支援 iPad 多窗口的 App,應立即在 Duo 模擬器測試。

第 2 場

兩場的說法可以一起看:列表加 detail 這類導航結構與多窗口能力可以沿用 iPad;但 Tab Bar、Toolbar 等欄項的擺放方式,要改依 Duo 的規則。

導航列、Tab Bar 與自訂元件

自訂導航欄、工具欄或 Tab Bar 如何適配?

使用系統導航容器時,系統會自動調整佈局,也有 API 協助把自訂頂欄或底欄移到側邊欄。完全自訂的欄項,需監聽 Trait Collection 的 Vertical Bar Edge,依欄位轉為縱向後的方向與位置重新佈局。

第 1 場

自訂導航列在 Duo 上應如何適配?

優先使用原生導航列與元件。若必須自訂,返回按鈕應依 Duo 規則放到側邊欄,並以 Trait Collection 的 UI Vertical Bar Edge 與新增的 Bar Layout Guide 調整位置。

第 2 場

自訂導航列、標題與靈動島區域如何避免重疊?

使用 Reserved Region 取得系統保留區域,避開狀態列與攝像頭硬體區域。靈動島可能長時間存在,應持續觀察 Reserved Region 的尺寸變化。

第 2 場

Tab Bar 是否只有一級頁需要避讓右側 safe area?

不是。只要以 Tab Bar 作為一級導航,後續深層頁面也都應讓 Tab Bar 常駐,並持續避讓右側空間。

第 1 場

Tab Bar 能否固定在底部、不移到側邊?

技術上可用 Toolbar Vertical Behavior 停用縱向模式;但除了全螢幕或特殊需求,建議遵循系統預設佈局。

第 2 場

佈局容器與內容排版

ArrangementView 只適用 iPhone Duo 嗎?

不是。它自 iOS 與 iPadOS 27.1 起可用於所有機型,在 Duo 部分折疊時另有自動避開鉸鏈的優化。它的兩欄佈局在外屏會自然呈現單欄,不需指定只供內屏使用。

第 1 場

閱讀類 App 展開後採上下捲動,文字應如何排版?

建議兩側保留固定留白,中央閱讀區維持固定或最大寬度,並考慮使用 readableContentGuide,避開螢幕圓角等不利閱讀的區域。

第 1 場

safe area 內的內容應如何排版?

內容建議始終放在 safe area 內。外屏右側與底側有 safe area insets,左側有 default layout margin,可作為內邊距參考,再依實際需求調整。

第 2 場

多螢幕與外接顯示

既有的外接螢幕功能,在 iOS 27 需要更新嗎?

既有功能即為相同能力。若使用 Xcode 27 開發,需額外適配 UI Sync Accessory API,否則系統無法提供新的 Sync;以 Xcode 26 建置並在 iOS 27 運行則不受影響。

第 2 場

內外屏能否同時顯示不同的 view?

目前唯一途徑是 camera capture accessory,而且必須是相機 App 在內屏顯示相機場景。其他明確需求可提交 Feedback。

第 2 場

開發工具與模擬器測試

如何取得 App Resizability Skills?

這個 Skills 內建於 Xcode 27.1,可透過 xcrun Agent Skills Export 匯出。

第 2 場

模擬器能否測試鉸鏈 API?

可以。Device Hub 可切換折疊、半展開與完全展開等離散狀態;按住 Option 操作相關按鈕會轉為滑桿,可測試連續角度變化。

第 2 場

模擬器足以測試真機顯示與攝像頭嗎?

Xcode 27.1 的 Duo 模擬器對 UI 佈局有很高保真度,但完整攝像頭功能與效能仍需真機。前期可用虛擬前置攝像頭簡化開發。

第 2 場

關鍵概念

UIRequiresFullScreen
遊戲若設定此 key,可能在部分姿態以固定比例橫屏渲染並出現黑邊;建議移除,以取得更彈性的可用空間。
App Resizability
可協助舊 App 在 iPhone Duo 上基本運行,但不取代各頁面的細緻佈局適配。Xcode 27.1 也內建同名 Skills,可用 xcrun Agent Skills Export 匯出。
Size Class
佈局判斷的依據。應依尺寸類別與自身佈局調整不同姿態的畫面,而不是判斷內屏、外屏或帳篷狀態。
Vertical Bar Edge/Bar Layout Guide
Trait Collection 中可監聽的變化與新增的 Layout Guide,用來判斷欄項轉為縱向後的位置,讓自訂欄項重新佈局。
Reserved Region
系統保留區域資訊,可避開狀態列、攝像頭硬體區域與靈動島;也是遊戲與引擎廠商可接入的公開 API。
ArrangementView
iOS 與 iPadOS 27.1 起可用的高階佈局容器,部分折疊時自動避開鉸鏈;用於特定排列場景,不是導航容器。
Split Navigation Stack
列表加 detail 的導航結構,適合延伸到 iPhone Duo 展開橫屏。
readableContentGuide
適合閱讀類 App 的 layout region,比 safe area 更適合閱讀,並能避開螢幕圓角等區域。
Toolbar Vertical Behavior
可控制 Toolbar 與 Tab Bar 是否啟用縱向模式;通常應保留系統預設行為。
UI Sync Accessory API
以 Xcode 27 開發外接螢幕相關功能時,為了在 iOS 27 正常取得 Sync 所需的適配。
AlarmKit
實現 App 外鬧鐘等系統級效果的必要能力,例如演示中的床頭鐘。

後續方向

iPhone DuoXcode 27.1UIRequiresFullScreenApp ResizabilitySize ClassVertical Bar EdgeReserved RegionArrangementViewSplit Navigation StackreadableContentGuideStandby ModeAlarmKit鉸鏈 API

整理自 iPhone Duo 教學會兩場 QA 會記AI 整理