# 微单词 **Repository Path**: xds2026/micro-words ## Basic Information - **Project Name**: 微单词 - **Description**: 微单词:一个专注于微服务架构的项目,提供简洁高效的单词管理与查询功能,支持多语言和跨平台使用。 基于flutter - **Primary Language**: Dart - **License**: MulanPSL-2.0 - **Default Branch**: debug-branch - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-18 - **Last Updated**: 2026-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微单词 - 英语单词学习应用 一个简洁、高效的英语单词学习应用,帮助用户轻松掌握英语单词。 ## 功能特点 ### 核心学习功能 - 单词学习:通过选择正确的释义来学习单词 - 发音功能:点击发音按钮听单词发音 - 例句展示:每个单词配有例句,帮助理解单词用法 - 收藏功能:收藏重要单词,方便后续复习 - 学习进度:显示当前学习进度 ### 单词表管理 - 单词表功能:支持创建多个单词表,管理不同类型的单词 - 多单词表切换:在不同单词表之间快速切换,专注当前学习内容 - 单词表管理:创建、编辑、删除单词表,灵活组织单词 - 定向学习:针对特定单词表进行学习和测试 - 乱序学习:支持单词表乱序排列,增强记忆效果 ### 数据管理 - 学习进度持久化:自动保存学习进度,跨会话保留 - 数据一致性:内置数据验证和修复机制 - 备份功能:自动创建数据备份,防止数据丢失 ### 测试与复习 - 测试功能:对已学习的单词进行测试,检验学习效果 - 复习功能:根据记忆曲线复习单词,巩固学习成果 - 测试历史:查看历史测试记录,追踪学习进度 - 测试设置:自定义测试参数,包括题目数量、时间限制等 ### 学习中心 - 签到功能:每日签到记录学习习惯,激励持续学习 - 学习记录:查看连续学习天数和签到历史 - 学习统计:展示总学习单词数、已掌握单词数、学习时长等统计数据 - 今日进度:实时显示今日学习和复习进度 ### 设置功能 - 主题切换:支持深色/浅色主题 - 音频设置:调整发音音量和语速 - 数据管理:导入/导出单词数据,备份学习进度 - 学习目标设置:自定义每日学习和复习目标 - 重置功能:重置为默认单词,重新开始学习 ## 技术栈 - Flutter:跨平台移动应用开发框架 - Dart:编程语言 - 状态管理:使用 Provider 进行全局状态管理 - 本地存储:使用文件 I/O 和 JSON 序列化存储数据 - 路由管理:使用 Navigator 进行页面导航 - 跨平台兼容:支持 Web、iOS、Android、Windows、macOS 和 Linux 平台 ## 项目结构 ``` lib/ ├── main.dart # 应用入口文件 ├── models/ # 数据模型 │ ├── word.dart # 单词数据模型 │ ├── word_storage.dart # 单词存储服务 │ ├── word_list.dart # 单词表数据模型 │ ├── word_list_storage.dart # 单词表存储服务 │ ├── study_progress.dart # 学习进度模型 │ ├── settings.dart # 设置数据模型 │ └── test_record.dart # 测试记录模型 ├── pages/ # 页面组件 │ ├── splash_page.dart # 启动页面 │ ├── home_page.dart # 主页(学习中心) │ ├── study_page.dart # 学习页面 │ ├── test_page.dart # 测试页面 │ ├── review_page.dart # 复习页面 │ ├── word_book_page.dart # 单词本页面 │ ├── settings_page.dart # 设置页面 │ ├── test_history_page.dart # 测试历史页面 │ ├── test_result_page.dart # 测试结果页面 │ ├── test_settings_page.dart # 测试设置页面 │ └── new_home_page.dart # 新主页(备用) ├── providers/ # 状态管理 │ ├── theme_provider.dart # 主题切换提供者 │ └── study_progress_provider.dart # 学习进度状态管理 ├── services/ # 服务层 │ ├── audio_service.dart # 音频播放服务 │ ├── platform_storage.dart # 跨平台存储服务 │ ├── progress_persistence_service.dart # 进度持久化服务 │ ├── data_manager.dart # 数据管理服务 │ └── data_consistency_service.dart # 数据一致性服务 ├── assets/ # 资源文件 │ └── images/ # 图片资源 ``` ## 运行项目 ### 前置要求 - Flutter SDK 3.22.0+ - Dart SDK 3.4.0+ - Android Studio / VS Code - Android SDK / iOS Simulator(用于运行和测试) ### 安装步骤 1. 克隆项目到本地 ```bash git clone https://gitee.com/xds2026/micro-words.git cd micro-words ``` 2. 安装依赖 ```bash flutter pub get ``` 3. 运行项目 ```bash # Web flutter run -d chrome # Android flutter run -d android # iOS flutter run -d ios # Windows flutter run -d windows # macOS flutter run -d macos # Linux flutter run -d linux ``` ## 使用指南 ### 单词表功能 1. **创建单词表**:在主页或设置页面,点击「创建单词表」按钮,输入单词表名称即可创建 2. **切换单词表**:在主页顶部的单词表选择器中,点击当前单词表名称,在下拉列表中选择要切换的单词表 3. **管理单词表**:在设置页面,点击「单词表管理」选项,进入单词表管理界面,可以编辑或删除单词表 4. **添加单词到单词表**:在单词本页面,长按单词,选择「添加到单词表」,选择目标单词表即可 5. **学习特定单词表**:切换到目标单词表后,点击「开始学习」按钮,系统会自动加载该单词表中的单词进行学习 6. **测试特定单词表**:切换到目标单词表后,点击「开始测试」按钮,系统会自动加载该单词表中的单词进行测试 7. **复习特定单词表**:切换到目标单词表后,点击「开始复习」按钮,系统会自动加载该单词表中需要复习的单词 ### 乱序学习 在单词本页面,选择「乱序学习」选项,系统会随机打乱单词顺序,帮助用户更有效地记忆单词。乱序状态会保持固定,确保学习体验的一致性。 ### 学习进度持久化 系统会自动保存学习进度,包括: - 单词掌握状态 - 学习和复习记录 - 连续学习天数 - 每日学习目标完成情况 - 签到记录 即使关闭应用或刷新页面,再次打开时学习进度会保持不变。 ### 学习中心功能 1. **签到功能**:在学习中心页面,点击签到按钮完成每日签到,记录学习习惯 2. **学习记录**:点击学习记录卡片查看连续学习天数和签到历史日历 3. **学习统计**:查看总学习单词数、已掌握单词数、总学习时长、待复习单词数等统计数据 4. **今日进度**:实时查看今日学习和复习进度,包括进度条和完成百分比 ### 测试功能 1. **开始测试**:在主页点击「测试」按钮,进入测试页面 2. **测试设置**:在测试页面点击设置按钮,自定义测试参数(题目数量、时间限制等) 3. **查看结果**:测试完成后,查看测试结果页面,了解答题情况和得分 4. **测试历史**:在测试页面点击历史按钮,查看所有历史测试记录 ### 复习功能 1. **开始复习**:在主页点击「复习」按钮,进入复习页面 2. **复习模式**:系统会根据记忆曲线推荐需要复习的单词 3. **复习记录**:复习完成后,系统会自动记录复习结果 ### 设置功能 1. **主题切换**:在设置页面,选择「主题」选项,切换深色/浅色主题 2. **音频设置**:在设置页面,调整音频音量和语速 3. **学习目标设置**:在设置页面,自定义每日学习和复习目标 4. **数据管理**:在设置页面,导入/导出单词数据,备份学习进度 5. **重置为默认单词**:在设置页面,点击「重置为默认50个单词」按钮,系统会删除现有单词数据,创建50个默认单词 ### 重置为默认单词 在设置页面,点击「重置为默认50个单词」按钮,系统会: 1. 删除现有单词数据 2. 创建50个默认单词 3. 将这些单词添加到「默认单词表」中 4. 设置「默认单词表」为当前学习内容 ## 开发说明 ### 状态管理 项目使用 Provider 进行状态管理,主要包括: - ThemeProvider:管理主题切换 - StudyProgressProvider:管理学习进度数据 ### 数据持久化 使用文件 I/O 和 JSON 序列化进行数据存储: - 单词数据:存储在本地 JSON 文件 - 单词表数据:存储在本地 JSON 文件 - 学习进度:存储在本地 JSON 文件 - 测试记录:存储在本地 JSON 文件 ### 数据一致性 内置数据一致性服务,确保数据的完整性和一致性: - 数据验证:启动时验证数据完整性 - 数据修复:自动修复损坏的数据 - 数据备份:自动创建数据备份 ## 测试 项目包含完整的测试套件: - 单元测试:测试数据模型和服务 - Widget 测试:测试 UI 组件 - 集成测试:测试完整的应用流程 运行测试: ```bash # 运行所有测试 flutter test # 运行特定测试 flutter test test/models/word_test.dart ``` ## 贡献 欢迎贡献代码,提交 Issue 或 Pull Request 来改进这个项目。 ## 许可证 MIT License ## 联系方式 如有问题或建议,请通过以下方式联系: - Gitee:https://gitee.com/xds2026/micro-words - 提交 Issue:https://gitee.com/xds2026/micro-words/issues