# Onboarding App Shell(高层规范) ## 1. 背景与目标 本需求用于落地客户端的“首次进入体验 + 主应用壳 + 关键入口”,包含: - 3–5 页可跳过的 Onboarding(问题页均可跳过) - Push 设置页(可跳过) - 进入主 App:支持“点赞/讨厌”交互 - 收藏夹入口 - 通用设置入口:版本信息、iOS 小组件入口 ### 目标 - **首次体验顺畅**:用户可完成或跳过 Onboarding 与 Push 设置,不阻塞进入主功能 - **主功能可用**:进入主 App 后可对内容进行“点赞/讨厌”,并能进入收藏夹与设置 - **入口清晰**:收藏夹与设置入口明显且可从主界面到达 - **状态可持久化**:Onboarding 完成状态、Push 设置选择(是否跳过)、点赞/讨厌记录、收藏记录可持久化 ### 非目标(本阶段不做) - 不实现完整推送业务闭环(仅做“设置入口/引导”,且可跳过) - 不实现真实推荐算法(内容来源可先用本地 mock 或固定列表) - iOS 小组件不要求完整上线交互(先做“入口/说明/引导”即可,实际小组件实现可拆分到后续模块) ## 2. 用户流程(高层) ### 2.1 首次启动 1. App 启动 2. Onboarding(3–5 页) - 每页都提供 **跳过**(Skip) - 支持上一页/下一页(可选) 3. Push 设置页(可选进入,且可跳过) 4. 进入主 App(内容卡片/列表)并可点赞/讨厌 ### 2.2 非首次启动 - 若已完成(或跳过)Onboarding:直接进入主 App ## 3. 功能需求(高层) ### 3.1 Onboarding(3–5 页,问题可跳过) - **页数**:3–5 页(可配置) - **内容**:以“问题/偏好收集”为主(具体题目可后续在内容配置中迭代) - **跳过策略**: - 每页可跳过(不强制填写) - 最终可一键跳过整个 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 方案