一个简洁、高效的英语单词学习应用,帮助用户轻松掌握英语单词。
- 单词学习:通过选择正确的释义来学习单词
- 发音功能:点击发音按钮听单词发音
- 例句展示:每个单词配有例句,帮助理解单词用法
- 收藏功能:收藏重要单词,方便后续复习
- 学习进度:显示当前学习进度
- 单词表功能:支持创建多个单词表,管理不同类型的单词
- 多单词表切换:在不同单词表之间快速切换,专注当前学习内容
- 单词表管理:创建、编辑、删除单词表,灵活组织单词
- 定向学习:针对特定单词表进行学习和测试
- 乱序学习:支持单词表乱序排列,增强记忆效果
- 学习进度持久化:自动保存学习进度,跨会话保留
- 数据一致性:内置数据验证和修复机制
- 备份功能:自动创建数据备份,防止数据丢失
- 测试功能:对已学习的单词进行测试,检验学习效果
- 复习功能:根据记忆曲线复习单词,巩固学习成果
- 测试历史:查看历史测试记录,追踪学习进度
- 测试设置:自定义测试参数,包括题目数量、时间限制等
- 签到功能:每日签到记录学习习惯,激励持续学习
- 学习记录:查看连续学习天数和签到历史
- 学习统计:展示总学习单词数、已掌握单词数、学习时长等统计数据
- 今日进度:实时显示今日学习和复习进度
- 主题切换:支持深色/浅色主题
- 音频设置:调整发音音量和语速
- 数据管理:导入/导出单词数据,备份学习进度
- 学习目标设置:自定义每日学习和复习目标
- 重置功能:重置为默认单词,重新开始学习
- 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(用于运行和测试)
- 克隆项目到本地
git clone https://gitee.com/xds2026/micro-words.git
cd micro-words- 安装依赖
flutter pub get- 运行项目
# 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- 创建单词表:在主页或设置页面,点击「创建单词表」按钮,输入单词表名称即可创建
- 切换单词表:在主页顶部的单词表选择器中,点击当前单词表名称,在下拉列表中选择要切换的单词表
- 管理单词表:在设置页面,点击「单词表管理」选项,进入单词表管理界面,可以编辑或删除单词表
- 添加单词到单词表:在单词本页面,长按单词,选择「添加到单词表」,选择目标单词表即可
- 学习特定单词表:切换到目标单词表后,点击「开始学习」按钮,系统会自动加载该单词表中的单词进行学习
- 测试特定单词表:切换到目标单词表后,点击「开始测试」按钮,系统会自动加载该单词表中的单词进行测试
- 复习特定单词表:切换到目标单词表后,点击「开始复习」按钮,系统会自动加载该单词表中需要复习的单词
在单词本页面,选择「乱序学习」选项,系统会随机打乱单词顺序,帮助用户更有效地记忆单词。乱序状态会保持固定,确保学习体验的一致性。
系统会自动保存学习进度,包括:
- 单词掌握状态
- 学习和复习记录
- 连续学习天数
- 每日学习目标完成情况
- 签到记录
即使关闭应用或刷新页面,再次打开时学习进度会保持不变。
- 签到功能:在学习中心页面,点击签到按钮完成每日签到,记录学习习惯
- 学习记录:点击学习记录卡片查看连续学习天数和签到历史日历
- 学习统计:查看总学习单词数、已掌握单词数、总学习时长、待复习单词数等统计数据
- 今日进度:实时查看今日学习和复习进度,包括进度条和完成百分比
- 开始测试:在主页点击「测试」按钮,进入测试页面
- 测试设置:在测试页面点击设置按钮,自定义测试参数(题目数量、时间限制等)
- 查看结果:测试完成后,查看测试结果页面,了解答题情况和得分
- 测试历史:在测试页面点击历史按钮,查看所有历史测试记录
- 开始复习:在主页点击「复习」按钮,进入复习页面
- 复习模式:系统会根据记忆曲线推荐需要复习的单词
- 复习记录:复习完成后,系统会自动记录复习结果
- 主题切换:在设置页面,选择「主题」选项,切换深色/浅色主题
- 音频设置:在设置页面,调整音频音量和语速
- 学习目标设置:在设置页面,自定义每日学习和复习目标
- 数据管理:在设置页面,导入/导出单词数据,备份学习进度
- 重置为默认单词:在设置页面,点击「重置为默认50个单词」按钮,系统会删除现有单词数据,创建50个默认单词
在设置页面,点击「重置为默认50个单词」按钮,系统会:
- 删除现有单词数据
- 创建50个默认单词
- 将这些单词添加到「默认单词表」中
- 设置「默认单词表」为当前学习内容
项目使用 Provider 进行状态管理,主要包括:
- ThemeProvider:管理主题切换
- StudyProgressProvider:管理学习进度数据
使用文件 I/O 和 JSON 序列化进行数据存储:
- 单词数据:存储在本地 JSON 文件
- 单词表数据:存储在本地 JSON 文件
- 学习进度:存储在本地 JSON 文件
- 测试记录:存储在本地 JSON 文件
内置数据一致性服务,确保数据的完整性和一致性:
- 数据验证:启动时验证数据完整性
- 数据修复:自动修复损坏的数据
- 数据备份:自动创建数据备份
项目包含完整的测试套件:
- 单元测试:测试数据模型和服务
- Widget 测试:测试 UI 组件
- 集成测试:测试完整的应用流程
运行测试:
# 运行所有测试
flutter test
# 运行特定测试
flutter test test/models/word_test.dart欢迎贡献代码,提交 Issue 或 Pull Request 来改进这个项目。
MIT License
如有问题或建议,请通过以下方式联系: