Skip to content

xtr-hub/micro_word

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

微单词 - 英语单词学习应用

一个简洁、高效的英语单词学习应用,帮助用户轻松掌握英语单词。

功能特点

核心学习功能

  • 单词学习:通过选择正确的释义来学习单词
  • 发音功能:点击发音按钮听单词发音
  • 例句展示:每个单词配有例句,帮助理解单词用法
  • 收藏功能:收藏重要单词,方便后续复习
  • 学习进度:显示当前学习进度

单词表管理

  • 单词表功能:支持创建多个单词表,管理不同类型的单词
  • 多单词表切换:在不同单词表之间快速切换,专注当前学习内容
  • 单词表管理:创建、编辑、删除单词表,灵活组织单词
  • 定向学习:针对特定单词表进行学习和测试
  • 乱序学习:支持单词表乱序排列,增强记忆效果

数据管理

  • 学习进度持久化:自动保存学习进度,跨会话保留
  • 数据一致性:内置数据验证和修复机制
  • 备份功能:自动创建数据备份,防止数据丢失

测试与复习

  • 测试功能:对已学习的单词进行测试,检验学习效果
  • 复习功能:根据记忆曲线复习单词,巩固学习成果
  • 测试历史:查看历史测试记录,追踪学习进度
  • 测试设置:自定义测试参数,包括题目数量、时间限制等

学习中心

  • 签到功能:每日签到记录学习习惯,激励持续学习
  • 学习记录:查看连续学习天数和签到历史
  • 学习统计:展示总学习单词数、已掌握单词数、学习时长等统计数据
  • 今日进度:实时显示今日学习和复习进度

设置功能

  • 主题切换:支持深色/浅色主题
  • 音频设置:调整发音音量和语速
  • 数据管理:导入/导出单词数据,备份学习进度
  • 学习目标设置:自定义每日学习和复习目标
  • 重置功能:重置为默认单词,重新开始学习

技术栈

  • 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. 克隆项目到本地
git clone https://gitee.com/xds2026/micro-words.git
cd micro-words
  1. 安装依赖
flutter pub get
  1. 运行项目
# 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 组件
  • 集成测试:测试完整的应用流程

运行测试:

# 运行所有测试
flutter test

# 运行特定测试
flutter test test/models/word_test.dart

贡献

欢迎贡献代码,提交 Issue 或 Pull Request 来改进这个项目。

许可证

MIT License

联系方式

如有问题或建议,请通过以下方式联系:

About

基于flutter框架开发的跨平台小型单词软件

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors