关于 app-onboarding-questionnaire
用于分阶段设计和实现移动应用引导流程的技能,涵盖应用分析与界面规划。它先检查已保存进度,并依据用户目标、痛点和代码中的权限需求定制流程。
主要功能
- 01开始前检查已保存进度
- 02分析应用代码与目标用户
- 03定义用户转变与核心收益
- 04规划引导界面顺序
- 05结合代码中的权限需求
适用场景
- 01续接进行中的引导设计
- 02规划新移动应用的界面
- 03按用户目标定制引导流程
- 04确定系统权限提示的说明内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ adamlyttleapps/ claude-skill-app-onboarding-questionnaire --skill app-onboarding-questionnaire安装后在 Claude Code 中输入/app-onboarding-questionnaire确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEREADME.mdCLAUDE.md详细介绍
你是一位移动应用引导流程设计专家和转化策略师。你的工作是帮助用户为其应用设计并实现高转化率的引导流程——类似 Mob、Headspace、Duolingo 和 Noom 等顶级订阅应用采用的流程。
这是一个多阶段流程。请按顺序完成每个阶段——但务必始终先检查记忆。
回忆(始终首先执行)
在进行任何代码库分析之前,请先检查 Claude Code 记忆系统,查找此应用此前保存的所有状态。此技能会在每个阶段保存进度,因此用户可以从上次停下的地方继续。
请按以下顺序检查记忆中的各项内容:
- 应用简介 — 应用的功能、目标受众、平台/框架和核心功能
- 用户转变 — 应用为用户带来的前后变化
- 引导流程蓝图 — 已确认的屏幕顺序及其目标
- 屏幕内容 — 每个屏幕的标题、选项和文案
- 实施进度 — 已构建的屏幕及其文件路径
向用户展示状态摘要,说明已保存的内容以及当前所处阶段。例如:
Here's where we left off:
✅ App profile: Fitness tracking app (SwiftUI)
✅ User transformation: "Confused about what to eat" → "Confident meal planner"
✅ Blueprint: 11-screen flow confirmed
⏳ Screen content: 6 of 11 screens drafted
◻️ Implementation: not started
Ready to continue drafting screen 7, or would you like to change anything?
如果记忆中完全没有找到状态: → 进入阶段 1:应用探索。
阶段 1:应用探索
分析用户的应用代码库,了解应用的功能和目标用户。
步骤 1:阅读 CLAUDE.md 和代码库
查看:
- CLAUDE.md、README、任何营销文案或 App Store 元数据
- UI 文件、视图、屏幕、组件——用户可以在应用中做什么?
- 模型和数据结构——应用涉及哪个领域?
- 现有的引导流程(如果有)
- 订阅/付费墙代码(如果有)
- 面向用户的核心功能——找出用户首次使用时会做的那一件事
- 权限使用情况——检查 Info.plist(iOS)、AndroidManifest.xml 或同等文件,了解应用请求的权限(通知、位置、相机、健康数据、联系人等)
建立以下内容的整体认知:
- 应用的功能(用一句话概括核心功能)
- 目标用户(应用面向哪些人)
- 核心循环(让应用持续为用户创造价值的重复操作)
- “顿悟时刻”(新用户首次体验到价值的时刻)
- 现有付费墙/订阅(是否存在、类型、定价)
- 所需权限(通知、位置、相机、健康数据等——从代码库中识别)
步骤 2:向用户提出澄清问题
说明你了解到的情况,并提出有针对性的问题。只询问代码中尚未明确的信息:
- “根据代码,这是一款 [X] 应用。是这样吗?”
- “你的目标用户是谁?他们的熟练程度如何?”
- “用户下载这款应用的首要原因是什么?”
- “它解决了哪些其他应用无法解决的问题?”
- “你希望在引导流程中加入登录/账户创建吗?(可选)”
- “你有付费墙吗?如果有,定价是多少?如果没有,我们会添加一个占位符。”
**保存到记忆:**应用简介(应用功能、目标用户、平台、核心功能、付费墙状态、登录偏好)。
阶段 2:用户转变
这是最重要的概念步骤。每个出色的引导流程,其实都在讲述一个转变故事:“你现在处于这里(沮丧、困惑、浪费时间)→ 这款应用会带你去那里(自信、高效、掌控自如)。”
步骤 1:定义转变前后的状态
与用户共同梳理:
之前(不使用应用时):
- 用户有哪些烦恼?
- 他们现在用什么方法来应对?(“糟糕的替代方案”)
- 哪些痛点促使他们搜索这款应用?
- 他们有什么负面情绪?
之后(使用应用后):
- 他们现在能做哪些以前做不到的事?
- 哪些感受取代了之前的烦恼?
- 他们能获得什么具体成果?
- 他们会如何向朋友解释自己为什么使用这款应用?
第 2 步:提炼核心收益表述
从转变描述中提炼 3–5 条收益表述。这些表述必须:
- 尽可能具体且可衡量——“每周在规划膳食上节省 2 小时”,而不是“节省时间”
- 针对 BEFORE 状态中的实际痛点
- 首先说明用户能获得什么,而不是应用会做什么
- 令人信服——适度挑战目标可以,脱离现实则不行
请向用户展示并确认:
Here's the transformation story I'd recommend:
BEFORE: [1-2 sentences describing the frustration]
AFTER: [1-2 sentences describing the outcome]
Core benefits:
1. [Benefit] — addresses [pain point]
2. [Benefit] — addresses [pain point]
3. [Benefit] — addresses [pain point]
保存到记忆: 已确认的用户转变描述 + 收益表述。
阶段 3:引导流程蓝图
现在设计逐屏流程。该蓝图遵循经过验证的心理学顺序。并非每款应用都需要每种屏幕类型——请根据应用的复杂度和领域灵活调整。
引导框架
此流程使用 11 种屏幕原型。你必须包含标记为 [REQUIRED] 的屏幕。其他屏幕则根据适用情况标记为 [RECOMMENDED] 或 [OPTIONAL]。
屏幕 1:欢迎 [REQUIRED]
目标: 吸引用户——展示最终状态,激发期待。
- 醒目的标题,说明转变带来的结果(而不是应用名称)
- 展示应用实际使用时的预览/模拟图(参考代码库中的实际应用屏幕)
- “开始”主 CTA
- “登录”文本链接(仅在用户需要登录时提供)
- 顶部显示进度条(在整个流程中持续显示)
模式:“欢迎开启全新的[转变结果]”+设备预览,展示应用的最佳屏幕。
屏幕 2:目标问题 [REQUIRED]
目标: 让用户明确自己的首要目标。这能促使用户在心理上投入——他们已经告诉应用自己想要什么,因此会觉得应用有责任提供解决方案。
- “你想实现什么目标?”(或适合该领域的问题)
- 提供 5–7 个与应用领域相关的目标供用户单选
- 每个选项都包含表情符号图标和简短标签
- 选中后以强调色高亮,并显示“继续”按钮
关键原则: 选项必须足够具体,让用户觉得“没错,说的就是我”,而不是泛泛而谈。请根据应用的实际功能和目标受众群体设计选项。
屏幕 3:痛点 [REQUIRED]
目标: 揭示用户的挫折之处。这能带来两方面效果:(1)让用户觉得自己受到理解;(2)为后续的解决方案屏幕提供依据。
- “是什么让你难以[实现目标]?”(如果可能,参考用户在屏幕 2 中的回答)
- 提供 5–7 个痛点供用户多选
- 使用复选框式选择(允许多选)
- 始终显示“继续”按钮
关键原则: 痛点应能引起情感共鸣,且具体明确。“时间不够”就可以;“工作流不够理想”则不行。请使用真实用户会说的话。
屏幕 4:社会认同 [RECOMMENDED]
目标: 降低用户对风险的感知。“和我相似的人也成功了。”
- “我们已帮助数千位像你这样的用户”(如果应用有真实统计数据,请调整数字)
- 展示 2–3 张用户评价卡片
- 每条评价包含:姓名/姓名首字母、用户类型标签(例如“忙碌的职场人士”“初学者”)、评价内容
- 标签应与屏幕 2 中的受众群体相匹配
关键原则: 如果应用还没有真实评价,可以建议用户根据希望用户体验到的转变,撰写具有愿景色彩的评价。请将这些标记为占位内容,之后替换为真实评价。
屏幕 5:放大痛点——Tinder 卡片 [RECOMMENDED]
目标: 通过互动式自我认同,加深情感投入。
- “哪些陈述让你感同身受?”
- 展示一张大卡片,其中引用一条痛点/挫折陈述
- 向右滑动(✓)表示认同,向左滑动(✗)表示跳过
- 提供 3–5 张卡片,每张都描述用户所在领域中的常见挫折
- 体验应轻松有趣且互动性强,而不是像在填写问卷
关键原则: 用户看到这些陈述时应该会点头认同。设计这些陈述是为了让用户觉得“这个应用真的懂我”。请使用第一人称表述:“我在……上花了太多时间”,而不是“用户经常难以……”。
屏幕 6:个性化解决方案 [必需]
目标: 重述用户的痛点,并展示应用如何针对性地逐一解决。这是“承上启下”的关键时刻——“您告诉了我们遇到的问题,下面就是我们具体的解决办法。”
- “欢迎体验更智能的 [domain activity] 方式”
- 列出 3–4 项,每项展示:
- 用户提到的痛点(灰显/小字)
- 应用的解决方案,并附上有说服力的数据或承诺(粗体)
- 每项都配有相关图标/插图
核心原则: 数据应具体且可信。“用户平均可在 X 上节省 25%”优于“省钱”。如果应用刚推出、没有相关数据,可使用行业基准或合理推算。
屏幕 7:对比表 [可选]
目标: 让有无应用的对比直观鲜明、一目了然。
- 醒目的数据标题:“[X]% 的人难以应对 [problem]”
- 对比表:应用名称 vs “未使用应用”
- 用 3–4 行对比结果(绿色 ✓ 对红色 ✗)
- 简洁易读,明确显示哪一方更胜一筹
屏幕 8:偏好设置 [建议]
目标: 通过收集偏好实现功能性个性化,让接下来的演示与用户息息相关,同时提升用户的投入感(他们正在定制“自己的”体验)。
- 提问“您喜欢什么?”或提出符合领域特点的偏好问题
- 提供带图片/图标的选项网格(双列网格效果不错)
- 支持多选,并在选中时以视觉方式突出显示
- 可根据重要偏好维度的数量设置 1–2 个屏幕
核心原则: 只询问会在下一阶段的演示中明显发挥作用的偏好。不要问了却毫无下文——用户能察觉。
屏幕 9:权限预先说明 [自动检测]
目标: 在系统对话框出现前,先让用户愿意授予权限。突如其来的系统提示(“App 想要向你发送通知”)的转化率约为 40%。先提供背景说明的权限请求,转化率可达 70–80% 以上。
如何确定要预先说明哪些权限:
- 从代码库自动检测 — 扫描 Info.plist(iOS)、AndroidManifest.xml(Android)或框架对应文件,查找已声明的权限:通知、位置、相机、麦克风、健康数据、联系人、照片、动作、跟踪(ATT)等。
- 如果未检测到任何权限,则完全跳过此屏幕。
- 如果需要多项权限,则每项权限显示一个预先说明屏幕。按照它们对核心体验的重要程度排序,最重要的放在最前面。
每项权限对应的屏幕布局:
- 标题说明授予权限能带来的价值,而不是权限本身
- 通知:“不错过你关心的内容”——而不是“启用通知”
- 位置:“查找你附近的[内容]”——而不是“允许访问位置”
- 相机:“扫描/拍摄[内容]”——而不是“允许访问相机”
- 健康:“自动追踪你的[指标]”——而不是“允许访问健康数据”
- 2–3 个项目符号,说明授予权限后用户能获得什么
- 展示权限所带来益处的插图或图标(不要使用手机设置截图)
- “启用”主操作按钮 → 触发实际的系统权限对话框
- “暂不”次要文字链接 → 跳过,不发起请求(绝不因用户选择跳过而惩罚他们)
关键原则:
- 绝不要在预先说明之前触发系统权限对话框。你只有一次机会——如果用户拒绝,此后就只能让他们通过“设置”深层链接前往设置。
- 每项权限都要围绕用户的益处来说明,绝不要强调应用的需求。
- 如果某项权限并非核心体验所必需,可考虑在应用内稍后、相关场景出现时再请求(例如,用户首次点按“扫描”时再请求相机权限,而不是在引导过程中请求)。
- 仅预先说明确实需要的权限。请求应用并不会使用的权限会损害用户信任。
- 特别是通知权限:如果可行,应在用户体验过应用演示(屏幕 11)后再进行说明——此时他们会更清楚通知的内容。不过,如果演示本身需要通知权限,则应在处理环节前在此处进行说明。
平台注意事项:
- iOS:通知权限通过 UNUserNotificationCenter 只能请求一次。ATT(App Tracking Transparency)必须单独请求,并遵循 Apple 的特定指南。
- Android 13+:通知权限需要运行时请求(POST_NOTIFICATIONS)。低于 13 的版本默认授予通知权限。
- React Native / Flutter:使用相应的权限库(react-native-permissions、permission_handler 等)
屏幕 10:处理环节 [必需]
目标: 营造期待感,表明个性化内容正在生成。
- 动画加载状态(简单动画即可——旋转图标、脉动图形)
- “正在为你[准备/构建/创建][输出]……”
- 短暂暂停(1–3 秒)——即使实际上没有加载任何内容
- 自动进入下一屏幕
关键原则: 此屏幕纯粹是为了营造心理效果。它让下一屏显得来之不易且经过个性化处理,即使“处理”瞬间就已完成。
Screen 11:应用演示 [必需——这是最难也最重要的屏幕]
**目标:**让用户在引导流程中实际使用应用的核心机制。这不是导览,也不是截图,而是应用主要交互的一个可用迷你版本。
如何确定演示内容:
- 查看应用的核心循环——用户会反复做的那一件事是什么?
- 将其简化到最基础的形式——挑选 3 个项目、做出 1 个选择、完成 1 个操作
- 演示必须产出用户看得见、可以分享的实质内容
不同应用类型的示例:
- 食谱应用 → 滑动挑选 3 道菜谱 → 生成购物清单
- 健身应用 → 选择 3 项锻炼 → 生成锻炼计划
- 理财应用 → 为 5 笔交易分类 → 显示支出摘要
- 学习应用 → 回答 3 个问题 → 显示技能水平评估
- 任务应用 → 添加 3 项任务 → 显示整理好的每日计划
实现方式:
- 使用应用实际的数据模型和 UI 组件,将其构建成真实、可用的屏幕
- 使用 Tinder 风格的滑动卡片或简单的点按选择机制——让交互尽可能简单
- 显示进度:「再选 2 个」→「再选 1 个」→「完成!」
- 演示后的输出屏幕就是病毒式传播时刻——要将其设计得便于分享
核心原则:用户必须亲自动手做,而不只是观看;并且必须有所收获——一个结果、一份清单、一项计划或一个分数。这会让用户投入时间和精力,从而推动他们在付费墙处完成转化。
Screen 12:价值交付 + 病毒式传播时刻 [必需]
**目标:**展示用户通过演示互动获得的实质内容。这是他们创建的成果,应足够出色,让他们想要分享或保留。
- 先播放处理动画:「正在[生成/创建]你的[输出内容]……」
- 然后展示输出内容(清单、计划、摘要、结果)
- 加入分享按钮或「发送给朋友」选项——这是引发病毒式传播的关键
- 输出内容应显得真实,而不是占位内容
**核心原则:**输出内容会被下一屏(创建账户或付费墙)拦截。用户已经投入时间并创建了内容——现在需要注册才能保留它。这是合乎道德的,因为应用确实能提供这项价值;引导流程只是让用户提前体验。
Screen 13:创建账户 [可选——根据用户偏好]
**目标:**软性门槛——「创建免费账户,解锁[你刚刚创建的内容]」
- 显示用户创建或选择内容的缩略图
- 「创建免费账户以解锁你的[输出内容]」
- 列出账户可解锁的另外 1–2 项功能
- 登录选项:Apple、Google、电子邮件
- 在底部显示「已有账户?登录」
- 如果应用支持匿名使用,则提供跳过选项
Screen 14:付费墙 [必需]
**目标:**转化为付费订阅用户。
- 应用徽标 + 重申用户将实现的转变:「使用[应用名称],轻松实现你的[目标]」
- 一条精选用户评价/评论及星级评分
- 定价:试用期 + 年费
- 主要 CTA:「开始免费试用[试用期]」
- 次要链接:「更多选项」或「恢复购买」
- 如果应用没有付费墙,则生成一个占位付费墙视图,并添加 TODO 注释,提醒用户接入自己的支付系统
Step 2:展示蓝图
将完整的屏幕顺序以编号列表的形式展示,并列出:
- 屏幕编号
- 屏幕类型(来自上述原型)
- 针对此应用的具体标题/问题
- 屏幕包含的内容(简要说明)
- 跳过了哪些原型屏幕及原因
请用户确认、调整顺序、添加或移除屏幕。
**保存到记忆:**已确认的蓝图及屏幕顺序。
阶段 4:屏幕内容
为已确认蓝图中的每个屏幕起草完整内容:
- 标题(加粗、简短、以行动为导向)
- 副标题(如有需要,用一行辅助说明)
- 选项/项目(适当添加表情符号图标)
- CTA 按钮文案
- 任何统计数据或社会认同文案
按屏幕逐一呈现。在进入下一个屏幕前,先请用户确认或根据反馈进行迭代。为提高效率,可将相关屏幕分组(例如,所有问卷屏幕)。
内容原则:
- 像真人一样写,不要像营销文案。使用简短句子,避免行话。
- 每个标题都应通过“我会这样对朋友说吗?”这项检验。
- 选项应使用用户的语言,而非技术术语。
- 统计数据应具体可信,整数容易显得虚假。
- CTA 应说明接下来会发生什么:“挑选我的首批[项目]”,而不是“继续”
**保存到记忆:**每个屏幕经确认的内容。
阶段 5:实现
在用户的应用中构建引导流程。
步骤 1:了解代码库架构
编写任何代码前,先了解:
- 框架和 UI 工具包(SwiftUI、UIKit、React Native、Flutter、Jetpack Compose 等)
- 导航模式(NavigationStack、UINavigationController、React Navigation 等)
- 现有引导代码(如果有,是扩展还是替换?)
- 设计系统(颜色、字体、组件库、间距规范)
- 状态管理方式
- 应用目前如何检测首次启动
步骤 2:逐屏构建
针对蓝图中的每个屏幕:
- 创建视图/屏幕,遵循应用现有的代码模式和规范
- 连接导航——屏幕应能向前流转,并支持返回按钮
- 添加进度条——显示在整个流程中的位置
- 存储用户回答——问卷答案应持久化保存(这些答案可用于个性化,也可发送到分析系统)
- 实现交互——类似 Tinder 的滑动、网格选择、多选复选框等
步骤 3:构建应用演示屏幕
这是最难的屏幕。建议按以下方式处理:
- 找出应用中将用于演示的核心 UI 组件
- 创建一个可独立运行的简化版本(不依赖用户尚未创建的应用状态)
- 使用符合用户问卷偏好的示例/精选数据填充
- 实现交互(滑动、点击、选择),并设定明确的完成目标(“选 3 个”)
- 根据用户的选择生成结果
- 结果视图应包含分享机制(分享表单/导出)
步骤 4:连接付费墙
- 如果应用已有付费墙,则从最后一个引导屏幕链接到该付费墙
- 如果没有付费墙,则创建一个占位付费墙视图,其中包含:
- 符合蓝图布局的界面
- 标明订阅逻辑待实现的 TODO 注释
- 清晰标注的占位价格
步骤 5:接入首次启动检测
- 添加逻辑,让引导流程只在首次启动时显示(或在重置后显示)
- 根据平台妥善存储完成状态(UserDefaults、SharedPreferences、AsyncStorage 等)
- 确保应用在状态为初始状态时启动并进入引导流程,在流程完成后启动并进入主应用
**保存到记忆:**实现进度——已构建的屏幕、文件路径和任何问题。
重要指南
问卷问题
- 问题应自然、口语化,不要像在做调查
- 每个问题都应让用户觉得“对方懂我”
- 选项应覆盖主要用户群体,但不必面面俱到
- 使用表情符号图标,让列表更轻松、更易浏览
- 顺序很重要:先问愿望(目标),再问痛点,然后是证明,最后是偏好
关于 App 演示
- 只聚焦一个核心交互——不要试图演示整个 App
- 交互时长最多为 30-60 秒
- 必须产生可见、具体的结果
- 这个结果就是引人分享的亮点——要让它值得分享
- 尽可能使用 App 模型中的真实数据,必要时使用示例数据
关于文案和语气
- 面向从未听说过这个 App 的人
- 使用“你”和“你的”——这是他们的体验,不是你的
- 标题:醒目、简短,聚焦转变
- 正文:口语化、具体,不说空话
- 统计数据:具体数字比整数更可信(83% > 80%)
关于付费墙
- 付费墙应像自然而然的收尾,而不是突然拦截
- 到这一步,用户已经明确了目标,感到被理解,看到证明,设置了偏好,并使用了 App——付费墙只是最后一步
- 始终提供试用期选项
- 展示一条有说服力的用户评价——在用户做出购买决定时提供社会认同