用途:审查与改造 SwiftUI 应用,使其在 iPhone Duo 等可连续改变宽高的窗口下表现良好,并在折叠、铰链、第二显示屏或垂直系统栏能带来实际价值时才引入 Duo 专属行为。核心思路是先做通用自适应界面,再按需使用 Duo 硬件特性。
主要能力:提供分级改造顺序。Tier 1 为通用自适应改进,如 NavigationSplitView、自适应 TabView、自适应网格、ViewThatFits、AnyLayout、尺寸类、容器相对尺寸、系统工具栏与安全区正确性;Tier 2 为 Duo 感知布局,如保留区域 reservedRegions(kind:options:)、ArrangementView、垂直栏调优、sheet 放置 presentationPlacement;Tier 3 为 Duo 独占体验,如 onHingeChange / UIHingeInteraction、铰链角度、CameraCaptureAccessory、多场景工作流。附带决策树、审查清单与代码审查红旗项,例如禁止用 UIScreen.main、idiom、orientation、isDuo、isFolded 做布局判断。
使用方式:先阅读 reference.md(从 Platform facts 开始),确认使用 iOS 27.1 SDK 构建,逐屏按决策树审查,标记红旗模式并附文件证据,将改动分级,先完成 Tier 1,再在空间布局不足时应用 Tier 2/3,并用 #available 对 27.1 API 做可用性判断。保持状态位于自适应布局之上,在 Device Hub 中验证各宽度与各姿态的连续性。
适用场景:需要支持折叠 iPhone、铰链、双屏、紧凑到宽屏自适应布局与多任务,或代码中使用了设备判断、固定列数、自定义工具栏等模式时。
限制:Xcode 27.1 的 iPhone Duo 模拟器无法运行多数应用扩展且没有摄像头,相机捕获配件需真机验证;无法验证时应优先做准备工作,避免硬编码铰链坐标、猜测尺寸或添加未测试的 Duo 专属分支。具体 API 细节与前后对比见 reference.md。