基本功能

This commit is contained in:
吕新雨
2026-01-28 22:13:55 +08:00
parent 049995692d
commit b485b52eec
6 changed files with 488 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
# 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.completed`
- `push.promptState`
- `content.reactions`
- `favorites.items`
- **验收**:读写都有类型约束;不会散落在 UI 代码里重复写 key
- [ ] **提供本地 mock 内容列表(带稳定 id**
- **状态**:未开始
- **字段**`id``text`
- **验收**Home 可稳定渲染一条内容,并能切换到下一条(如实现)
## 3. Onboarding35 页,全部可跳过)
- [ ] **实现 Onboarding 容器页35 页)**
- **状态**:未开始
- **要求**
- 显示进度(例如 `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 后收藏夹可见该内容Dislike 仅记录不影响收藏
- [ ] **在 Home Header 加入入口:收藏夹、设置**
- **状态**:未开始
- **验收**:从 Home 可进入 Favorites 与 Settings
## 6. Favorites仅展示不可取消/清空)
- [ ] **实现 Favorites 页面(只读列表)**
- **状态**:未开始
- **要求**
- 展示 `favorites.items` 对应的内容
- 不提供取消收藏/清空
- **验收**Like 的内容在此页可见;无取消入口
## 7. Settingsversion + 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`,其余语言可后续逐步补齐
- **验收**:页面不出现硬编码长句;主要文案可切换语言生效
## 9. 自测与验收
- [ ] **流程自测(首次/非首次)**
- **状态**:未开始
- **路径**
- 首次启动Onboarding逐页跳过/整体跳过)-> PushPrompt开启/稍后)-> Home
- 非首次:直接 Home
- **验收**:与 `plan.md` 的验收清单一致