# 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 事件字段与文档不一致,优先修正客户端解析兼容层,不阻塞主流程。