Files
inp2p/docs/android-mvp-plan.md
T

62 lines
2.3 KiB
Markdown
Raw 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.
# INP2P Android 客户端开工计划(MVP → V1)
## 目标
在不改动核心服务端协议的前提下,先交付“可运维、可观察、可控风险”的安卓客户端。
## 分阶段路线
### Phase 0:开工准备(1-2 天)
- 明确 API 契约(当前后端已具备)
- 固化角色与权限矩阵(admin/operator/apikey)
- 建立 Android 项目骨架(Kotlin + Compose + Retrofit + Room + WorkManager)
- 建立日志/崩溃/埋点规范
### Phase 1:MVP(5-7 天)
- 登录/会话管理(`/api/v1/auth/login`)
- 节点列表与状态(`/api/v1/nodes`)
- 手动 connect(`/api/v1/connect`)
- 远程推配置(`/api/v1/nodes/apps`)
- 节点踢下线(`/api/v1/nodes/kick`,仅 admin/operator)
- SDWAN 基础配置只读 + 编辑(按权限)
- 审计查看(admin only,`/api/v1/admin/audit`)
### Phase 2:增强(7-10 天)
- 设置页:高级开关联动(`/api/v1/admin/settings`)
- 断线重连与 Token 续期提示
- 更完整的错误态/空态/离线态
- 细化操作确认(高风险动作二次确认)
### Phase 3:V1(后续)
- VpnService + TUN 数据面接入
- 网络切换稳定性(Wi-Fi/4G)
- 前台服务保活与电量策略优化
## MVP 范围边界(本次明确)
- ✅ 做:控制面(鉴权、查询、下发)
- ❌ 不做:首版直接上 TUN 全数据面
## 技术选型(建议)
- 语言:Kotlin
- UI:Jetpack Compose
- 网络:Retrofit + OkHttp
- 本地存储:Room + EncryptedSharedPreferences
- 并发:Kotlin Coroutines + Flow
- 任务调度:WorkManager
- 最低版本:Android 8.0+
## 核心风险与对策
1. Token 过期导致操作失败
- 对策:统一 401 拦截,跳登录;关键动作前校验登录态。
2. 移动网络切换导致请求失败
- 对策:重试策略(指数退避)、弱网提示、幂等操作提示。
3. 高危动作误触(kick/connect/sdwan)
- 对策:二次确认 + 审计可追踪 + 角色按钮可见性控制。
4. 后端字段变动影响兼容
- 对策:DTO 宽容解析 + 版本检查 + 契约文档锁定。
## 验收标准(MVP)
- 能用 admin/operator 成功登录并执行对应权限动作
- apikey 仅可读,写操作被正确拒绝
- 关键操作成功/失败信息明确可见
- 审计与后端一致(至少覆盖 connect/kick/apps/sdwan)