ios-projects/AIStudyApp/docs/gap-analysis-1.md

158 lines
6.5 KiB
Markdown
Raw Normal View History

# AIStudyApp 现状与缺口分析 - 第一篇:现有资源盘点
> 生成日期2026-05-11
> 后端地址http://81.70.187.179:3001
---
## 一、项目文件结构
```
AIStudyApp/
├── AIStudyAppApp.swift # 应用入口,含 5 步 Onboarding 流程
├── ContentView.swift # 主 Tab 框架5 个 Tab + 自定义底部栏)
├── Core/
│ ├── DesignSystem/DesignTokens.swift # 颜色/渐变/间距/字体全局设计令牌
│ ├── Models/APIModels.swift # 20+ DTO 数据模型
│ ├── Network/
│ │ ├── APIClient.swift # 通用 HTTP 客户端actor, async/await
│ │ ├── APIConfig.swift # baseURL 配置
│ │ └── APIError.swift # 错误枚举(网络/服务端/解码/认证)
│ └── Services/APIService.swift # 8 个服务类15 个公开方法
├── Features/
│ ├── AI/
│ │ ├── AIHomeView.swift # AI 首页 + ZXQuickAction + ZXAIInteractionRow 组件
│ │ └── DailyThinkingPage.swift # 每日思考题 + RecallTestPage / WeakPointsPage /
│ │ # AIFeedbackPageView / AIChatPage 子页面
│ ├── Analysis/
│ │ └── AnalysisHomeView.swift # 学习分析页 + ZXChartView 折线图 + ZXWeakRow 薄弱点
│ ├── Library/
│ │ ├── LibraryHomeView.swift # 知识库列表首页
│ │ └── LibrarySubpages.swift # CreateLibraryPage / LibraryDetailPage /
│ │ # AddKnowledgePage / KnowledgeDetailPage /
│ │ # ImportPage / EditKnowledgePage
│ ├── Profile/
│ │ └── ProfileView.swift # 个人中心页
│ └── Study/
│ └── StudyHomeView.swift # 学习工作台 + 今日任务 + 周活跃柱状图
└── Info.plist # 手动管理ATS例外 / Bundle元数据等
```
---
## 二、5 个 Tab 页面清单
| Tab | 标签 | SF Symbol | View |
|-----|------|-----------|------|
| 1 | AI | `brain.head.profile` | AIHomeView |
| 2 | 知识库 | `books.vertical.fill` | LibraryHomeView |
| 3 | 学习 | `bolt.fill` | StudyHomeView |
| 4 | 分析 | `chart.bar.fill` | AnalysisHomeView |
| 5 | 我的 | `person.fill` | ProfileView |
---
## 三、所有页面/子页面总览(共 21 个)
### AI 模块1 主 + 4 子)
| 页面 | 数据来源 | 核心功能 |
|------|---------|---------|
| AIHomeView | 🔴硬编码 | API 状态检测、思考题卡片、快捷操作、互动记录、提问输入栏 |
| DailyThinkingPage | 🔴硬编码 | AI 思考题展示 + 回答提交 |
| RecallTestPage | 🔴硬编码 | 回忆测试输入 |
| WeakPointsPage | 🔴硬编码 | 薄弱知识点静态列表 |
| AIFeedbackPageView | 🔴硬编码 | AI 反馈评分 + 操作入口 |
| AIChatPage | 🔴硬编码 | AI 对话气泡界面 |
### 知识库模块1 主 + 6 子)
| 页面 | 数据来源 | 核心功能 |
|------|---------|---------|
| LibraryHomeView | 🔴硬编码 | 知识库列表 + 搜索框 + 创建入口 |
| CreateLibraryPage | 🔴静态 | 创建表单(名称+描述) |
| LibraryDetailPage | 🔴硬编码 | 知识点静态列表 |
| AddKnowledgePage | 🔴静态 | 添加知识点表单 |
| KnowledgeDetailPage | 🔴硬编码 | 知识点详情+标签+复习/费曼入口 |
| ImportPage | 🔴静态 | 导入方式选择(拍照/文件/链接/相册) |
| EditKnowledgePage | 🔴静态 | 编辑知识点表单 |
### 学习模块1 主)
| 页面 | 数据来源 | 核心功能 |
|------|---------|---------|
| StudyHomeView | 🔴硬编码 | 今日进度环、任务列表5个任务、本周活跃柱状图 |
### 分析模块1 主)
| 页面 | 数据来源 | 核心功能 |
|------|---------|---------|
| AnalysisHomeView | 🔴硬编码 | 4项统计徽章、掌握度7日折线图、薄弱知识点列表 |
### 个人中心1 主)
| 页面 | 数据来源 | 核心功能 |
|------|---------|---------|
| ProfileView | 🔴硬编码 | 个人卡片、菜单列表、成就徽章 |
### 启动流程5 步 Onboarding
| 步骤 | 页面 | 功能 |
|------|------|------|
| Step 0 | SplashPage | 品牌开屏2 秒自动跳转 |
| Step 1 | WelcomePage | 3 大功能介绍 |
| Step 2 | LoginPage | 手机号/邮箱 + 密码表单 + 微信/Apple 登录入口 |
| Step 3 | OnboardingPage | 4 步功能轮播 |
| Step 4 | GoalSetupPage | 学习目标/方法/每日时长选择 |
---
## 四、APIService 已封装方法15 个)
| 服务类 | 方法 | 接口 |
|--------|------|------|
| WaitlistService | `join(...)` | POST /waitlist |
| | `stats()` | GET /waitlist/stats |
| AuthService | `appleLogin(...)` | POST /auth/apple |
| | `logout()` | POST /auth/logout |
| UserService | `myProfile()` | GET /users/me |
| | `updateProfile(...)` | PATCH /users/me |
| KnowledgeBaseService | `list()` | GET /knowledge-bases |
| | `create(...)` | POST /knowledge-bases |
| | `detail(id:)` | GET /knowledge-bases/:id |
| KnowledgeItemService | `list(baseId:)` | GET /knowledge-items |
| | `detail(id:)` | GET /knowledge-items/:id |
| | `create(...)` | POST /knowledge-items |
| AIAnalysisService | `analyze(...)` | POST /ai-analysis |
| ActivityService | `summary()` | GET /activity/summary |
| ReviewService | `due()` | GET /reviews/due |
| FocusItemService | `list()` | GET /focus-items |
| FeedbackService | `submit(...)` | POST /feedback |
---
## 五、后端接口 vs App 覆盖对照表
| 后端模块 | 接口数 | App 覆盖 | 状态 |
|----------|--------|---------|------|
| System | 3 | 0 | ❌ 无 |
| Auth | 3 | 2Service 有View 未接) | 🔶 |
| Users | 3 | 2Service 有View 未接) | 🔶 |
| KnowledgeBase | 5 | 3Service 有View 未接) | 🔶 |
| KnowledgeItems | 4 | 3Service 有View 未接) | 🔶 |
| DocumentImport | 2 | 0 | ❌ 无 |
| LearningSession | 3 | 0 | ❌ 无 |
| ActiveRecall | 2 | 0 | ❌ 无 |
| AIAnalysis | 3 | 1Service 有View 未接) | 🔶 |
| FocusItems | 4 | 1Service 有View 未接) | 🔶 |
| Review | 2 | 1Service 有View 未接) | 🔶 |
| LearningActivity | 2 | 1Service 有View 未接) | 🔶 |
| Notifications | 2 | 0 | ❌ 无 |
| Feedback | 4 | 1Service 有View 未接) | 🔶 |
| Waitlist | 3 | 2Service 有View 未接) | 🔶 |
> 覆盖率Service 层 15/48 = 31%View 层实际接入 0/48 = 0%