wangdl 1c0a625192 feat: add "阅读原文件" button to KnowledgeDetailPage
Blue gradient button at bottom of plain text content view.
Writes content to temp .md file and navigates to MaterialReaderView,
which triggers reading event collection.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 21:19:05 +08:00
..

知习 ZhiXi — iOS App

AI-first 系统化学习 AppSwiftUI + 深色主题。

导航关系

Splash2s 自动跳转)
  ↓
Welcome欢迎页→ 已有账号 → Login
  ↓ 开始使用
Login手机号/邮箱登录)
  ↓ 登录成功
Onboarding4 步引导:输入知识 / 主动输出 / AI 分析 / 掌握知识)
  ↓ 下一步
GoalSetup学习目标 / 方法 / 时间)
  ↓ 开始学习
┌──────────────────────────────────────────────────────┐
│                  5-Tab 主界面                         │
│                                                      │
│  [AI]       [知识库]      [学习]      [分析]    [我的] │
│   │            │            │           │         │   │
│   ├─ 开始回答   ├─ 卡片点击   ├─ 任务点击   │         │   │
│   │  → Daily   │  → Detail  │  → Recall  │         │   │
│   │   Thinking │            │  / Feedbk  │         │   │
│   │            ├─ 创建      │            │         │   │
│   ├─ 快捷操作   │  → Create  │            │         │   │
│   │  → Recall  │            │            │         │   │
│   │  / Weak    │  ┌ 知识点    │            │         │   │
│   │            │  ├ Detail   │            │         │   │
│   └─ 互动列表   │  │  → KnwlD │            │         │   │
│      → AIChat  │  ├ Add       │            │         │   │
│                │  ├ Import    │            │         │   │
│                │  └ Edit      │            │         │   │
└──────────────────────────────────────────────────────┘

页面清单(对照 React 原型 22 页)

# 页面 文件 状态
1 Splash 启动页 AIStudyAppApp.swiftSplashPage
2 Welcome 欢迎页 AIStudyAppApp.swiftWelcomePage
3 Login 登录页 AIStudyAppApp.swiftLoginPage
4 Onboarding 引导页 AIStudyAppApp.swiftOnboardingPage
5 GoalSetup 目标设置 AIStudyAppApp.swiftGoalSetupPage
6 AIHome AI 首页 Features/AI/AIHomeView.swift
7 LibraryHome 知识库首页 Features/Library/LibraryHomeView.swift
8 StudyHome 学习工作台 Features/Study/StudyHomeView.swift
9 AnalysisHome 学习分析 Features/Analysis/AnalysisHomeView.swift
10 Profile 我的 Features/Profile/ProfileView.swift
11 AIChat AI 对话 Features/AI/AIChatPage.swift
12 DailyThinking 今日思考 Features/AI/DailyThinkingPage.swift
13 RecallTest 回忆测试 Features/AI/RecallTestPage.swift
14 WeakPoints 薄弱点分析 Features/AI/WeakPointsPage.swift
15 AIFeedback AI 反馈 Features/AI/AIFeedbackPageView.swift
16 Settings 设置 Features/Profile/SettingsView.swift
17 GoalSetting 学习目标 Features/Profile/GoalSettingDetailView.swift
18 MethodPreference 方法偏好 Features/Profile/MethodPreferenceView.swift
19 FeedbackForm 帮助反馈 Features/Profile/FeedbackFormView.swift
20 EditProfile 编辑资料 Features/Profile/ProfileView.swiftEditProfilePage
21 NotificationList 通知 Features/Profile/ProfileView.swiftNotificationListView
22 LibrarySearch 搜索知识库 Features/Library/LibraryHomeView.swift
23 LibraryDetail 知识库详情 Features/Library/LibrarySubpages.swift
24 AddKnowledge 添加知识点 Features/Library/LibrarySubpages.swift
25 KnowledgeDetail 知识点详情 Features/Library/LibrarySubpages.swift
26 EditKnowledge 编辑知识点 Features/Library/LibrarySubpages.swift
27 CreateLibrary 创建知识库 Features/Library/LibrarySubpages.swift
28 Import 导入资料 Features/Library/LibrarySubpages.swift
29 ActiveRecall 回忆测试 Features/Study/StudyHomeView.swiftActiveRecallView
30 ReviewCard 间隔复习 Features/Study/ReviewCardView.swift
31 LearningSession 学习会话 Features/Study/LearningSessionView.swift

