Files
ShowenV2/clients/flutter/TASKS.md
showen bff9ec535d feat: Flutter 客户端 App + Web UI APK 下载入口
- 新增 Flutter 跨平台客户端项目 (clients/flutter/)
  - 29 个 Dart 文件: 服务层/状态管理/5个页面/BLE配网
  - BLE 蓝牙配网: 扫描设备、写入WiFi凭据、配网状态监听
  - HTTP API 客户端: 覆盖全部端点 (播放/场景/WiFi/视频/配置/文件/插件)
  - WebSocket 实时通信: 事件流 + 自动重连
  - 暗色主题 Material 3 UI, 中文界面
  - Android 配置: minSdkVersion 21, BLE/网络权限
  - PRD 产品需求文档 + 开发任务看板
- Web UI 添加 APK 下载入口 (routes.rs)
  - 下载弹窗 + 二维码 + /download/{filename} 静态文件路由
- BLE 插件增加自动重连循环 (ble/mod.rs)
- BLE 默认设备名修正为 'Showen' (config.rs)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 02:09:52 +08:00

7.6 KiB
Raw Blame History

Showen Flutter App 开发任务看板

说明

  • 估时单位人时h/ 人日d
  • 优先级P0 = MVP 必须完成P1 = 首发建议完成P2 = 可后续迭代
  • 状态:当前统一标记为 待开始

总体节奏

阶段 目标 预计工时
Sprint 1 脚手架、架构、设备发现、基础网络层 4-5d
Sprint 2 BLE 配网、HTTP 控制、首页/播放控制页 5-6d
Sprint 3 状态机页、网络设置页、WebSocket 实时状态 4-5d
Sprint 4 设置页、视频/配置管理、测试与发布准备 4-5d

预计总工时17-21 人日

模块一:项目基础架构

ID 任务 优先级 预计工时 依赖 状态
A1 创建 Flutter 工程基础目录、环境区分、包管理方案 P0 4h 待开始
A2 搭建路由、主题、全局错误处理、全局 Toast 能力 P0 6h A1 待开始
A3 建立分层架构presentation/application/domain/data P0 6h A1 待开始
A4 建立统一 API Client、错误模型、超时/重试策略 P0 6h A3 待开始
A5 建立本地存储方案(设备历史、设置项) P0 4h A3 待开始
A6 建立日志与调试开关 P1 3h A3 待开始

模块小计29h

模块二:设备发现与连接管理

ID 任务 优先级 预计工时 依赖 状态
D1 设计设备实体与连接状态模型 P0 3h A3 待开始
D2 实现手动输入 IP 连接与可达性校验 P0 4h A4 待开始
D3 实现最近设备列表的本地存储、切换、删除 P0 5h A5,D1 待开始
D4 实现全局当前设备上下文与切换机制 P0 5h D1,D3 待开始
D5 设备连接失败、离线、超时提示与兜底页 P1 4h D2,D4 待开始

模块小计21h

模块三BLE 蓝牙配网

ID 任务 优先级 预计工时 依赖 状态
B1 选型并接入 Flutter BLE 插件,完成 iOS/Android 权限配置 P0 6h A1 待开始
B2 实现扫描 Showen 设备列表与连接流程 P0 8h B1 待开始
B3 实现 GATT Service/Characteristic 封装 P0 6h B1 待开始
B4 实现 SSID/Password/Command 写入与配网命令发送 P0 6h B3 待开始
B5 实现 Status 特征 read/notify 双模式监听与 JSON 解析 P0 8h B3 待开始
B6 实现 BLE 配网页 UI、失败重试、权限引导 P0 8h B2,B4,B5 待开始
B7 实现 BLE 简单控制命令play/pause/next/prev P1 4h B3 待开始
B8 BLE 异常专项测试(权限、断连、超时、重复配网) P1 6h B6 待开始

模块小计52h

模块四HTTP API 控制层

ID 任务 优先级 预计工时 依赖 状态
H1 封装播放控制接口play/pause/next/previous/goto P0 4h A4 待开始
H2 封装状态机接口trigger/scene P0 4h A4 待开始
H3 封装 WiFi 接口status/scan/connect/ap start/stop P0 5h A4 待开始
H4 封装配置接口get config/post config P0 4h A4 待开始
H5 封装视频接口list/upload/delete P1 6h A4 待开始
H6 封装 BLE 状态接口get ble status P1 2h A4 待开始
H7 建立统一响应校验、错误码映射与空响应处理 P0 4h H1,H2,H3,H4 待开始

