758f6772c6
2.切换项目名称为Hua.Todo
7.0 KiB
7.0 KiB
Hua.Todo 产品需求文档 (PRD) v1.1.0
1. 项目概述
本项目是一个基于 MAUI + WebView 架构开发的跨平台代办管理应用 (Hua.Todo)。旨在提供轻量、高效的任务管理体验,特别是通过快捷键快速唤起记录功能,最大化用户的操作效率。v1.1.0 版本将实现跨平台支持,覆盖 Windows、macOS、Android、iOS 和 Linux(预览)平台。
2. 技术架构
2.1 整体架构
- 开发语言: C# (后端) + Vue.js (前端)
- UI 框架: MAUI (Multi-platform App UI) + WebView
- 目标框架: .NET 10
- 前端框架: Vue.js
- WebView 实现:
- Windows: WebView2 (微软官方,完美兼容)
- macOS: WKWebView
- Android: WebView
- iOS: WKWebView
- Linux: WebView (预览)
2.2 支持平台
- Windows: 完整支持
- macOS: 完整支持
- Android: 完整支持
- iOS: 完整支持
- Linux: 预览支持
2.3 架构分层
┌─────────────────────────────────────┐
│ Vue.js 前端界面 │
│ (跨平台统一的用户界面) │
└─────────────────────────────────────┘
↕
┌─────────────────────────────────────┐
│ WebView 容器层 │
│ (WebView2/WKWebView/WebView) │
└─────────────────────────────────────┘
↕
┌─────────────────────────────────────┐
│ MAUI 原生层 │
│ (平台特定功能封装) │
└─────────────────────────────────────┘
↕
┌─────────────────────────────────────┐
│ C# 业务逻辑层 │
│ (数据处理、状态管理) │
└─────────────────────────────────────┘
3. 功能需求
3.1 核心功能:快速记录 (Quick Entry)
- 全局快捷键:
- Windows: 允许用户注册/使用系统级全局快捷键(例如
Ctrl + Alt + A) - macOS: 支持系统级快捷键(例如
Cmd + Option + A) - 移动端: 通过通知快捷方式或小组件实现快速记录
- 支持在应用后台运行时响应快捷键
- Windows: 允许用户注册/使用系统级全局快捷键(例如
- 快速唤起:
- 按下快捷键时,若应用最小化或隐藏,应立即弹出"新建任务"窗口或主界面
- 窗口弹出后,输入框应自动获取焦点,用户可直接打字
3.2 任务模型 (Task Model)
每个任务需包含以下核心字段:
- 任务名称 (Title/Content): 任务的具体描述
- 紧急程度 (Priority/Urgency):
- 用于区分任务优先级(如:高、中、低)
- 需在界面上有直观的视觉区分(如颜色标记)
- 完成状态 (IsCompleted):
- 标记任务是否已完成
3.3 任务列表与视图 (Task List & View)
- 列表展示: 展示当前所有未完成的任务
- 默认过滤:
- 应用启动或刷新时,默认隐藏已完成的任务
- (可选) 提供"显示已完成任务"的切换开关以便查看历史记录
3.4 离线与同步 (Offline & Sync)
- 离线记录: 支持完全离线使用,数据优先保存于本地
- 数据同步: 在网络可用时(或特定时机),自动将本地数据同步到服务端(预留同步机制)
3.5 跨平台适配需求
- 响应式设计: Vue.js 界面需适配不同平台的屏幕尺寸和分辨率
- 平台特定功能:
- Windows: 利用 WebView2 特性,如文件访问、剪贴板等
- macOS: 遵循 macOS 设计规范
- 移动端: 支持触摸手势、通知等移动端特性
- 原生功能集成:
- 通过 MAUI 调用平台原生 API
- WebView 与 C# 代码的双向通信
3.6 UI设计原则
- 紧凑设计: UI界面需采用紧凑布局,减少不必要的留白和装饰元素,最大化信息展示空间
- 高信息密度: 在有限的屏幕空间内展示更多任务信息,提高用户浏览效率
- 简洁高效: 去除冗余的视觉元素,聚焦核心功能,让用户快速完成操作
- 紧凑列表: 任务列表项应采用紧凑的行高和间距,支持在单屏内显示更多任务
- 精简控件: 使用紧凑的按钮、图标和输入框,减少控件占用的空间
- 高效布局: 采用合理的网格或弹性布局,充分利用屏幕空间,避免大面积空白
4. 非功能需求
- 性能:
- 启动速度快,快捷键响应低延迟
- WebView 加载性能优化
- 持久化:
- 任务数据需保存到本地(如 SQLite, JSON, 或 XML)
- 保证关闭应用后数据不丢失
- 跨平台一致性:
- 各平台功能体验保持一致
- UI 界面风格统一
- 兼容性:
- Windows: WebView2 运行时要求
- macOS: 系统版本要求
- 移动端: Android/iOS 最低版本要求
5. 技术实现要点
5.1 WebView 通信机制
- C# → Vue: 通过 HTTP API 接口提供数据
- Vue → C#: 通过 HTTP 请求调用 C# 后端接口
- 数据序列化: 使用 JSON 格式进行数据交换
- 本地服务器: C# 后端启动本地 HTTP 服务器(如 Kestrel)
- 跨域处理: 配置 CORS 支持跨域请求
- API 设计: RESTful API 设计风格
5.2 平台特定实现
- Windows:
- 使用
Microsoft.Web.WebView2.Wpf或 MAUI 的 WebView2 控件 - 全局快捷键使用 Windows API
- 使用
- macOS:
- 使用
WKWebView - 全局快捷键使用 AppKit API
- 使用
- 移动端:
- 使用平台原生 WebView
- 快速记录通过通知快捷方式实现
5.3 构建与部署
- 统一构建: 使用 MAUI 单一项目构建多平台应用
- 平台特定配置: 针对不同平台的配置文件和资源管理
- CI/CD: 支持多平台的自动化构建和发布流程
6. 版本规划
6.1 v1.1.0 目标
- 完成 MAUI + WebView 架构搭建
- 实现 Windows 平台支持(基于 WebView2)
- 实现 macOS 平台支持
- 实现移动端基础支持
- Vue.js 前端界面开发
- C# 后端业务逻辑实现
- WebView 与 C# 通信机制实现
- 跨平台功能测试
6.2 后续版本
- v1.2.0: Linux 平台正式支持
- v1.3.0: 云同步功能完善
- v1.4.0: 高级功能(如标签、提醒等)
7. 风险与挑战
- WebView 兼容性: 不同平台 WebView 实现的差异可能导致兼容性问题
- 性能优化: WebView 方案相比原生方案可能存在性能开销
- 开发复杂度: 跨平台开发增加了测试和维护的复杂度
- 平台限制: 某些平台对 WebView 功能的限制可能影响功能实现