Files
mindfulness/spec_kit/Onboarding App Shell/tasks.md
2026-01-28 22:13:55 +08:00

4.7 KiB
Raw Blame History

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 进入 FavoritesSettings
    • 验收:启动后不出现 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

    • 状态:未开始
    • 字段idtext
    • 验收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'
      • Likeid 追加到 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 的验收清单一致