# EnglishLearn **Repository Path**: leeos/english-learn ## Basic Information - **Project Name**: EnglishLearn - **Description**: EnglishLearn - 单词学习 APP 这是一个 iOS 单词学习应用,支持单词卡片滑动浏览和发音播放功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-03 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EnglishLearn - 单词学习 APP ## 项目说明 这是一个 iOS 单词学习应用,支持单词卡片滑动浏览和发音播放功能。 ## 技术栈 - **最低版本**: iOS 13.7 - **开发框架**: SwiftUI - **目标设备**: iPhone 11 (逻辑分辨率 414×896,仅竖屏) - **编程语言**: Swift 5.0+ ## 功能特性 1. **单词卡片滑动** - 使用 TabView + PageTabViewStyle 实现左右滑动切换 - 支持所有 228 个单词的浏览 2. **发音播放** - 本地文件优先:检查 Application Support/Sounds 目录 - 在线下载:无本地文件时自动从有道下载发音 - 自动缓存:下载的音频永久保存,下次直接播放 - 加载状态:下载时显示转圈动画 3. **UI 设计** - 顶部导航栏:返回箭头 + "单词"标题 + 更多按钮 - 卡片布局:单词、音标、释义、例句、发音按钮 - 背景色:米白色 (#F5F2EB) - 发音按钮:蓝色圆形,带蓝色光晕阴影 4. **离线可用** - 单词数据从 Bundle 读取 - 已下载的发音永久缓存 - 仅在首次播放时需要网络 ## 项目结构 ``` EnglishLearn/ ├── EnglishLearnApp.swift # App 入口 ├── AppDelegate.swift # 锁定竖屏方向 ├── ContentView.swift # 主视图 ├── WordCardView.swift # 单词卡片视图 ├── Word.swift # 单词数据模型 ├── AudioManager.swift # 发音管理器 ├── Info.plist # 网络权限配置 ├── words.json # 单词数据(228个单词) └── Sounds/ # 已下载的音频缓存目录 ``` ## 配置说明 ### 1. Info.plist 配置 已配置以下权限: - `NSAppTransportSecurity` -> `NSAllowsArbitraryLoads`: 允许访问有道发音 API ### 2. 竖屏锁定 通过 `AppDelegate` 锁定应用为竖屏模式: ```swift func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { return .portrait } ``` ### 3. 添加 words.json 到 Target 在 Xcode 中: 1. 打开 `EnglishLearn.xcodeproj` 2. 选择 `words.json` 文件 3. 在右侧 File Inspector 中,勾选 `EnglishLearn` target ## 发音 URL 格式 使用有道在线发音 API: ``` https://dict.youdao.com/dictvoice?type=0&audio={单词} ``` - `type=0`: 美式发音 - `type=1`: 英式发音 ## 单词数据格式 words.json 遵循以下格式: ```json { "id": 1, "day": 1, "word": "muscle", "phonetic": "/ˈmʌsl/", "type": "n.", "meaning": "肌肉", "sentence": "It strengthens your heart, lungs, and muscles.", "sentenceCn": "它强壮你的心肺和肌肉。", "source": "2014.4 阅读判断", "audioUs": "muscle.mp3" } ``` ## 运行步骤 1. 在 Xcode 中打开项目 2. 选择目标设备:iPhone 11 或其他 iOS 13.7+ 设备 3. 确保 `words.json` 已添加到 target 4. 点击运行 ## 注意事项 1. **网络权限**: 首次播放单词发音时需要网络连接 2. **缓存位置**: 音频文件保存在 `Application Support/Sounds/` 目录 3. **安全区域**: UI 已适配 iPhone 11 的刘海屏 4. **内存管理**: 使用 `@StateObject` 和 `@ObservedObject` 管理状态 ## 扩展功能建议 1. 添加收藏功能(导航栏右侧按钮) 2. 支持英式/美式发音切换 3. 添加单词搜索功能 4. 支持自定义学习进度 5. 添加复习模式