4.7 KiB
4.7 KiB
Onboarding App Shell(任务清单)
说明:本清单根据
plan.md拆解,要求“可执行、可验收、可标记”。
标记规则:执行完成后将对应项从- [ ]改为- [x],并把“状态”改为 已完成;进行中改为 进行中;阻塞写明原因与解除条件。
0. 清单状态说明
- 状态:未开始 / 进行中 / 已完成 / 阻塞
- 阻塞:必须写明阻塞点与解除条件
1. 路由重构(不使用 Tabs)
-
移除 Tabs 导航结构,切换为 Stack + Header 入口
- 状态:未开始
- 范围:
client/app/(tabs)/*、client/app/_layout.tsx、新增client/app/(app)/*、client/app/(onboarding)/* - 要求:
- 首页为
Home(非 Tab) - 从 Home 的 Header 进入
Favorites与Settings
- 首页为
- 验收:启动后不出现 TabBar;可从 Home 进入收藏夹与设置
-
实现启动分发
app/index.tsx(按 onboarding 状态跳转)- 状态:未开始
- 规则:
onboarding.completed=true:进入/(app)/home- 否则进入
/(onboarding)/onboarding
- 验收:首次启动进入 Onboarding;完成后重启直接进 Home
2. 本地存储与数据模型
-
封装 AsyncStorage 访问层(统一 key 与读写)
- 状态:未开始
- Key:
onboarding.completedpush.promptStatecontent.reactionsfavorites.items
- 验收:读写都有类型约束;不会散落在 UI 代码里重复写 key
-
提供本地 mock 内容列表(带稳定 id)
- 状态:未开始
- 字段:
id、text - 验收:Home 可稳定渲染一条内容,并能切换到下一条(如实现)
3. Onboarding(3–5 页,全部可跳过)
-
实现 Onboarding 容器页(3–5 页)
- 状态:未开始
- 要求:
- 显示进度(例如
2/4) - 每页都有“下一步”与“跳过”
- 任意页有“一键跳过整个 Onboarding”
- 显示进度(例如
- 验收:可从任意页跳过且不阻塞进入 PushPrompt
-
Onboarding 完成状态持久化
- 状态:未开始
- 要求:完成或整体跳过时写入
onboarding.completed=true - 验收:重启 App 不再出现 Onboarding
4. PushPrompt(需要且可跳过)
- 实现 PushPrompt 页面
- 状态:未开始
- 按钮:
- 立即开启(触发系统权限申请)
- 稍后(跳过)
- 持久化:
- 立即开启:写入
push.promptState=enabled - 稍后:写入
push.promptState=skipped
- 立即开启:写入
- 验收:无论选择/权限结果如何,都能进入 Home
5. Home(点赞/讨厌)
-
实现 Home 页面(内容卡片 + Like/Dislike)
- 状态:未开始
- 要求:
- 展示一条 mock 内容
- Like / Dislike 按钮明显
- 验收:点击 Like/Dislike 会写入本地记录
-
实现 Like=收藏规则
- 状态:未开始
- 规则:
- Like:记录
content.reactions[id]='like' - Like:将
id追加到favorites.items(去重) - Dislike:记录
content.reactions[id]='dislike'(不改变出现策略)
- Like:记录
- 验收:Like 后收藏夹可见该内容;Dislike 仅记录不影响收藏
-
在 Home Header 加入入口:收藏夹、设置
- 状态:未开始
- 验收:从 Home 可进入 Favorites 与 Settings
6. Favorites(仅展示,不可取消/清空)
- 实现 Favorites 页面(只读列表)
- 状态:未开始
- 要求:
- 展示
favorites.items对应的内容 - 不提供取消收藏/清空
- 展示
- 验收:Like 的内容在此页可见;无取消入口
7. Settings(version + iOS 小组件说明文案)
- 实现 Settings 页面
- 状态:未开始
- 内容:
- version 信息行(仅 version)
- iOS 小组件说明卡片(美观文案)
- 验收:页面可进入,信息展示正确,文案样式不突兀
8. i18n 文案补齐
- 补齐 Onboarding/Push/Home/Favorites/Settings 的 i18n key(至少 zh-CN/en)
- 状态:未开始
- 要求:
- key 点分层:
onboarding.*、push.*、home.*、favorites.*、settings.* - 先覆盖
zh-CN/en,其余语言可后续逐步补齐
- key 点分层:
- 验收:页面不出现硬编码长句;主要文案可切换语言生效
9. 自测与验收
- 流程自测(首次/非首次)
- 状态:未开始
- 路径:
- 首次启动:Onboarding(逐页跳过/整体跳过)-> PushPrompt(开启/稍后)-> Home
- 非首次:直接 Home
- 验收:与
plan.md的验收清单一致