一个帮你「精读」英文文章的极简 iOS App —— 点词查词典、逐段朗读、本地保存。
EnNotes 是一个纯本地、零依赖、不联网的 iOS 英语阅读工具。把一篇英文文章粘贴进来,它会自动按段落拆分,让你可以点任意单词查系统词典、逐段或整篇朗读、随时复制段落。所有文章只保存在你自己的设备上。
- 📋 导入文章:粘贴或手动输入一篇英文文章,自动按段落拆分
- 👆 点词查词:点正文里任意单词,弹出 iOS 系统词典释义(
UIReferenceLibraryViewController) - 🔊 朗读:逐段朗读或整篇朗读,默认英式发音(
AVSpeechSynthesizer,en-GB) - 📑 分段阅读:每段独立成卡片,可单独复制
- 粗体渲染:支持
**xxx**Markdown 粗体 - 💾 本地保存:文章以 JSON 存在 App 沙盒(
Application Support/EnNotes/notes.json),不联网、不上传
- SwiftUI + UIKit(用
UIViewRepresentable实现可点词的文本视图) - AVFoundation(文字转语音)
- 系统词典
UIReferenceLibraryViewController - 纯本地
JSONEncoder/JSONDecoder持久化,无第三方依赖、无网络请求
- Xcode 26 及以上
- iOS 26 及以上(Deployment Target)
git clone https://github.com/prgding/EnNotes.git
cd EnNotes
open EnNotes.xcodeproj在 Xcode 里选择 EnNotes scheme,选一个模拟器或真机,按 ⌘R 运行。
EnNotes/
├── EnNotesApp.swift # App 入口
├── ContentView.swift # 文章列表
├── NoteEditorView.swift # 阅读 / 朗读 / 查词主界面
├── ArticleEditView.swift # 导入 / 编辑文章
├── ParagraphReaderView.swift # 可点词的段落视图(UIKit)
├── DictionaryLookupView.swift # 系统词典弹窗
├── SpeechController.swift # 朗读控制(AVSpeechSynthesizer)
├── Note.swift # 数据模型 + Markdown 粗体解析
├── NotesStore.swift # 本地存储
└── Assets.xcassets # 图标 / 配色
个人自用项目,iOS only。