SuperAPI AI 工具集

iphone-duo-readiness

编程与开发

查看项目

更新于 10-15 21:39

技能介绍

用途:这是将现有 iOS 应用适配 iPhone Duo 的入口技能。iPhone Duo 为 5.4 英寸外屏与 7.6 英寸内屏、共享同一宽高比,铰链可停在任意角度。旧应用能直接运行,但会显得未经适配。核心思路:iPhone Duo 不是新范式,而是更宽的尺寸连续体;应把“固定断言”(idiom、方向、屏幕、宽度、对称内边距)换成对当前可用空间的判断,按 size class 或可用空间分支,而非写“if iPhone Duo”。

主要能力与步骤:

  1. 建立基线:确认构建所用 SDK。Pre-iOS 27 可运行;iOS 27 SDK 在内屏向状态栏左侧延伸;iOS 27.1 SDK 内容可达屏幕边缘、标准栏垂直布局,并开放 reserved-region 与 arrangement API。到 27.1 层级收益最大。在 Xcode 27.1 的 Device Hub 中用 iPhone Duo 模拟器驱动开合、旋转、折叠,并用 home indicator 拖入 Split View;此类缺陷依赖姿态,读代码无法发现。Xcode 27.1 还提供 App Resizability 技能(原 app modernization 技能,现覆盖 SwiftUI 与 iPhone Duo)。
  2. 排查固定假设:userInterfaceIdiom、isPad、基于 interfaceOrientation 的布局;UIScreen.main(双屏下含义不明且将弃用,优先用环境、trait collection 或 scene bounds,scale 用 traitCollection.displayScale,必要时 window?.windowScene?.screen);对称内边距计算(安全区与布局边距常不对称,bounds.width - safeAreaInsets.left * 2 之类写法错误);硬编码宽度与断点(外屏 compact、内屏 regular);自绘 UIToolbar/UINavigationBar/UITabBar(系统垂直栏布局不可见)。
  3. 采用标准容器:NavigationSplitView/UISplitViewController、TabView/UITabBarController(内屏可将 tab bar preferred placement 设为 .sidebar)、NavigationStack、List、ScrollView,以及 sheets、alerts、menus、popovers、context menus,均自带折叠避让。
  4. 安全区四规则:栏状元素用容器提供的 bar;交互与可读前景留在安全区内;背景可 bleed(.ignoresSafeArea()、view.bounds);每条边独立处理并在 Split View 两侧测试。自定义 UI 可用 iOS 27.1 的 ReservedRegion(SwiftUI)与 UIViewReservedRegion(UIKit);圆角匹配用 iOS 26 的 ConcentricRectangle 与 UICornerConfiguration。
  5. 按应用类型转交专项技能:垂直栏、自适应布局、铰链与场景、相机、双窗格模式、设计评审。设备数据见 ../../reference/device-facts.md,API 索引见 ../../reference/api-index.md。

限制:API 签名于 2026 年 9 月 25 日对照 Apple 公开参考核验,此前三处错误已更正;Apple 的 Preparing your app for iPhone Duo 文章尚未发布;内容未在真机编译运行,姿态相关布局需模拟器确认,不能仅凭文档宣称已验证。