Ching L c790cee472
All checks were successful
continuous-integration/drone/push Build is passing
feat: implement android app with widget support
- Created comprehensive Android app requirements document
  - Built complete Android project with Kotlin and Jetpack Compose
  - Implemented task management with control and display screens
  - Added Android widget with 5-minute auto-refresh capability
  - Integrated Room database for offline support
  - Set up MVVM architecture with Hilt dependency injection
  - Configured Retrofit for API communication
  - Added Material Design 3 theming and UI components
2025-11-17 18:28:22 +08:00

124 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Calendar Widget Android App
基于 Calendar Widget 系统的原生 Android 应用实现。
## 功能特性
- 📱 **原生 Android 体验**:使用 Kotlin 和 Jetpack Compose 构建
- 📋 **任务管理**:完整的任务增删改查功能
- 🎨 **Material Design 3**:现代化的 UI 设计
- 📊 **双视图模式**:控制页面和展示页面
- 🔄 **实时同步**:与服务器 API 实时同步
- 💾 **离线支持**:本地数据库缓存
-**桌面小组件**支持多种尺寸5分钟自动刷新
## 技术架构
- **语言**Kotlin
- **UI**Jetpack Compose
- **架构**MVVM + Repository Pattern
- **依赖注入**Hilt
- **网络**Retrofit + OkHttp
- **数据库**Room
- **协程**Kotlin Coroutines + Flow
## 项目结构
```
android-app/
├── app/
│ ├── src/main/java/com/tunpok/calendarwidget/
│ │ ├── data/ # 数据层
│ │ │ ├── api/ # API 接口定义
│ │ │ ├── database/ # Room 数据库
│ │ │ ├── model/ # 数据模型
│ │ │ └── repository/ # 数据仓库
│ │ ├── di/ # Hilt 依赖注入
│ │ ├── ui/ # UI 层
│ │ │ ├── control/ # 控制页面
│ │ │ ├── display/ # 展示页面
│ │ │ ├── widget/ # 桌面小组件
│ │ │ ├── components/ # 共享组件
│ │ │ └── theme/ # 主题配置
│ │ └── utils/ # 工具类
│ └── src/main/res/ # 资源文件
├── gradle/ # Gradle 配置
└── build.gradle.kts # 构建脚本
```
## 构建与运行
### 前置要求
- Android Studio Arctic Fox 或更高版本
- JDK 17
- Android SDK 34
- Kotlin 1.9.20+
### 构建步骤
1. 克隆项目:
```bash
cd android-app
```
2. 打开 Android Studio导入项目
3. 配置 API 设置(首次运行时在应用内配置):
- API Key: 你的 API 密钥
- API Host: 服务器地址
4. 构建并运行:
- 点击 Run 按钮或使用快捷键 Shift+F10
### 生成 APK
```bash
./gradlew assembleRelease
```
生成的 APK 位于:`app/build/outputs/apk/release/`
## 小组件配置
1. 长按桌面空白处
2. 选择"小组件"
3. 找到"Calendar Widget"
4. 选择合适的尺寸:
- 小型 (2x1)显示1个任务
- 中型 (2x2)显示4个任务
- 大型 (4x2)显示8个任务
5. 拖动到桌面
小组件会每5分钟自动刷新也可以点击刷新按钮手动更新。
## 开发说明
### 添加新功能
1. 在对应的包中创建新文件
2. 使用 Hilt 注解进行依赖注入
3. 遵循 MVVM 架构模式
4. 使用 Compose 构建 UI
### 调试
- 启用 OkHttp 日志:已在 `AppModule` 中配置
- 查看数据库:使用 Android Studio 的 Database Inspector
- 网络调试:使用 Charles 或 Flipper
## 测试
运行单元测试:
```bash
./gradlew test
```
运行 UI 测试:
```bash
./gradlew connectedAndroidTest
```
## License
MIT