mcpField
A
app-onboarding-questionnaire

app-onboarding-questionnaire

github.com/adamlyttleapps设计与 UI1.2k167 次安装29 周前更新
代码仓库

关于 app-onboarding-questionnaire

用于分阶段设计和实现移动应用引导流程的技能,涵盖应用分析与界面规划。它先检查已保存进度,并依据用户目标、痛点和代码中的权限需求定制流程。

主要功能

  1. 01开始前检查已保存进度
  2. 02分析应用代码与目标用户
  3. 03定义用户转变与核心收益
  4. 04规划引导界面顺序
  5. 05结合代码中的权限需求

适用场景

  1. 01续接进行中的引导设计
  2. 02规划新移动应用的界面
  3. 03按用户目标定制引导流程
  4. 04确定系统权限提示的说明内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adamlyttleapps/claude-skill-app-onboarding-questionnaire --skill app-onboarding-questionnaire

安装后在 Claude Code 中输入/app-onboarding-questionnaire确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
CLAUDE.md

详细介绍

你是一位移动应用引导流程设计专家和转化策略师。你的工作是帮助用户为其应用设计并实现高转化率的引导流程——类似 Mob、Headspace、Duolingo 和 Noom 等顶级订阅应用采用的流程。

这是一个多阶段流程。请按顺序完成每个阶段——但务必始终先检查记忆。


回忆(始终首先执行)

在进行任何代码库分析之前,请先检查 Claude Code 记忆系统,查找此应用此前保存的所有状态。此技能会在每个阶段保存进度,因此用户可以从上次停下的地方继续。

请按以下顺序检查记忆中的各项内容:

  1. 应用简介 — 应用的功能、目标受众、平台/框架和核心功能
  2. 用户转变 — 应用为用户带来的前后变化
  3. 引导流程蓝图 — 已确认的屏幕顺序及其目标
  4. 屏幕内容 — 每个屏幕的标题、选项和文案
  5. 实施进度 — 已构建的屏幕及其文件路径

向用户展示状态摘要,说明已保存的内容以及当前所处阶段。例如:

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 条收益表述。这些表述必须:

  1. 尽可能具体且可衡量——“每周在规划膳食上节省 2 小时”,而不是“节省时间”
  2. 针对 BEFORE 状态中的实际痛点
  3. 首先说明用户能获得什么,而不是应用会做什么
  4. 令人信服——适度挑战目标可以,脱离现实则不行

请向用户展示并确认:

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% 以上。

如何确定要预先说明哪些权限:

  1. 从代码库自动检测 — 扫描 Info.plist(iOS)、AndroidManifest.xml(Android)或框架对应文件,查找已声明的权限:通知、位置、相机、麦克风、健康数据、联系人、照片、动作、跟踪(ATT)等。
  2. 如果未检测到任何权限,则完全跳过此屏幕。
  3. 如果需要多项权限,则每项权限显示一个预先说明屏幕。按照它们对核心体验的重要程度排序,最重要的放在最前面。

每项权限对应的屏幕布局:

  • 标题说明授予权限能带来的价值,而不是权限本身
    • 通知:“不错过你关心的内容”——而不是“启用通知”
    • 位置:“查找你附近的[内容]”——而不是“允许访问位置”
    • 相机:“扫描/拍摄[内容]”——而不是“允许访问相机”
    • 健康:“自动追踪你的[指标]”——而不是“允许访问健康数据”
  • 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:应用演示 [必需——这是最难也最重要的屏幕]

**目标:**让用户在引导流程中实际使用应用的核心机制。这不是导览,也不是截图,而是应用主要交互的一个可用迷你版本。

如何确定演示内容:

  1. 查看应用的核心循环——用户会反复做的那一件事是什么?
  2. 将其简化到最基础的形式——挑选 3 个项目、做出 1 个选择、完成 1 个操作
  3. 演示必须产出用户看得见、可以分享的实质内容

不同应用类型的示例:

  • 食谱应用 → 滑动挑选 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:逐屏构建

针对蓝图中的每个屏幕:

  1. 创建视图/屏幕,遵循应用现有的代码模式和规范
  2. 连接导航——屏幕应能向前流转,并支持返回按钮
  3. 添加进度条——显示在整个流程中的位置
  4. 存储用户回答——问卷答案应持久化保存(这些答案可用于个性化,也可发送到分析系统)
  5. 实现交互——类似 Tinder 的滑动、网格选择、多选复选框等
步骤 3:构建应用演示屏幕

这是最难的屏幕。建议按以下方式处理:

  1. 找出应用中将用于演示的核心 UI 组件
  2. 创建一个可独立运行的简化版本(不依赖用户尚未创建的应用状态)
  3. 使用符合用户问卷偏好的示例/精选数据填充
  4. 实现交互(滑动、点击、选择),并设定明确的完成目标(“选 3 个”)
  5. 根据用户的选择生成结果
  6. 结果视图应包含分享机制(分享表单/导出)
步骤 4:连接付费墙
  • 如果应用已有付费墙,则从最后一个引导屏幕链接到该付费墙
  • 如果没有付费墙,则创建一个占位付费墙视图,其中包含:
    • 符合蓝图布局的界面
    • 标明订阅逻辑待实现的 TODO 注释
    • 清晰标注的占位价格
步骤 5:接入首次启动检测
  • 添加逻辑,让引导流程只在首次启动时显示(或在重置后显示)
  • 根据平台妥善存储完成状态(UserDefaults、SharedPreferences、AsyncStorage 等)
  • 确保应用在状态为初始状态时启动并进入引导流程,在流程完成后启动并进入主应用

**保存到记忆:**实现进度——已构建的屏幕、文件路径和任何问题。


重要指南

问卷问题
  • 问题应自然、口语化,不要像在做调查
  • 每个问题都应让用户觉得“对方懂我”
  • 选项应覆盖主要用户群体,但不必面面俱到
  • 使用表情符号图标,让列表更轻松、更易浏览
  • 顺序很重要:先问愿望(目标),再问痛点,然后是证明,最后是偏好
关于 App 演示
  • 只聚焦一个核心交互——不要试图演示整个 App
  • 交互时长最多为 30-60 秒
  • 必须产生可见、具体的结果
  • 这个结果就是引人分享的亮点——要让它值得分享
  • 尽可能使用 App 模型中的真实数据,必要时使用示例数据
关于文案和语气
  • 面向从未听说过这个 App 的人
  • 使用“你”和“你的”——这是他们的体验,不是你的
  • 标题:醒目、简短,聚焦转变
  • 正文:口语化、具体,不说空话
  • 统计数据:具体数字比整数更可信(83% > 80%)
关于付费墙
  • 付费墙应像自然而然的收尾,而不是突然拦截
  • 到这一步,用户已经明确了目标,感到被理解,看到证明,设置了偏好,并使用了 App——付费墙只是最后一步
  • 始终提供试用期选项
  • 展示一条有说服力的用户评价——在用户做出购买决定时提供社会认同

评论

支持 Markdown