英语学习软件项目架构

974 字
5 分钟
英语学习软件项目架构

☁️ 云端服务

📱 客户端 (Local First)

数据持久层

C++ 核心层

Flutter 表现层

调用 C API

返回结果

读写

HTTPS 请求

TCP Socket

用户界面 / View

状态管理 / Provider

Dart FFI 桥接

业务控制器 / Controller

单词管理器

AI 适配器

星云协议引擎 / Network

SQLite 数据库

Gemini API

你的 C++ 服务器

☁️ 云端服务

📱 客户端 (Local First)

数据持久层

C++ 核心层

Flutter 表现层

调用 C API

返回结果

读写

HTTPS 请求

TCP Socket

用户界面 / View

状态管理 / Provider

Dart FFI 桥接

业务控制器 / Controller

单词管理器

AI 适配器

星云协议引擎 / Network

SQLite 数据库

Gemini API

你的 C++ 服务器

💾 SQLite🤖 AI Service🧠 C++ Core📱 Flutter UI👤 用户💾 SQLite🤖 AI Service🧠 C++ Core📱 Flutter UI👤 用户用户觉得 "Retrieve" 这个词不错输入 "获取用户登录时间"1点击 "生成" 按钮2FFI调用: requestNaming("获取用户登录时间")3发送 Prompt (通过 AI Adapter)4返回 JSON: {"vars": ["getLastLoginTime"], "words": [...]}5返回结构化数据6展示卡片: getLastLoginTime()7点击 "加入生词本" (+)8FFI调用: addWord("Retrieve")9INSERT INTO study_records ...10Success11添加成功12显示 ✅ 动画13
💾 SQLite🤖 AI Service🧠 C++ Core📱 Flutter UI👤 用户💾 SQLite🤖 AI Service🧠 C++ Core📱 Flutter UI👤 用户用户觉得 "Retrieve" 这个词不错输入 "获取用户登录时间"1点击 "生成" 按钮2FFI调用: requestNaming("获取用户登录时间")3发送 Prompt (通过 AI Adapter)4返回 JSON: {"vars": ["getLastLoginTime"], "words": [...]}5返回结构化数据6展示卡片: getLastLoginTime()7点击 "加入生词本" (+)8FFI调用: addWord("Retrieve")9INSERT INTO study_records ...10Success11添加成功12显示 ✅ 动画13

📱 Tech-English Learning Platform

💎 社交与增值

📚 基础学习闭环

🚀 极客专属工具箱 (USP)

提取生词

提取生词

提取生词

解锁

解锁

多端云同步

变量命名拯救者

Variable Naming

词库管理

Words & Definitions

Git 提交助手

Commit Message

报错翻译器

StackOverflow Mode

记忆算法引擎

SM-2 Spaced Repetition

数据统计

Heatmap & Curves

VIP 会员体系

AI Token Quota

学习小组

Study Group

离线查词

Offline Dictionary

代码审查模拟

Code Review

📱 Tech-English Learning Platform

💎 社交与增值

📚 基础学习闭环

🚀 极客专属工具箱 (USP)

提取生词

提取生词

提取生词

解锁

解锁

多端云同步

变量命名拯救者

Variable Naming

词库管理

Words & Definitions

Git 提交助手

Commit Message

报错翻译器

StackOverflow Mode

记忆算法引擎

SM-2 Spaced Repetition

数据统计

Heatmap & Curves

VIP 会员体系

AI Token Quota

学习小组

Study Group

离线查词

Offline Dictionary

代码审查模拟

Code Review

AppC++ BackendGemini/App用户
场景触发
场景触发
用户
写代码卡壳 (命名困难)
写代码卡壳 (命名困难)
用户
被 Git 提交弄烦
被 Git 提交弄烦
使用极客工具 (Hook)
使用极客工具 (Hook)
App
打开 App 变量命名功能
打开 App 变量命名功能
Gemini/App
AI 生成代码建议
AI 生成代码建议
用户
复制变量名回 IDE
复制变量名回 IDE
价值转化 (Retention)
价值转化 (Retention)
用户
发现不认识的词 (Retrieve)
发现不认识的词 (Retrieve)
App
一键加入生词本
一键加入生词本
C++ Backend
后台调度复习算法
后台调度复习算法
长期收益
长期收益
用户
每日坐地铁复习
每日坐地铁复习
用户
面试外企自信表达
面试外企自信表达
程序员用户的业务价值流向 (User Journey)
AppC++ BackendGemini/App用户
场景触发
场景触发
用户
写代码卡壳 (命名困难)
写代码卡壳 (命名困难)
用户
被 Git 提交弄烦
被 Git 提交弄烦
使用极客工具 (Hook)
使用极客工具 (Hook)
App
打开 App 变量命名功能
打开 App 变量命名功能
Gemini/App
AI 生成代码建议
AI 生成代码建议
用户
复制变量名回 IDE
复制变量名回 IDE
价值转化 (Retention)
价值转化 (Retention)
用户
发现不认识的词 (Retrieve)
发现不认识的词 (Retrieve)
App
一键加入生词本
一键加入生词本
C++ Backend
后台调度复习算法
后台调度复习算法
长期收益
长期收益
用户
每日坐地铁复习
每日坐地铁复习
用户
面试外企自信表达
面试外企自信表达
程序员用户的业务价值流向 (User Journey)
NebulaCore/
├── CMakeLists.txt # 构建脚本 (跨平台关键)
├── 3rdparty/ # 第三方库 (SQLite, nlohmann/json, cpp-httplib)
├── include/ # 头文件 (对外暴露的接口)
│ ├── nebula_api.h # 给 Flutter 调用的 C 接口 (FFI)
│ └── common_types.h # 通用结构体定义的 JSON 序列化
├── src/
│ ├── main.cpp # 本地调试入口 (不给 Flutter 用)
│ ├── core/ # 核心层 (Kernel)
│ │ ├── AppCore.h/cpp # 【单例】总控制器
│ │ ├── DatabaseMgr.h/cpp # 数据库管家 (封装 SQLite)
│ │ └── ModuleMgr.h/cpp # 模块调度器 (负责分发消息)
│ │ └── ThreadPool.h # 【新增】线程池工具
│ ├── protocol/
│ ├── Packet.h # 【新增】协议头定义
│ └── PacketCodec.h # 【新增】组包/解包器
│ ├── modules/ # 业务模块层 (这里是扩展的关键!)
│ │ ├── IModule.h # 【接口】所有模块的父类
│ │ ├── vocab/ # 模块1: 词汇管理
│ │ │ └── VocabModule.h/cpp
│ │ ├── ai/ # 模块2: AI (未来预留)
│ │ └── social/ # 模块3: 社交 (未来预留)
│ └── utils/ # 工具类 (Log, StringUtils)
└── tests/ # 单元测试

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

英语学习软件项目架构
https://bradom.cn/posts/ying-yu-xue-xi-ruan-jian-xiang-mu-jia-gou/
作者
Bradom
发布于
2026-08-23
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Bradom
Hello, I'm Bradom.
本站小公告
欢迎来到我的博客!
本博客会马马乎乎的更新....
分类
标签
最新动态
站点统计
文章
16
分类
3
标签
19
总字数
20,378
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.15.10
文章许可
CC BY-NC-SA 4.0

当前页面没有目录