# 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` 绕过)
