Files
吕新雨 049995692d init
2026-01-28 20:50:17 +08:00

133 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Onboarding App Shell高层规范
## 1. 背景与目标
本需求用于落地客户端的“首次进入体验 + 主应用壳 + 关键入口”,包含:
- 35 页可跳过的 Onboarding问题页均可跳过
- Push 设置页(可跳过)
- 进入主 App支持“点赞/讨厌”交互
- 收藏夹入口
- 通用设置入口版本信息、iOS 小组件入口
### 目标
- **首次体验顺畅**:用户可完成或跳过 Onboarding 与 Push 设置,不阻塞进入主功能
- **主功能可用**:进入主 App 后可对内容进行“点赞/讨厌”,并能进入收藏夹与设置
- **入口清晰**:收藏夹与设置入口明显且可从主界面到达
- **状态可持久化**Onboarding 完成状态、Push 设置选择(是否跳过)、点赞/讨厌记录、收藏记录可持久化
### 非目标(本阶段不做)
- 不实现完整推送业务闭环(仅做“设置入口/引导”,且可跳过)
- 不实现真实推荐算法(内容来源可先用本地 mock 或固定列表)
- iOS 小组件不要求完整上线交互(先做“入口/说明/引导”即可,实际小组件实现可拆分到后续模块)
## 2. 用户流程(高层)
### 2.1 首次启动
1. App 启动
2. Onboarding35 页)
- 每页都提供 **跳过**Skip
- 支持上一页/下一页(可选)
3. Push 设置页(可选进入,且可跳过)
4. 进入主 App内容卡片/列表)并可点赞/讨厌
### 2.2 非首次启动
- 若已完成或跳过Onboarding直接进入主 App
## 3. 功能需求(高层)
### 3.1 Onboarding35 页,问题可跳过)
- **页数**35 页(可配置)
- **内容**:以“问题/偏好收集”为主(具体题目可后续在内容配置中迭代)
- **跳过策略**
- 每页可跳过(不强制填写)
- 最终可一键跳过整个 Onboarding
- **视觉反馈**
- 进度指示(例如 1/5 或进度条)
- 清晰的“下一步/跳过”按钮
### 3.2 Push 设置(可跳过)
- 提供一页“开启通知”的引导与说明
- 支持:
- **立即开启**(触发权限申请)
- **稍后**(跳过)
- 用户选择需持久化(用于后续在设置页再次引导)
### 3.3 主 App点赞/讨厌
- 主界面展示一条“情绪文字/正念短句/卡片内容”
- 支持两种操作:
- **点赞Like**
- **讨厌Dislike**
- 行为结果:
- 记录用户操作(本地持久化)
- 点赞内容可进入收藏夹(或点赞即收藏,具体规则在实现时确认)
### 3.4 收藏夹入口
- 主界面提供“收藏夹”入口
- 收藏夹展示已收藏内容列表
- 支持取消收藏(可选)
### 3.5 通用设置入口
设置页至少包含:
- **版本信息**:展示 App 版本号(和可选的 build number
- **iOS 小组件**:入口/说明
- 提供“如何添加小组件”的引导文案
- 若后续实现小组件配置页,可从此入口进入
- **通知设置**(可选,但建议有):
- 展示当前通知状态
- 允许用户再次进入系统设置开启通知iOS/Android 跳转能力按平台支持情况实现)
## 4. 数据与持久化(高层)
需要持久化的最小集合:
- `onboarding.completed`: boolean
- `push.promptState`: `enabled | skipped | unknown`
- `content.reactions`: 记录内容 ID 与 like/dislike
- `favorites.items`: 收藏内容列表(按 ID 存储)
> 说明:本期可采用本地存储(例如 AsyncStorage后续可扩展为与后端同步。
## 5. 页面与导航(建议)
- `Onboarding`(多页)
- `PushPrompt`(可跳过)
- `Home`(点赞/讨厌)
- `Favorites`(收藏夹)
- `Settings`通用设置版本、iOS 小组件)
若使用 `expo-router`
- Onboarding 可用分组路由(例如 `(onboarding)`)管理,并在完成后跳转到 `(tabs)``Home`
## 6. 验收标准
- 首次进入:
- 可完成或跳过 Onboarding任意页可跳过
- Push 设置页可跳过
- 最终一定能进入主 App
- 主功能:
- 主界面可对内容执行点赞/讨厌并记录
- 存在收藏夹入口且可看到收藏内容
- 存在设置入口且能看到版本与 iOS 小组件入口/说明
- 持久化:
- 重启 App 后Onboarding 不会重复出现(除非主动清除状态)
- 点赞/收藏记录仍存在
## 7. 风险与注意事项
- 通知权限申请时机:过早弹窗可能导致拒绝率上升,建议通过引导页解释后再触发
- iOS 小组件能力受系统限制:刷新频率与内容更新不保证严格实时
- 内容来源:若暂未接后端,需提供可替换的 mock 内容与唯一 ID 方案