# Flutter App 待优化清单 > 生成时间: 2026-03-14 > 当前完成度: ~68%, APK 已编译 (51MB) ## P0 — 阻塞上线 ### 1. 设备 IP 持久化 + 多设备支持 - `main.dart:20` hardcoded `127.0.0.1:8080`,重启丢失 - 需要: SharedPreferences 存储设备历史 (最近10台) - 需要: 顶栏设备切换下拉菜单 - 需要: 连接前验证 `/api/status` 可达性 ### 2. WebSocket 重连增强 - `web_socket_service.dart` 固定 2 秒重连,无退避 - 需要: 指数退避 (2s→4s→8s→16s→max 60s) - 需要: 顶层连接状态横幅 (Reconnecting... / Offline) - 需要: 手动重试按钮 ### 3. HTTP baseUrl 动态化 - HttpApiService/WebSocketService 的 URL 需跟随设备切换动态更新 - DeviceProvider 应成为全局设备上下文,驱动所有服务重连 ## P1 — 应该有 ### 4. 视频管理 UI (Settings 页) - API 已有 getVideos(),但 UI 无视频列表展示 - 需要: 视频列表 + 删除确认弹窗 - 需要: 刷新按钮 ### 5. 配置 JSON 编辑器 - 当前只有表单模式,缺 raw JSON 编辑模式 - 需要: 切换按钮 (表单/JSON) - 需要: 复制到剪贴板 ### 6. BLE 简易控制命令 - PRD §8.6 要求: 近场调试用 play/pause/next/prev BLE 按钮 - Network 页添加 BLE 控制区域 ### 7. 全页面下拉刷新 - 目前只有 Home 页有 RefreshIndicator - Playback / Trigger / Network / Settings 都需要 ## P2 — 锦上添花 ### 8. 视频上传 UI - 需要 file_picker 依赖 - 进度条 + multipart upload ### 9. 单元测试 & Widget 测试 - 目前零测试覆盖 - 优先: models 解析、HttpApiService 错误处理、核心页面交互 ### 10. 调试日志面板 - 本地事件日志查看器 - BLE/WebSocket/HTTP 事件时间线 ## 已知技术债 - WebSocket 事件解析假设固定结构,缺 schema 校验 - API 响应全用 `Map`,缺类型安全 - 无依赖注入框架 - 无错误边界 Widget (ErrorWidget.builder) - Gradle/Kotlin/AGP 版本偏旧 (有 warning,可用 `--android-skip-build-dependency-validation` 绕过)