Skip to content

Repository files navigation

OpenVocabBrick

🤖 本项目纯 AI 生成(Claude Code),零人工代码,是一个以 AI 驱动开发的全栈 Flutter 单词本应用。

多端单词本 App —— 基于 Flutter 构建,Material You 设计风格。核心理念:英英释义优先,搭配名著例句辅助理解,让单词在真实语境中扎根。支持在线查词、本地管理、间隔重复背诵。

✨ 功能特性

📚 多单词本管理

  • 创建多个单词本,分类管理不同场景的词汇(如四级、托福、日常积累)
  • 一键切换当前单词本,每个单词本独立维护
  • 支持重命名与删除(删除单词本会级联删除其下所有单词)

🔍 在线单词搜索

  • 接入有道词典Dictionary API 双数据源,自动 fallback
  • 英英释义优先:优先展示英文释义,帮助建立英语思维,避免中英翻译的思维转换
  • 输入英文单词即可获取音标(英式/美式)、词性、释义、例句
  • 搜索支持 350ms 防抖,减少无效请求
  • 搜索结果支持预览详情,确认后再添加到单词本

📝 单词详情与编辑

  • 详情页展示:音节拆分、音标、TTS 发音、词性标签、释义、例句及出处
  • 内置 TTS 语音朗读(美式/英式发音),点击喇叭图标即可发音
  • 完整的编辑功能:修改拼写、音标,自由增删释义条目(词性 + 释义 + 例句 + 出处)
  • 🏛️ 名著例句:例句来源于经典英文名著,在真实文学语境中理解单词用法
  • ✏️ 例句可编辑:每条例句及出处均可自由修改、增删,打造个性化单词本
  • 自动音节拆分:基于 VCV / VCCV 规则智能拆分音节(如 ap•ple

🧠 间隔重复背诵

  • 基于间隔重复算法的闪卡背诵模式
  • 点击卡片揭开释义,然后选择「认识」或「不认识」
  • 答对:推进进度条,间隔天数为 1 → 3 → 7 → 14 → 30 → 已掌握
  • 答错:降低进度,次日重背
  • 连续答对 3 次 + 进度满 → 已掌握,一年后再复习
  • 背诵完成显示小结页:已背单词数、背诵时长,支持继续背诵下一组
  • 每组 20 个单词,按复习时间排序,已掌握的单词不进入队列
  • 长按单词块可重置进度立即加入背诵

🧱 单词砖块网格

  • 首页以 5 列网格展示单词,每个单词是一块彩色砖块
  • 砖块颜色从 蓝色(0%)→ 红色(100%) 渐变,直观反映掌握程度
  • 长按/右键砖块弹出菜单:再背一次、重置进度、删除单词

🎨 Material You 主题

  • 使用 dynamic_color 自动从系统壁纸取色
  • 支持 亮色 / 暗色 / 跟随系统 三种主题模式
  • 完整的 Material 3 组件风格:圆角卡片、胶囊按钮、动态取色

🏗️ 技术架构

lib/
├── core/                  # 核心基础设施
│   ├── constants/         # 常量配置(背诵参数等)
│   ├── theme/             # Material You 主题 & 颜色定义
│   └── utils/             # 工具函数(音节拆分等)
├── data/                  # 数据层
│   ├── api/               # 在线词典 API 客户端(有道 + Dictionary API)
│   ├── database/          # Drift 数据库表定义、DAO、生成的代码
│   └── repositories/      # 数据仓库(封装 DAO 操作)
├── domain/                # 领域层
│   ├── models/            # 领域模型(Word, Wordbook, ReviewRecord)
│   └── services/          # 领域服务(间隔重复算法、TTS 服务)
├── presentation/          # 展示层
│   ├── common/widgets/    # 通用组件(单词砖块等)
│   ├── home/              # 首页(单词网格、顶栏)
│   ├── word_detail/       # 单词详情 & 编辑页面
│   ├── wordbook/          # 单词本选择器
│   ├── search/            # 在线搜索页面
│   └── review/            # 背诵页面、闪卡组件、小结页
├── providers/             # Riverpod 状态管理
├── app.dart               # App 入口 + 路由配置
└── main.dart              # main 函数
分层 技术选型
框架 Flutter (Dart)
状态管理 flutter_riverpod + flutter_hooks
路由 go_router (ShellRoute)
本地数据库 drift (SQLite) + sqlite3_flutter_libs
网络请求 dio
TTS 发音 flutter_tts
动态主题 dynamic_color (Material You)
代码生成 build_runner + drift_dev + json_serializable

🚀 快速开始

环境要求

  • Flutter SDK >= 3.12.1
  • Dart SDK >= 3.12.1

安装与运行

# 克隆项目
git clone <repo-url>
cd OpenVocabBrick

# 安装依赖
flutter pub get

# 生成数据库代码
dart run build_runner build

# 运行(选择目标平台)
flutter run          # 自动检测设备
flutter run -d web   # 浏览器运行
flutter run -d windows  # Windows 桌面运行

平台支持

平台 状态
Android ✅ 已测试
iOS ✅ 已配置
Windows ✅ 已配置
Web ✅ 已配置

📸 页面路由

路由 页面
/ 首页(单词砖块网格 + 背诵入口)
/word/:id 单词详情页
/search 在线搜索(半透明浮层)
/review 闪卡背诵页
/review/summary 背诵小结页

🔧 配置说明

背诵参数可在 app_constants.dart 中调整:

常量 默认值 说明
reviewGroupSize 20 每组背诵单词数
progressIncrement 0.15 答对一次进度增量
progressDecrement 0.20 答错一次进度减量
consecutiveMastery 3 连续答对多少次算已掌握
masteryProgress 1.0 已掌握的进度阈值

🗺️ 发展规划

✅ 已实现

  • 多单词本创建、切换、删除
  • 在线查词(有道词典 + Dictionary API 双源 fallback)
  • 英英释义优先展示
  • 单词详情页(音节拆分、音标、TTS 发音、释义标签)
  • 手动编辑单词(拼写、音标、释义、例句、出处)
  • 名著例句展示与编辑
  • 间隔重复背诵(1 → 3 → 7 → 14 → 30 → 已掌握)
  • 闪卡背诵模式 + 背诵小结页
  • 单词砖块网格首页(5 列布局、蓝→红渐变进度色)
  • Material You 动态取色主题
  • 亮色 / 暗色 / 跟随系统主题切换
  • 本地 SQLite 持久化存储(Drift ORM)
  • 单词重置进度 / 立即加入背诵

🔭 探索方向

  • 内置文章阅读器
  • 划词翻译
  • 划词加入单词本
  • 双击沉浸式翻译
  • 自动文章例句提取
  • ……

📄 License

GPL-3.0

About

A personalized Vocabulary App for android.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages