Files
Hua.Todo/docs/产品需求文档-1.1.0.md
T
ShaoHua 758f6772c6 1.更换软件协议为AGPL
2.切换项目名称为Hua.Todo
2026-04-06 22:06:30 +08:00

7.0 KiB
Raw Blame History

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
    • 移动端: 通过通知快捷方式或小组件实现快速记录
    • 支持在应用后台运行时响应快捷键
  • 快速唤起:
    • 按下快捷键时,若应用最小化或隐藏,应立即弹出"新建任务"窗口或主界面
    • 窗口弹出后,输入框应自动获取焦点,用户可直接打字

3.2 任务模型 (Task Model)

每个任务需包含以下核心字段:

  1. 任务名称 (Title/Content): 任务的具体描述
  2. 紧急程度 (Priority/Urgency):
    • 用于区分任务优先级(如:高、中、低)
    • 需在界面上有直观的视觉区分(如颜色标记)
  3. 完成状态 (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 功能的限制可能影响功能实现