利用 AI(如 ChatGPT、Claude、Cursor 等)来辅助界面与代码的 Duo / iPad 适配,可以极大地提升开发和设计效率。
要让 AI 输出精准可用的方案,需要掌握 4 项核心原则,并使用 结构化的提示词(Prompt)结构。
一、 让 AI 辅助适配的 4 项核心原则
1. 明确平台与 UI 框架(上下文约束)
AI 在不同框架下的适配语法差异巨大(例如 UIKit 的 traitCollection vs SwiftUI 的 @Environment(\.horizontalSizeClass),或 Android 的 WindowSizeClass vs Jetpack Compose 的 FoldingFeature)。必须首先限定技术栈。
2. 区分“空间响应”与“姿态感知”
- 空间响应(适用于 iPad & Duo):教 AI 按容器宽度/高度划分布局模式(如 Single-column vs Multi-column),不要直接硬编码屏幕像素。
- 姿态感知(Duo 独有):提醒 AI 处理物理铰链/折痕(Hinge/Folding Feature)和设备姿态(Tabletop/Flat/Tent)。
3. 强调“连续性”与“无状态丢失”(State Continuity)
设备旋转、展开、半折叠或窗口拉伸时,页面会触发重绘。一定要提示 AI 在代码中处理状态持久化,避免重新布局导致数据重置或用户输入丢失。
4. 采用“分阶段拆解”策略
不要一次性让 AI “把整个 App 适配 Duo 和 iPad”,而是按照:
- 组件层(自动适应宽度的响应式卡片/列表)
- 页面结构层(侧边栏 + 主内容区的动态 Split 布局)
- 硬件特性处理(铰链避让与姿态切换)
二、 提示词(Prompt)设计结构与模板
一个高效的适配提示词应该包含:角色设定 + 硬件/平台目标 + 布局需求 + 边界条件 + 输出要求。
💡 提示词模板 1:UI/UX 设计方案与布局策略设计
当你想让 AI 帮你想清楚某个功能/页面在 iPad 和 Duo 上该怎么布局时使用。
【角色】你是一位资深移动端 UI/UX 设计师,精通 iOS (iPadOS) 与折叠屏/双屏设备 (如 Microsoft Surface Duo / 折叠屏) 的响应式设计规范。
【目标】请帮我设计 [组件/页面名称,例如:邮件客户端的主界面] 在 iPad 和 Duo 设备上的适配方案。
【已知信息】
1. 当前手机端形态:[简述手机端的布局,如:单列列表,点击进入详情页]。
2. 应用核心交互:[核心操作,如:浏览列表、查看详情、快速回复]。
【需求与约束】
1. iPad 适配:
- 说明在 Regular Width 下的布局(如 Split-View 左右分栏)。
- 考虑外接键盘/鼠标时的悬停(Hover)与快捷键逻辑。
2. Duo 适配:
- 区分单屏运行(Single-screen)与双屏展开(Spanned)的界面形态。
- 说明在半折叠/立式模式(Tabletop Mode)下的上下屏功能拆分。
- 必须处理中央铰链/折痕(Hinge Safe Area)的避让策略,防止文本或按钮被截断。
3. 共性与差异:用表格总结两者在交互和布局上的共性和差异点。
【输出要求】
请提供清晰的布局结构说明(建议附带 ASCII 简图或 Markdown 结构图),并列出组件级响应式规则。
💡 提示词模板 2:代码重构与响应式布局实现 (以 SwiftUI / Jetpack Compose 为例)
当你要写代码或者重构已有手机端代码时使用。
【角色】你是一位精通 [SwiftUI / Jetpack Compose / Flutter] 的资深客户端开发专家。
【目标】请将以下适用于手机端的单列布局代码,重构为同时支持 iPad 和 Duo (双屏/折叠屏) 的响应式布局。
【待重构代码】
``[粘贴你的现有代码片段]``
【适配要求】
1. 尺寸类适配 (Size Classes):
- 当水平尺寸为 Compact 时,保持单列导航(Stack Navigation)。
- 当水平尺寸为 Regular 时,自动转换为双栏/三栏布局(NavigationSplitView / List-Detail)。
2. Duo / 折叠屏特性处理:
- 引入姿态/折痕 API(如 Jetpack WindowManager 或 SwiftUI 相应环境变量)。
- 当检测到有中央折痕(FoldingFeature)时,避免将关键 UI(如输入框、操作按钮)放置在折痕区域内。
- 支持 Tabletop 模式(上半屏显示 [视图A],下半屏显示 [操作区B])。
3. 状态保持:确保布局切换或窗口尺寸动态改变时,[关键状态,例如:选中的 List Item ID] 不丢失。
【输出要求】
请给出完整、可运行的代码,并在关键逻辑(尺寸判断、折痕避让、分栏控制)处加上详细的代码注释。
💡 提示词模板 3:排查与优化现有适配问题 (Debug Prompt)
当应用在 Duo 或 iPad 上出现界面割裂、按钮被掩盖或崩溃时使用。
【问题描述】
在适配 [iPad 屏幕旋转 / Duo 双屏展开 / Stage Manager 窗口拖拽] 时,出现了以下问题:[具体现象,例如:中央折痕挡住了确定按钮 / 旋转后 ViewModel 数据重置]。
【运行环境】
- 平台与框架:[iOS SwiftUI / Android Jetpack Compose 等]
- 目标设备:[iPad Pro 12.9 / Surface Duo / Galaxy Z Fold]
【相关源码】
``[粘贴崩溃或布局异常的代码]``
【需求】
1. 分析导致该问题的根本原因(如硬编码宽度、未响应系统 Size Class 变化、未监听 Safe Area / WindowInsets 等)。
2. 提供修正后的代码方案,并解释如何防范此类硬件适配问题。
三、 使用 AI 时的实战小技巧
- 先问设计规范,再生成代码:
在让 AI 盲目写代码前,先问:“对于我的应用形态(如音频播放器),Duo 的半折叠模式下业界常见的 UI 交互范式是什么?” 确认方向后再让 AI 写代码。 - 利用 AI 生成测试用例(Test Matrix):
可以要求 AI:“请列出测试该组件在 iPad Stage Manager 和 Duo 模式下需覆盖的 5 个边缘测试场景(Edge Cases)。”(例如:在物理折痕刚好切过 TableCell 时的处理)。