模块小计29h

模块五WebSocket 实时状态

ID 任务 优先级 预计工时 依赖 状态
W1 建立 WebSocket 连接管理器与事件分发器 P0 6h A3 待开始
W2 解析 status_update / state_update / wifi_update 事件 P0 5h W1 待开始
W3 实现自动重连、退避、前后台切换恢复 P0 6h W1 待开始
W4 将实时状态同步到首页、播放页、状态机页、网络页 P0 5h W2 待开始
W5 实现连接状态提示条与调试日志面板 P1 4h W3 待开始

模块小计26h

模块六:页面开发

ID 任务 优先级 预计工时 依赖 状态
UI1 实现首页:设备状态、快捷控制、当前播放信息 P0 8h D4,H1,W4 待开始
UI2 实现播放控制页大按钮、播放列表、goto 操作 P0 8h H1,W4 待开始
UI3 实现状态机页当前状态、trigger、scene P0 8h H2,W4 待开始
UI4 实现网络设置页BLE 配网、WiFi 管理、BLE 控制 P0 10h B6,H3,H6,W4 待开始
UI5 实现设置页:配置管理、视频管理、关于 P0 10h H4,H5 待开始
UI6 实现底部导航、设备切换入口、通用空态/异常态 P0 6h A2,D4 待开始

模块小计50h

模块七:配置与视频管理增强

ID 任务 优先级 预计工时 依赖 状态
C1 配置查看器JSON 格式化、复制、刷新 P1 4h H4 待开始
C2 配置编辑器:表单/文本双模式评估并实现 MVP P1 8h C1 待开始
C3 视频列表管理:删除确认、刷新状态回显 P1 4h H5 待开始
C4 视频上传(选文件、进度、失败处理) P2 8h H5 待开始

模块小计24h

模块八:质量保障与发布准备

ID 任务 优先级 预计工时 依赖 状态
Q1 编写核心单元测试(模型、解析、状态管理) P0 8h A3,H1,H2,H3,W2 待开始
Q2 编写 Widget 测试(首页、播放页、网络页关键交互) P1 8h UI1,UI2,UI4 待开始
Q3 真机联调清单Android/iOS、BLE、HTTP、WebSocket P0 6h B6,UI1,UI2,UI3,UI4,UI5 待开始
Q4 发布前缺陷收敛、性能优化、崩溃排查 P0 8h Q1,Q2,Q3 待开始
Q5 产出接入说明、测试报告、已知问题列表 P1 4h Q3,Q4 待开始

模块小计34h

并行建议

可并行推进

  1. 基础架构A1-A5完成后可并行推进 D 模块、B1-B3、H 模块、W1。
  2. HTTP 封装和 WebSocket 管理器完成后UI1-UI5 可拆给不同开发者并行开发。
  3. BLE 配网页B6与网络设置页UI4可先做骨架再在 BLE 联调完成后收口。

串行关键链路

  1. A1 -> A3 -> A4 是全局基础链路,必须优先完成。
  2. B1 -> B3 -> B4/B5 -> B6 是 BLE 配网主链路,不能跳步。
  3. W1 -> W2 -> W4 是实时状态闭环核心链路。

关键里程碑验收

里程碑 M1基础可运行

  • 工程可运行
  • 手动输入 IP 可连接设备
  • 基础 HTTP 请求可成功

里程碑 M2首次接入闭环

  • BLE 扫描、连接、配网可用
  • 网络设置页完成基本闭环

里程碑 M3控制闭环

  • 首页、播放页、状态机页可完成核心控制
  • WebSocket 状态实时更新可用

里程碑 M4首发就绪

  • 设置页、视频/配置管理完成
  • 真机联调完成
  • 已知问题可控并形成发布清单

风险备注

  • BLE 插件在 iOS/Android 权限与后台行为差异大,需预留专项联调时间。
  • /api/videos/upload、配置热重载等能力依赖服务端联调结果,建议先保证查看/删除/提交基础能力。
  • 若服务端 WebSocket 事件字段与文档不一致,优先修正客户端解析兼容层,不阻塞主流程。