项目结构

AIStudyApp/
├── AIStudyAppApp.swift        # 根路由 + Splash/Welcome/Login/Onboarding/GoalSetup
├── ContentView.swift           # 5-Tab 主界面 + ZXTabBar + ZXIconBtn + ZXScoreBox + ZXAIInputBar
├── Core/
│   ├── DesignSystem/
│   │   ├── DesignTokens.swift  # 颜色 / 渐变 / 圆角 / 间距 / 字号 / zxFontScaled
│   │   └── ZXAnimations.swift  # ZXPressModifier / ZXPullToRefresh / ZXLoadingView
│   ├── Models/
│   │   └── APIModels.swift     # KnowledgeItem 等数据模型
│   └── Navigation/
│       └── Route.swift         # 统一路由枚举 + navigationDestination 映射
└── Features/
    ├── AI/
    │   ├── AIHomeView.swift         # AI 首页
    │   ├── DailyThinkingPage.swift  # 今日思考
    │   ├── AIChatPage.swift         # AI 对话
    │   ├── RecallTestPage.swift     # 回忆测试
    │   ├── WeakPointsPage.swift     # 薄弱点分析
    │   └── AIFeedbackPageView.swift # AI 反馈
    ├── Library/
    │   ├── LibraryHomeView.swift    # 知识库首页 + 搜索
    │   └── LibrarySubpages.swift    # 创建/详情/添加/导入/知识点详情/编辑
    ├── Study/
    │   ├── StudyHomeView.swift      # 学习工作台
    │   ├── ReviewCardView.swift     # 间隔复习卡片
    │   └── LearningSessionView.swift # 学习会话
    ├── Analysis/
    │   └── AnalysisHomeView.swift   # 学习分析
    └── Profile/
        ├── ProfileView.swift        # 我的页 + EditProfilePage + NotificationListView
        ├── SettingsView.swift       # 设置
        ├── GoalSettingDetailView.swift # 学习目标设置
        ├── MethodPreferenceView.swift  # 学习方法偏好
        └── FeedbackFormView.swift   # 帮助与反馈

设计系统

类别 Token
主背景 Color.zxBg0 #0F0F1A
页面渐变 ZXGradient.page #0F0F1A → #12122A
品牌紫 Color.zxPurple #7C6EFA
品牌橙 Color.zxOrange #F97316
文字主色 Color.zxF0 #F0F0FF
卡片圆角 ZXRadius.xl3 20
按钮高度 ZXSize.buttonH 42
页面水平间距 ZXSpacing.pageHPadding 20
状态栏高度 ZXSpacing.statusBarH 44
TabBar 高度 ZXSpacing.tabBarH 83

以上全部从 React 原型 1:1 像素级提取。

运行

Xcode 打开 AIStudyApp.xcodeproj,选择 iPhone 17 Pro 模拟器,Cmd+R

Clean Build 之前先:
rm -rf ~/Library/Developer/Xcode/DerivedData/AIStudyApp-*

最近修复记录

2026-05-19 — NavigationStack 迁移 + Dynamic Type

  • 路由系统重构:全部 NavigationLink(destination:)NavigationLink(value: Route),新增 Core/Navigation/Route.swift 统一路由枚举
  • Dynamic Type 支持:新增 zxFontScaled ViewModifier基于 @ScaledMetric
  • 手势冲突修复ZXPressModifierDragGesture 改为 onLongPressGesture(minimumDuration: .infinity) 解决与 ScrollView 冲突
  • 触控目标放大ZXIconBtn 36pt → 44pt
  • 大文件拆分:从 DailyThinkingPage.swift 拆出 4 个子页面,从 SettingsView.swift 拆出 3 个子页面
  • TabBar 胶囊指示器:选中 Tab 上方紫色 Capsule 替代旧圆形指示器
  • ZXSTask 颜色模型Color → hex String,支持 Hashable 路由参数
  • ZXAIInputBar 重构提取为共享组件padding 由调用方控制