# tibdroid
**Repository Path**: teachitback/tibdroid
## Basic Information
- **Project Name**: tibdroid
- **Description**: tibdroid app work with tibclaw
- **Primary Language**: Java
- **License**: BSL-1.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-30
- **Last Updated**: 2026-02-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TibDroid - TeachItBack Android Client
[](https://developer.android.com/)
[](https://kotlinlang.org/)
[](LICENSE)
## 📱 项目简介
TibDroid 是 TeachItBack 学习助手系统的 Android 客户端应用,为学生提供便捷的移动端学习体验。应用通过 Zenoh 协议与本地 TibClaw 服务器通信,实现文档 OCR、AI 分析和知识问答等功能。
## ✨ 核心功能
### 当前实现 (v1.0)
- 📝 **聊天界面** - 简洁直观的对话式交互
- 📤 **文件上传** - 支持图片和文档上传
- 📷 **相机集成** - 拍照快速获取学习资料
- 💾 **消息持久化** - Room 数据库本地存储
- 🎨 **现代 UI** - Material Design 3 设计风格
### 即将推出的功能
- 🔍 **OCR 识别** - DeepSeek 智能文字识别
- 🤖 **AI 分析** - 智能摘要和知识提取
- 📊 **学习统计** - 学习进度追踪
- 📚 **错题本** - 知识薄弱点管理
- 🧮 **智能测验** - 自动生成练习题
## 🏗️ 技术栈
### 核心技术
- **Kotlin** - 现代化 Android 开发语言
- **Jetpack Compose** - 声明式 UI 框架
- **Room** - Android 官方持久化方案
- **Coroutines & Flow** - 响应式编程
- **ViewModel & LiveData** - MVVM 架构组件
- **ViewBinding** - 类型安全的视图绑定
### 通信协议
- **Zenoh** - 高性能物联网数据平面
- 低延迟 P2P 通信
- 支持路由和 NAT 穿透
- 类型安全的消息传递
### 测试框架
- **JUnit** - 单元测试
- **Coroutines Test** - 协程测试支持
- **TDD** - 测试驱动开发流程
## 📁 项目结构
```
tibdroid/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/teachitback/tibdroid/
│ │ │ │ ├── data/
│ │ │ │ │ ├── local/ # Room 数据库
│ │ │ │ │ ├── model/ # 数据模型
│ │ │ │ │ └── repository/ # 仓库层
│ │ │ │ ├── ui/
│ │ │ │ │ └── chat/ # 聊天界面
│ │ │ │ └── MainActivity.kt
│ │ │ └── res/ # 资源文件
│ │ └── test/ # 单元测试
│ └── build.gradle
├── docs/
│ └── plans/ # 开发计划
├── gradle/
│ └── wrapper/
├── .gitignore
├── build.gradle
├── settings.gradle
├── gradlew
├── gradlew.bat
└── LICENSE
```
## 🚀 快速开始
### 环境要求
- **Android Studio** - Koala (2023.1.1) 或更高版本
- **JDK** - OpenJDK 11 或更高版本
- **Android SDK** - API 34 (Android 14)
- **Gradle** - 8.5
### 克隆项目
```bash
git clone https://gitee.com/teachitback/tibdroid.git
cd tibdroid
```
### 构建应用
**开发版 (Debug):**
```bash
./gradlew assembleDebug
```
**发布版 (Release):**
```bash
./gradlew assembleRelease
```
### 安装到设备
```bash
./gradlew installDebug
```
### 运行测试
```bash
# 单元测试
./gradlew test
# Instrumented 测试
./gradlew connectedAndroidTest
```
## 💻 开发指南
### 编码规范
- **Kotlin Coding Conventions** - 遵循官方代码规范
- **TDD 原则** - 先写测试,再写实现
- **MVVM 架构** - 保持视图和逻辑分离
### 提交规范
使用语义化提交信息:
```
feat: 添加新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构代码
test: 添加或修改测试
chore: 构建/工具配置更新
```
### 分支策略
- `master` - 稳定发布版本
- `feature/*` - 新功能开发
- `fix/*` - 问题修复
- `hotfix/*` - 紧急修复
## 🔧 配置说明
### Zenoh 连接配置
应用通过 Zenoh 路由器与 TibClaw 服务器通信。配置说明请参考 [TibClaw 仓库](https://gitee.com/teachitback/tibclaw)。
### 数据库版本管理
当前数据库版本:`v1`
升级时请:
1. 更新 `version` 号码
2. 实现 `Migration` 类
3. 添加到 `addMigrations()`
## 📊 架构设计
### MVVM 模式
```mermaid
graph TB
View[View
Activity/Fragment] -->|observes| ViewModel[ViewModel
Business Logic]
ViewModel -->|uses| Repository[Repository
Data Access]
Repository -->|uses| Room[Room
Local Database]
Room -->|Flow推送| ViewModel
ViewModel -->|StateFlow| View
style View fill:#2d3748
style ViewModel fill:#4a5568
style Repository fill:#718096
style Room fill:#a0aec0
```
### 数据流
```mermaid
sequenceDiagram
participant User as 用户
participant View as View
participant VM as ViewModel
participant Repo as Repository
participant Room as Room DB
User->>View: 1. 用户输入
View->>VM: 2. 调用业务逻辑
VM->>Repo: 3. 持久化数据
Repo->>Room: 4. 写入数据库
Room-->>Repo: 4.1 Flow推送更新
Repo-->>VM: 4.2 Flow数据更新
VM->>VM: 5. 转换为StateFlow
VM-->>View: 6. StateFlow更新
View->>User: 7. 更新UI显示
Note over User,Room: 数据流向
```
## 🧪 测试策略
### 单元测试
- **Repository 层** - 使用内存数据库测试 DAO
- **ViewModel 层** - Mock Repository 测试业务逻辑
- **Model 层** - 验证数据类行为
### 测试覆盖率目标
- **目标**: 80%+ 核心逻辑覆盖率
- **工具**: JaCoCo 代码覆盖率报告
## 📱 截图
### 主界面
- 现代化聊天界面
- 消息气泡展示
- 快捷操作按钮
### 消息类型
- 用户消息(蓝色)
- AI 回复(灰色)
- 图片预览
- 文件上传
## 🤝 贡献指南
我们欢迎所有形式的贡献!
### 报告问题
请在 [Issues](https://gitee.com/teachitback/tibdroid/issues) 页面提交 bug 报告或功能请求。
### 提交代码
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'feat: Add some AmazingFeature'`)
4. 推送分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
### 代码审查
所有 PR 必须通过:
- ✅ CI/CD 检查
- ✅ 代码审查
- ✅ 测试覆盖检查
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 🔗 相关链接
- **主仓库**: [TeachItBack](https://gitee.com/teachitback/teachitback)
- **TibClaw 服务器**: [TibClaw](https://gitee.com/teachitback/tibclaw)
- **Zenoh 文档**: [Eclipse Zenoh](https://zenoh.io/)
## 👥 团队
- **开发**: TeachItBack 团队
- **维护**: TeachItBack 社区
## 📮 联系方式
- **邮箱**: support@teachitback.com
- **问题反馈**: [GitHub/Gitee Issues](https://gitee.com/teachitback/tibdroid/issues)
---
Made with ❤️ by TeachItBack Team