一个面向 macOS 的雅思精读与写作积累工具。它不把阅读句子拆成孤立的单词,而是保留整句和原始语境,帮助学习者记录翻译、重点表达、题型错因和写作中的可复用句式。
项目使用 SwiftUI 和 Swift Package Manager,无第三方依赖,数据默认只保存在本机。
- 粘贴雅思阅读原文,自动拆分为句子。
- 保存整句,并自动保留所在段落作为上下文。
- 为整句添加翻译。
- 主窗口采用左录入、右当前句子的双栏布局,避免页面随着记录增加而无限变长。
- 阅读句库通过独立的 macOS 窗口打开,主页面只保留常用入口。
- 句库中的句子默认折叠,只显示原句、来源和日期;展开后再显示翻译、重点表达和上下文。
- 单独添加词、短语或框架表达,并在原句中使用黄色块高亮。
- 重点表达添加后自动收起,需要修改时可再次展开。
- 支持常见词形和短语模板匹配,例如:
be geared toward sth可以匹配was rigorously geared towardgear、geared、gearing可以互相匹配rigorous和rigorously可以互相匹配
- 提供随机回看,可隐藏或显示翻译、重点表达和上下文。
- 记录阅读错题,包括题型、我的答案、正确答案、来源和错因。
- 用来复盘 Y/N/NG、T/F/NG、Heading、Matching 等题型的判断问题。
- 删除句子、重点表达和错题前都会先要求确认。
-
粘贴优秀雅思范文,自动拆分为句子。
-
保存整句和原始语境。
-
主窗口采用左录入、右当前句子的双栏布局。
-
写作句库通过独立的 macOS 窗口打开,句子默认折叠。
-
为句子记录可复用句型或结构,例如:
time + saw/witnessed + extent + change in subject -
在句子中标记并高亮可复用表达,例如:
The years between 1999 and 2009 saw a significant hike in China's GDP. -
建立独立的表达库,记录:
- 程度词,例如
subsequently - 变化动词,例如
jump、surge、soar、peak at、reach - 数字替换,例如
20% = a fifth
- 程度词,例如
-
记录写作错题,包括错误类型、原句、改正、来源和原因。
-
适合复盘时态、主谓一致、搭配、词汇、句式、拼写和连贯问题。
-
表达库和写作错题区域限制显示高度,避免主页面持续向下增长。
-
删除写作句子、表达和错题前都会先要求确认。
-
不要求登录。
-
不访问网络。
-
不接入云服务。
-
不上传学习内容。
-
数据保存在:
~/Library/Application Support/IELTSStudio/data.json
删除应用不会自动删除这份数据;需要清理时手动删除上述目录。
- macOS 13 或更高版本
- Xcode 15 或兼容的完整 Xcode 工具链
- Swift 5.8 或更高版本
git clone <your-repository-url>
cd IELTSStudio
open Package.swift选择 IELTSStudio scheme 后运行。
先确认命令行工具指向完整的 Xcode:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
swift run如果只安装了 Command Line Tools,SwiftPM 可能报错:
unable to lookup item 'PlatformPath' from command line tools installation
这种情况下安装完整 Xcode,并重新执行 xcode-select。
项目可以把同一份源码同步构建到:
outputs/IELTSStudio.app~/Desktop/IELTSStudio.app
执行:
./scripts/build-both-apps.sh更完整的构建说明见 BUILDING.md。
.
├── Package.swift
├── README.md
├── BUILDING.md
├── Packaging
│ └── Info.plist
├── scripts
│ ├── build-macos-app.sh
│ └── build-both-apps.sh
└── Sources
└── IELTSStudio
├── IELTSStudioApp.swift
├── ContentView.swift
├── Models.swift
├── Store.swift
├── TextProcessing.swift
├── Highlighting.swift
├── Components.swift
├── ReadingView.swift
└── WritingView.swift
主要模块:
Models.swift:阅读、写作、表达和错题的数据模型。Store.swift:本地 JSON 读写和应用状态。TextProcessing.swift:段落与句子拆分。Highlighting.swift:短语模板、词形变化和句中高亮。ReadingView.swift:阅读录入、当前句子、独立阅读句库与阅读错题。WritingView.swift:范文录入、当前句子、独立写作句库、表达库与写作错题。scripts/build-both-apps.sh:一次构建并更新两个 App 位置。
这是一个可继续开发和发布的早期 macOS 版本。核心数据模型和界面已经建立,代码结构适合继续补充以下能力:
- 导出和导入 JSON 备份。
- macOS 菜单栏快捷录入。
- 基于复习记录的间隔重复。
- iCloud 或用户自选文件夹同步。
- IELTS 题型与写作错误统计。
- 屏幕取词或剪贴板快速收集。
- 签名、公证和
.dmg发布流程。
- 优先保留完整语境,不把句子退化为孤立单词表。
- 本地优先,学习数据默认不离开设备。
- 用小而清楚的功能解决具体复习问题。
- 不为了功能数量增加不必要的账号、服务或依赖。