一款基于词源学习的 iOS 英语词汇构建应用,通过词源解释和多阶段练习,帮助用户深度理解和记忆英语单词。 无需登录或联网。
- 词根词源学习:通过理解词根含义,快速掌握大量同源词汇
- 词源追溯:查看单词的历史演变和语言来源
- 关联词:展示更多同源词汇
采用四阶段渐进式学习法,符合认知科学原理:
- 📖 学习阶段:展示单词释义和词源、支持英式/美式发音
- ✅ 选择阶段:通过选择题巩固记忆
- 💭 背诵阶段:主动回忆,自我评估记忆效果
- 📊 总结阶段:查看学习成果
- 快速搜索:支持模糊匹配和历史记录
- 详细释义:包含定义、音标、例句、同义词等
- HTML 渲染:精美展示词典内容
- 离线使用:基于 SQLite 数据库,无需网络
- 记忆历史:记录所有学过的单词和词根
- 搜索历史:快速回顾查过的词汇
- 学习统计:可视化展示学习进度和效果
- 每天推荐一个词根
- 显示相关单词列表
- 一键开始记忆训练
- 支持手动刷新换取新词根
- 实时搜索建议
- 简洁释义预览
- 搜索历史记录(支持清空)
多标签页展示:
- 📝 释义:完整的词义解释、例句
- 🔗 关联词:同源词、派生词
- 🌿 词源:词源分析、历史演变、词根
交互功能:
- 单词发音
- 记忆练习
- 卡片式展示单词完整信息
- HTML 富文本渲染词典内容
- 左右滑动切换单词
- 支持跳过不需要练习的单词
- 从相关词汇中生成干扰项
- 即时反馈正确与否
- 答题统计
- 仅显示单词拼写
- 自我评估:认识/不认识
- 点击可查看答案
- 可视化展示学习成果
- 分类展示掌握情况:
- 支持重新开始练习
- 按类型分类:单词/词根
- 时间倒序排列
- 支持删除和清空
- 点击可直接查看详情
- SwiftUI:现代化的声明式 UI 框架
- Combine:响应式数据流管理
- NavigationStack:灵活的导航系统
- GRDB:Swift 版 SQLite 封装
- SQLite 数据库:存储词典数据
- UserDefaults:本地配置和历史记录
Views/
├── ContentView.swift // 主页(搜索、词根推荐)
├── WordDetail/ // 单词详情模块
│ ├── WordDetailView.swift
│ ├── WordDetailHeaderSection
│ ├── WordDetailDefinitionSection
│ ├── WordDetailEtymologySection
│ └── WordDetailNearSynonymsSection
├── Practice/ // 练习模块
│ ├── PracticeLoaderView
│ ├── LearningStageView
│ ├── QuizStageView
│ ├── RecallStageView
│ └── SummaryStageView
├── Memory/ // 记忆历史
│ └── MemoryHistoryView.swift
└── Root/ // 词根模块
├── RootCardView
├── RootDetailSection
└── RootCognatesTreeSection
VocabularyBuilder/
├── VocabularyBuilderApp.swift // 应用入口
├── Models/ // 数据模型
│ ├── WordEntry.swift // 单词实体
│ ├── CommonRoot.swift // 词根实体
│ ├── PracticeSession.swift // 练习会话
│ └── DictionaryViewModel.swift // 核心视图模型
├── Views/ // 界面视图
│ ├── ContentView.swift // 主页
│ ├── WordDetail/ // 单词详情
│ ├── Practice/ // 练习系统
│ ├── Memory/ // 记忆历史
│ ├── Root/ // 词根相关
│ ├── Navigation/ // 导航
│ ├── Components/ // 通用组件
│ └── HTML/ // 单词卡片渲染
├── Data/ // 数据访问层
│ ├── DictionaryRepository.swift // 数据仓库协议
│ ├── DatabaseDictionaryRepository // SQLite 实现
│ └── DictionaryDatabase.swift // 数据库连接
├── Services/ // 服务层
│ └── SpeechService.swift // 语音服务
├── Bundle/ // 资源文件
│ ├── merged.sqlite // 词典数据库
│ └── common_roots.csv // 常用词根
└── Assets.xcassets/ // 图片资源
- WebKit 预热:启动时预加载 WebView 进程
- 延迟加载:按需加载详细内容
- 数据库索引:优化搜索性能
- 异步处理:避免主线程阻塞
- iOS 16.0 或更高版本
- Xcode 15.0 或更高版本
- Swift 5.9 或更高版本
项目使用 Swift Package Manager 管理依赖:
- GRDB (>= 6.0):SQLite 数据库访问
- 克隆项目
git clone [项目地址]
cd VocabularyBuilder- 打开项目
open VocabularyBuilder.xcodeproj-
安装依赖 Xcode 会自动下载 Swift Package Manager 依赖
-
准备数据库
Bundle/merged.sqlite文件下载路径: Google Drive -
运行应用 选择目标设备或模拟器,点击运行按钮(⌘R)
- 艾宾浩斯记忆法重复记忆
- 整理词根演变树
- 获取字典的商业许可
让词源学习变得简单而有趣! 🚀


