Files
ShowenV2/clients/flutter/TODO.md
showen d30c111c71 feat: M1.1 完成 + M1.2 启动 — 全量更新
M1.1 收尾:
- 24项 P0/P1/P2 bug 修复 (Rust 107 tests + Flutter 15 tests)
- Flutter App v0.3: cupertino_icons 修复, 单元测试, 调试面板, APK 52.6MB
- 示例插件完善: manifest.json + 请求/响应示范 + 7个测试
- API 文档重写 (以 routes.rs 为唯一权威)
- MILESTONES.md 更新至 100%

M1.2 启动:
- P0: 插件管理 API 闭环 (handle_manager_message Custom 分支 + broadcast_plugin_states)
- ServiceManager 集成测试 8/8 (tests/m1_2_service_manager.rs)
- M1.2 测试计划 (docs/M1.2_TEST_PLAN.md, 18个E2E场景)
- 动态插件系统: auto_rollback + version_manager GC + 路径穿越防护

总计: Rust 115/115 测试, Flutter 15/15 测试, 零 warning

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 18:12:42 +08:00

62 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Flutter App 待优化清单
> 生成时间: 2026-03-14
> 最后更新: 2026-03-14
> 当前完成度: ~95%, APK 待重编译
## P0 — 阻塞上线
### 1. 设备 IP 持久化 + 多设备支持
- ~~`main.dart:20` hardcoded `127.0.0.1:8080`,重启丢失~~ ✅ 已从持久化初始化
- ~~需要: SharedPreferences 存储设备历史 (最近10台)~~ ✅ device_storage_service.dart
- 需要: 顶栏设备切换下拉菜单 ⏳ 赵雨薇处理中
- 需要: 连接前验证 `/api/status` 可达性 ⏳ 赵雨薇处理中
### 2. WebSocket 重连增强 ✅ 已完成
- ~~`web_socket_service.dart` 固定 2 秒重连,无退避~~ ✅ 指数退避 2s→max 60s
- ~~需要: 顶层连接状态横幅~~ ✅ connection_status_banner.dart
- ~~需要: 手动重试按钮~~ ✅ manualReconnect()
### 3. HTTP baseUrl 动态化 ✅ 已完成
- ~~HttpApiService/WebSocketService 的 URL 需跟随设备切换动态更新~~ ✅
- ~~DeviceProvider 应成为全局设备上下文~~ ✅
## P1 — 应该有
### 4. 视频管理 UI (Settings 页) ✅ 已完成
- ~~视频列表 + 删除确认弹窗~~ ✅ settings_screen.dart:266-354
- ~~刷新按钮~~ ✅ settings_screen.dart:282
### 5. 配置 JSON 编辑器 ✅ 已完成
- ~~需要: 复制到剪贴板~~ ✅ settings_screen.dart:559
- ~~需要: 切换按钮 (表单/JSON)~~ ✅ 赵雨薇完成
### 6. BLE 简易控制命令 ✅ 已完成
- ~~play/pause/next/prev BLE 按钮~~ ✅ network_screen.dart:115-183
### 7. 全页面下拉刷新 ✅ 已完成
- ~~所有 5 个页面~~ ✅ RefreshIndicator 全覆盖
## P2 — 锦上添花
### 8. 视频上传 UI ⏳ 受限
- file_picker 包在 ARM64 设备上无法下载(网络超时)
- 上传按钮已保留,当前显示"即将推出"提示
- 可通过 Web UI 上传视频
### 9. 单元测试 & Widget 测试 ✅ 已完成
- ~~目前零测试覆盖~~ ✅ 15 个测试全部通过
- ~~优先: models 解析、HttpApiService 错误处理、核心页面交互~~ ✅ test/models/models_test.dart + test/services/http_api_service_test.dart
### 10. 调试日志面板 ✅ 已完成
- ~~本地事件日志查看器~~ ✅ debug_screen.dart + debug_provider.dart
- ~~BLE/WebSocket/HTTP 事件时间线~~ ✅ 筛选 Chips + 颜色区分标签 + 500 条上限
## 已知技术债
- WebSocket 事件解析假设固定结构,缺 schema 校验
- API 响应全用 `Map<String, dynamic>`,缺类型安全
- 无依赖注入框架
- 无错误边界 Widget (ErrorWidget.builder)
- Gradle/Kotlin/AGP 版本偏旧 (有 warning可用 `--android-skip-build-dependency-validation` 绕过)