---
updated: 2026-05-17
---

# 知习 iOS 已实现功能汇总

> 从各设计/计划文档中提取的已完成内容，集中存放。原文档中已移除这些内容，仅保留待推进部分。

---

## 一、项目基础

| 项目 | 状态 |
|------|------|
| SwiftUI iOS 17+ | ✅ |
| 自定义 DesignTokens | ✅ 颜色/渐变/圆角/间距/字体/排版 |
| Xcode 项目 | ✅ 使用 PBXFileSystemSynchronizedRootGroup（objectVersion 77） |
| 目标平台 | iPhone（iOS 17+） |

---

## 二、架构层

### 已完成搭建

| 层 | 说明 |
|------|------|
| Model 层 | 10 个数据实体（AuthModels、User、KnowledgeBase 等） |
| Network 层 | APIClient + APIEndpoint + APIError |
| Storage 层 | KeychainStore + TokenStore |
| Service 层 | 5 个 Service 协议 + 实现 + 20 个 APIEndpoint |
| Auth 体系 | AuthService + AuthServiceProtocol |
| AppSession | @MainActor 全局登录状态，驱动路由分流 |
| ViewModel 层 | 起步：ReviewPlanViewModel、AIChatViewModel、StudyHomeViewModel |
| DesignSystem | DesignTokens.swift：颜色/渐变/圆角/间距/字号/排版 |

---

## 三、页面（22 页全部完成 UI）

### Onboarding 流程
| 页面 | 状态 |
|------|------|
| SplashPage（启动页） | ✅ |
| WelcomePage（欢迎页） | ✅ |
| LoginPage（登录页，仅 Apple 登录） | ✅ |
| OnboardingPage（功能引导） | ✅ |
| GoalSetupPage（学习目标设置） | ✅ |

### 主界面 5-Tab
| Tab | 页面 | 状态 |
|-----|------|------|
| AI | AIHomeView | ✅ |
| AI | DailyThinkingPage | ✅ |
| AI | RecallTestPage | ✅ |
| AI | WeakPointsPage | ✅ |
| AI | AIFeedbackPageView | ✅ |
| AI | AIChatPage | ✅ |
| 知识库 | LibraryHomeView | ✅ |
| 知识库 | LibraryDetailPage | ✅ |
| 知识库 | CreateLibraryPage | ✅ |
| 知识库 | AddKnowledgePage | ✅ |
| 知识库 | ImportPage | ✅ |
| 知识库 | EditKnowledgePage | ✅ |
| 知识库 | KnowledgeDetailPage | ✅ |
| 学习 | StudyHomeView | ✅ |
| 分析 | AnalysisHomeView | ✅ |
| 我的 | ProfileView | ✅ |

### 独立功能页
| 页面 | 状态 |
|------|------|
| ReviewPlanView（复习计划） | ✅ |
| FeedbackView + FeedbackViewModel | ✅ |
| 设置子页面（5 个） | ✅ |

---

## 四、Auth / 登录

- Sign in with Apple 集成（ASAuthorizationController）
- Apple entitlements 已配置
- APIClient 自动注入 Authorization header
- 401 自动 refresh token 重试
- Token 存 Keychain（不存 UserDefaults）
- AppSession 驱动路由（替代 @AppStorage）
- 启动时自动 checkSession → refresh → /users/me

---

## 五、设计系统

### 颜色
- 28 个颜色 token 双主题化（浅色/深色自适应）
- `Color(light:dark:)` 基于 `UITraitCollection.userInterfaceStyle`

### 组件（29 个共享组件）
```
Shared/Components/
├── ZXTabBar, ZXBackHeader, ZXIconBtn, ZXScoreBox
├── ZXAIInputBar, ZXOutlineBtn, ZXQuickAction
├── ZXAIInteractionRow, ZXCardRow, ZXChip
├── ZXImportOption, ZXWeakRow, ZXStatBadge
├── ZXProfileStat, ZXProfileMenuRow, ZXAchievementBadge
├── ZXChartView, ZXSTaskRow, FeatureRow, ReviewTaskRow
├── ZXLoadingView, ZXErrorView, ZXEmptyView
```

### 主题切换
- ColorSchemeManager：系统/浅色/深色三选一
- @AppStorage 持久化
- 4 处 `.preferredColorScheme(.dark)` 已移除
- 13 处内联 `Color(hex:)` 替换为自适应 token

---

## 六、代码质量

| 项目 | 说明 |
|------|------|
| 大文件拆分 | 3 个大文件拆为 15+ 个独立文件 |
| 共享组件集中 | `Shared/Components/` 下 20+ 组件 |
| 加载/错误/空状态 | ZXLoadingView / ZXErrorView / ZXEmptyView |
| 语言系统 | Localizable.strings (Base=中文) + ZXStrings + LanguageManager |
| 反馈页 | FeedbackView + FeedbackViewModel，4 类反馈分类 |
| 设置页 | 5 个子页面 + 外观/语言切换 |

---

## 七、已对接的后端 API

| API | 状态 |
|-----|------|
| POST /api/auth/apple | ✅ |
| POST /api/auth/refresh | ✅ |
| POST /api/auth/logout | ✅ |
| GET /api/users/me | ✅ |
| PATCH /api/users/me | ✅ |

---

## 八、已废弃/清理的内容

- 旧 LoginPage（含手机号/邮箱/微信入口）→ 替换为仅 Apple 登录的 LoginView
- `@AppStorage("hasCompletedOnboarding")` 路由控制 → 替换为 AppSession
- 3 个大文件中内联的子页面定义 → 拆分为独立文件
- 分散在各 View 中的共享组件定义 → 集中到 `Shared/Components/`
- 强制暗黑模式 `.preferredColorScheme(.dark)` → 移除
- 13 处内联 `Color(hex:)` → 替换为 token 引用
