Flutter 框架跨平台鸿蒙开发 - 数字遗嘱应用
开源鸿蒙跨平台数字遗嘱应用 摘要:数字遗嘱是一款帮助用户管理数字遗产的开源应用,基于Flutter框架开发,支持鸿蒙OS和Web平台。核心功能包括:数字资产管理(8种资产类型分类)、受益人管理、遗嘱条款设置和状态管理(草稿/生效中/已执行)。应用采用Material Design 3设计规范,使用Dart语言开发,通过表单输入、分类管理和状态切换等技术实现。项目结构清晰,包含资产模型、受益人模型等
欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net
一、项目概述
运行效果图





1.1 应用简介
数字遗嘱是一款帮助用户规划数字遗产处理方案的应用。在数字化时代,每个人都拥有大量的数字资产,包括社交媒体账号、电子邮箱、云存储文件、数字货币、在线服务等。当用户离世后,这些数字资产如何处理成为一个重要问题。
数字遗嘱应用让用户能够系统性地记录自己的数字资产,指定受益人,并设置具体的处理指令。通过这种方式,确保用户的数字遗产能够按照意愿得到妥善处理,避免重要信息的丢失或不当使用。
1.2 核心功能
| 功能模块 | 功能描述 | 实现方式 |
|---|---|---|
| 数字资产管理 | 记录各类数字资产信息 | 表单输入+分类管理 |
| 受益人管理 | 指定数字遗产继承人 | 联系人信息管理 |
| 遗嘱条款 | 设置具体的处理指令 | 文本编辑器 |
| 遗嘱状态 | 管理遗嘱的生效状态 | 状态切换 |
| 资产分配 | 将资产分配给受益人 | 关联映射 |
| 安全保护 | 保护敏感信息安全 | 密码隐藏显示 |
1.3 数字资产类型
| 序号 | 类型名称 | Emoji | 主题色 | 典型示例 |
|---|---|---|---|---|
| 1 | 社交媒体 | 📱 | #2196F3 | 微信、QQ、微博 |
| 2 | 电子邮箱 | 📧 | #4CAF50 | Gmail、Outlook |
| 3 | 云存储 | ☁️ | #00BCD4 | 百度网盘、Google Drive |
| 4 | 数字货币 | 💰 | #FF9800 | 比特币钱包、支付宝 |
| 5 | 在线服务 | 🌐 | #9C27B0 | Netflix、Steam |
| 6 | 数字内容 | 📁 | #E91E63 | 照片、视频、文档 |
| 7 | 金融账户 | 🏦 | #009688 | 网银、证券账户 |
| 8 | 其他资产 | 📦 | #607D8B | 其他数字资产 |
1.4 遗嘱状态
| 状态 | Emoji | 描述 |
|---|---|---|
| 草稿 | 📝 | 遗嘱尚未完善,未生效 |
| 生效中 | ✅ | 遗嘱已激活,条款有效 |
| 已执行 | 🔒 | 遗嘱已执行完毕 |
1.5 技术栈
| 技术领域 | 技术选型 | 版本要求 |
|---|---|---|
| 开发框架 | Flutter | >= 3.0.0 |
| 编程语言 | Dart | >= 2.17.0 |
| 设计规范 | Material Design 3 | - |
| 状态管理 | setState | - |
| 动画控制 | AnimationController | - |
| 目标平台 | 鸿蒙OS / Web | API 21+ |
二、项目结构
lib/
├── main_digital_will.dart # 应用主入口
│ ├── DigitalWillApp # 根应用组件
│ ├── AssetType # 资产类型枚举
│ ├── WillStatus # 遗嘱状态枚举
│ ├── DigitalAsset # 数字资产模型
│ ├── Beneficiary # 受益人模型
│ ├── WillInstruction # 遗嘱条款模型
│ └── DigitalWillHomePage # 主页面
三、数据模型
3.1 AssetType 枚举
enum AssetType {
social('社交媒体', '📱', Color(0xFF2196F3)),
email('电子邮箱', '📧', Color(0xFF4CAF50)),
cloud('云存储', '☁️', Color(0xFF00BCD4)),
crypto('数字货币', '💰', Color(0xFFFF9800)),
service('在线服务', '🌐', Color(0xFF9C27B0)),
content('数字内容', '📁', Color(0xFFE91E63)),
finance('金融账户', '🏦', Color(0xFF009688)),
other('其他资产', '📦', Color(0xFF607D8B));
final String label;
final String emoji;
final Color color;
}
3.2 WillStatus 枚举
enum WillStatus {
draft('草稿', '📝'),
active('生效中', '✅'),
executed('已执行', '🔒');
final String label;
final String emoji;
}
3.3 DigitalAsset 模型
class DigitalAsset {
final String id; // 资产唯一标识
final String name; // 资产名称
final AssetType type; // 资产类型
final String username; // 用户名/账号
final String password; // 密码(加密存储)
final String? notes; // 备注信息
final String? beneficiary; // 受益人
final DateTime createdAt; // 创建时间
final DateTime? lastAccessed; // 最后访问时间
}
3.4 Beneficiary 模型
class Beneficiary {
final String id; // 受益人唯一标识
final String name; // 姓名
final String relationship; // 关系
final String email; // 邮箱
final String? phone; // 电话
final List<String> assetIds; // 分配的资产ID列表
}
3.5 WillInstruction 模型
class WillInstruction {
final String id; // 条款唯一标识
final String title; // 条款标题
final String content; // 条款内容
final DateTime createdAt; // 创建时间
final DateTime? executeAt; // 执行时间
final bool isExecuted; // 是否已执行
}
四、核心功能实现
4.1 遗嘱状态管理
4.2 资产添加流程
4.3 受益人管理流程
4.4 遗嘱条款创建
void _showAddInstructionDialog() {
final titleController = TextEditingController();
final contentController = TextEditingController();
showModalBottomSheet(
context: context,
builder: (context) => StatefulBuilder(
builder: (context, setModalState) {
return Column(
children: [
TextField(
controller: titleController,
decoration: InputDecoration(labelText: '条款标题'),
),
TextField(
controller: contentController,
maxLines: 8,
decoration: InputDecoration(labelText: '条款内容'),
),
ElevatedButton(
onPressed: () {
final instruction = WillInstruction(
id: DateTime.now().millisecondsSinceEpoch.toString(),
title: titleController.text.trim(),
content: contentController.text.trim(),
createdAt: DateTime.now(),
);
setState(() {
_instructions.add(instruction);
});
},
child: Text('创建条款'),
),
],
);
},
),
);
}
4.5 资产分配实现
void _addAsset(AssetType type, String? beneficiary) {
final asset = DigitalAsset(
id: DateTime.now().millisecondsSinceEpoch.toString(),
name: _nameController.text.trim(),
type: type,
username: _usernameController.text.trim(),
password: '••••••••', // 实际应用中应加密存储
notes: _notesController.text.trim().isNotEmpty
? _notesController.text.trim()
: null,
beneficiary: beneficiary,
createdAt: DateTime.now(),
);
setState(() {
_assets.insert(0, asset);
});
}
五、界面设计
5.1 主页面布局
┌─────────────────────────────────────┐
│ 📜 数字遗嘱 │
│ 规划你的数字遗产如何处理 │
│ ┌───────────────────────────────┐ │
│ │ ℹ️ 保护你的数字遗产,让重要信息 │ │
│ │ 得到妥善处理 │ │
│ └───────────────────────────────┘ │
├─────────────────────────────────────┤
│ 遗嘱状态 ✅ 生效中│
│ ┌───────────────────────────────┐ │
│ │ ✅ 遗嘱已生效,所有条款将在 │ │
│ │ 指定条件下执行 │ │
│ └───────────────────────────────┘ │
│ [停用遗嘱] │
├─────────────────────────────────────┤
│ 资产概览 │
│ ┌──────────┐ ┌──────────┐ │
│ │📁 数字资产│ │👥 受益人 │ │
│ │ 4 │ │ 3 │ │
│ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ │
│ │📋 遗嘱条款│ │✓ 已分配 │ │
│ │ 3 │ │ 2 │ │
│ └──────────┘ └──────────┘ │
├─────────────────────────────────────┤
│ 快速操作 │
│ [添加资产] [添加受益人] [新建条款] │
├─────────────────────────────────────┤
│ 最近活动 │
│ ✓ 添加了新资产 - 微信 1天前 │
│ ✓ 更新了受益人 - 张三 2天前 │
│ ✓ 创建了遗嘱条款 5天前 │
└─────────────────────────────────────┘
5.2 数字资产页面
┌─────────────────────────────────────┐
│ 数字资产 [添加资产]│
├─────────────────────────────────────┤
│ ┌─────────────────────────────┐ │
│ │ 📱 微信 👤 张三 │ │
│ │ 社交媒体 │ │
│ │ ───────────────────────── │ │
│ │ 👤 账号: user@example.com │ │
│ │ 🔒 密码: •••••••• │ │
│ │ 📅 创建于 2024年1月15日 │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 📧 Gmail 👤 李四 │ │
│ │ 电子邮箱 │ │
│ │ ───────────────────────── │ │
│ │ 👤 账号: user@gmail.com │ │
│ │ 🔒 密码: •••••••• │ │
│ │ 📅 创建于 2024年1月10日 │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
5.3 受益人页面
┌─────────────────────────────────────┐
│ 受益人 [添加受益人]│
├─────────────────────────────────────┤
│ ┌─────────────────────────────┐ │
│ │ 👤 张三 │ │
│ │ 配偶 │ │
│ │ ───────────────────────── │ │
│ │ 📧 zhang@example.com │ │
│ │ 📱 138****1234 │ │
│ │ │ │
│ │ 分配的资产 (1) │ │
│ │ [📱 微信] │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 👤 李四 │ │
│ │ 子女 │ │
│ │ ───────────────────────── │ │
│ │ 📧 li@example.com │ │
│ │ 📱 139****5678 │ │
│ │ │ │
│ │ 分配的资产 (1) │ │
│ │ [📧 Gmail] │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
5.4 遗嘱条款页面
┌─────────────────────────────────────┐
│ 遗嘱条款 [新建条款]│
├─────────────────────────────────────┤
│ ┌─────────────────────────────┐ │
│ │ 📋 社交媒体处理 │ │
│ │ ───────────────────────── │ │
│ │ 请将我的微信账号注销,并通知 │ │
│ │ 重要联系人。朋友圈内容请截图 │ │
│ │ 保存给家人留念。 │ │
│ │ │ │
│ │ 📅 创建于 2024年1月10日 │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 📋 云存储文件 │ │
│ │ ───────────────────────── │ │
│ │ 百度网盘中的家庭照片请下载并 │ │
│ │ 制作成相册,分发给家人。工作 │ │
│ │ 相关文档请删除。 │ │
│ │ │ │
│ │ 📅 创建于 2024年1月8日 │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
5.5 添加资产弹窗
┌─────────────────────────────────────┐
│ ──── │
│ │
│ ➕ 添加数字资产 │
│ 记录你的数字资产信息 │
│ │
│ 资产类型 │
│ [📱 社交媒体] [📧 电子邮箱] │
│ [☁️ 云存储] [💰 数字货币] │
│ [🌐 在线服务] [📁 数字内容] │
│ │
│ 资产名称 │
│ ┌─────────────────────────────┐ │
│ │ 例如:微信、支付宝 │ │
│ └─────────────────────────────┘ │
│ │
│ 账号 │
│ ┌─────────────────────────────┐ │
│ │ 用户名或邮箱 │ │
│ └─────────────────────────────┘ │
│ │
│ 密码 │
│ ┌─────────────────────────────┐ │
│ │ •••••••• │ │
│ └─────────────────────────────┘ │
│ │
│ 备注 │
│ ┌─────────────────────────────┐ │
│ │ 其他说明信息 │ │
│ └─────────────────────────────┘ │
│ │
│ 分配受益人 │
│ ┌─────────────────────────────┐ │
│ │ 选择受益人 ▼ │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 添加资产 │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
六、动画效果
6.1 页面渐入动画
_fadeController = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 600),
);
FadeTransition(
opacity: _fadeController,
child: _buildPageContent(),
)
6.2 资产类型选择动画
AnimatedContainer(
duration: const Duration(milliseconds: 200),
decoration: BoxDecoration(
color: isSelected ? type.color.withValues(alpha: 0.15) : Colors.grey.shade100,
border: Border.all(
color: isSelected ? type.color : Colors.transparent,
width: 2,
),
),
child: Row(
children: [
Text(type.emoji, style: TextStyle(fontSize: 16)),
Text(type.label),
],
),
)
七、安全考虑
7.1 密码保护
┌─────────────────────────────────────┐
│ 密码安全机制 │
├─────────────────────────────────────┤
│ │
│ 1. 密码隐藏显示 │
│ • 显示为 •••••••• │
│ • 点击查看需要验证 │
│ │
│ 2. 数据加密存储 │
│ • 使用AES加密算法 │
│ • 本地安全存储 │
│ │
│ 3. 访问控制 │
│ • 生物识别解锁 │
│ • PIN码验证 │
│ │
│ 4. 数据备份 │
│ • 加密云端备份 │
│ • 本地加密导出 │
│ │
└─────────────────────────────────────┘
7.2 安全建议
| 安全措施 | 实现方式 | 优先级 |
|---|---|---|
| 密码加密 | AES-256加密存储 | 高 |
| 生物识别 | 指纹/面容解锁 | 高 |
| 自动锁定 | 5分钟无操作锁定 | 中 |
| 数据备份 | 加密云端备份 | 中 |
| 访问日志 | 记录访问历史 | 低 |
八、运行与调试
8.1 运行命令
# 运行到鸿蒙设备
flutter run -d harmony lib/main_digital_will.dart
# 运行到Web服务器
flutter run -d web-server -t lib/main_digital_will.dart --web-port 8119
# 运行到Windows
flutter run -d windows -t lib/main_digital_will.dart
# 代码分析
flutter analyze lib/main_digital_will.dart
8.2 功能测试清单
| 测试项 | 测试内容 | 预期结果 |
|---|---|---|
| 资产添加 | 添加各类数字资产 | 成功保存 |
| 受益人管理 | 添加和编辑受益人 | 信息正确保存 |
| 遗嘱条款 | 创建和编辑条款 | 内容正确显示 |
| 资产分配 | 将资产分配给受益人 | 关系正确建立 |
| 状态切换 | 激活/停用遗嘱 | 状态正确更新 |
| 数据展示 | 查看资产和受益人 | 信息完整显示 |
九、扩展方向
9.1 后端集成
┌─────────────┐ HTTPS ┌─────────────┐
│ 客户端 │ ←─────────────→ │ 服务器 │
└─────────────┘ └─────────────┘
│ │
│ 加密数据同步 │
│ 用户认证 │
│ 遗嘱执行通知 │
│ 数据备份 │
↓ ↓
┌─────────────┐ ┌─────────────┐
│ 本地存储 │ │ 云端数据库 │
└─────────────┘ └─────────────┘
9.2 功能扩展计划
| 版本 | 功能 | 描述 |
|---|---|---|
| v1.1 | 生物识别 | 指纹/面容解锁 |
| v1.2 | 数据加密 | AES加密存储 |
| v1.3 | 云端备份 | 加密云端同步 |
| v1.4 | 执行通知 | 遗嘱执行提醒 |
| v1.5 | 法律咨询 | 专业法律建议 |
9.3 高级功能
十、使用场景
10.1 典型使用场景
📋 数字遗嘱使用场景 📋
| 场景 | 描述 | 处理方式 |
|---|---|---|
| 社交媒体 | 微信、QQ等账号处理 | 注销或继承 |
| 云存储 | 照片、文档等数字内容 | 下载保存或删除 |
| 数字货币 | 比特币、支付宝等 | 转移或提现 |
| 在线服务 | Netflix、Steam等 | 取消订阅或转让 |
| 电子邮件 | Gmail、Outlook等 | 导出邮件或注销 |
| 金融账户 | 网银、证券等 | 资产清算 |
10.2 遗嘱条款示例
┌─────────────────────────────────────────────────────────┐
│ 遗嘱条款示例 │
├─────────────────────────────────────────────────────────┤
│ │
│ 📱 社交媒体处理 │
│ 请将我的微信账号注销,并通知重要联系人。 │
│ 朋友圈内容请截图保存给家人留念。 │
│ │
│ ☁️ 云存储文件 │
│ 百度网盘中的家庭照片请下载并制作成相册, │
│ 分发给家人。工作相关文档请删除。 │
│ │
│ 💰 数字货币 │
│ 如有数字货币资产,请按照附件中的钱包地址 │
│ 和密钥进行转移。 │
│ │
│ 📧 电子邮箱 │
│ 请导出重要邮件,然后注销账户。 │
│ 订阅服务请全部取消。 │
│ │
└─────────────────────────────────────────────────────────┘
十一、法律考虑
11.1 法律效力
| 国家/地区 | 数字遗嘱法律地位 | 建议 |
|---|---|---|
| 中国 | 尚无明确法律 | 配合传统遗嘱使用 |
| 美国 | 部分州认可 | 咨询当地法律 |
| 欧盟 | GDPR相关保护 | 遵守数据保护法 |
| 日本 | 逐步完善中 | 专业法律咨询 |
11.2 注意事项
⚠️ 重要提示 ⚠️
- 法律咨询:建议在创建数字遗嘱前咨询专业律师
- 定期更新:定期更新遗嘱内容,确保信息准确
- 安全保管:妥善保管遗嘱访问凭证
- 通知家人:让家人知道数字遗嘱的存在
- 配合传统遗嘱:数字遗嘱应与传统遗嘱配合使用
十二、总结
数字遗嘱应用通过系统化的方式帮助用户规划数字遗产的处理方案。应用涵盖数字资产管理、受益人管理、遗嘱条款设置三大核心功能,支持8种数字资产类型,让用户能够全面记录自己的数字资产信息。
应用采用深蓝色主题,营造专业、稳重的氛围。概览页面清晰展示遗嘱状态和资产统计,数字资产页面按类型分类展示所有资产,受益人页面展示受益人信息及其分配的资产,遗嘱条款页面展示具体的处理指令。
安全方面,应用采用密码隐藏显示、数据加密存储、访问控制等多重安全措施,确保用户的敏感信息得到妥善保护。后续版本计划增加生物识别、云端备份、法律咨询等功能,为用户提供更完善的数字遗产规划服务。
在数字化时代,数字遗嘱的重要性日益凸显。通过本应用,用户可以提前规划数字遗产的处理方式,确保自己的数字资产能够按照意愿得到妥善处理,避免重要信息的丢失或不当使用。
规划数字遗产,让重要信息得到妥善处理 📜
更多推荐




所有评论(0)