欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net

一、项目概述

运行效果图

image-20260408220955808

image-20260408221006399

image-20260408221011576

image-20260408221016061

image-20260408221022943

1.1 应用简介

记忆胶囊是一款独特的数字遗产应用,核心理念是"为后人留下你的数字记忆"。在这个数字化的时代,我们的记忆不再只是脑海中的片段,而是可以以数字形式保存、传承的珍贵财富。本应用让用户能够创建记忆胶囊,将人生故事、智慧感悟、爱意表达等内容封存起来,在指定的时间开启,传递给指定的人。

记忆胶囊的概念源于时间胶囊,但更加个人化和情感化。每个人的一生都有太多值得记录和传承的瞬间——那些人生的智慧、对家人的爱、未说出口的话、珍贵的回忆。记忆胶囊为这些珍贵的情感和智慧提供了一个安全的归宿,让它们能够在合适的时机传递给最珍视的人。

1.2 核心功能

功能模块 功能描述 实现方式
胶囊创建 创建新的记忆胶囊 表单输入 + 类型选择
类型分类 按记忆类型分类管理 枚举分类 + 颜色标识
时间设定 设置胶囊开启时间 年限选择 + 日期计算
接收人指定 指定胶囊接收人 文本输入 + 关联显示
加密保护 可选的加密保护 开关控制 + 状态标识
胶囊开启 到期后开启胶囊 条件判断 + 内容展示

1.3 胶囊状态

序号 状态 Emoji 颜色 说明
1 封存中 🔒 #7B1FA2 胶囊已创建,等待开启时间
2 待开启 #FF9800 开启时间临近
3 已开启 #4CAF50 胶囊已打开,内容可见

1.4 记忆类型

序号 类型 Emoji 颜色 描述
1 故事 📖 #E91E63 人生故事和经历
2 智慧 💡 #FFC107 人生感悟和智慧
3 爱意 ❤️ #F44336 对亲人的爱与情感
4 建议 🎯 #2196F3 给后人的建议和忠告
5 秘密 🤫 #9C27B0 从未说出口的秘密
6 梦想 🌟 #00BCD4 未实现的梦想和愿望
7 感恩 🙏 #4CAF50 想要表达的感恩之情
8 传承 🏛️ #795548 家族传承和遗产

1.5 技术栈

技术领域 技术选型 版本要求
开发框架 Flutter >= 3.0.0
编程语言 Dart >= 2.17.0
设计规范 Material Design 3 -
状态管理 setState -
动画控制 AnimationController -
目标平台 鸿蒙OS / Web API 21+

二、项目结构

lib/
├── main_memory_capsule.dart        # 应用主入口
│   ├── MemoryCapsuleApp            # 根应用组件
│   ├── CapsuleStatus               # 胶囊状态枚举
│   ├── MemoryType                  # 记忆类型枚举
│   ├── MemoryCapsule               # 记忆胶囊模型
│   └── MemoryCapsuleHomePage       # 主页面

三、数据模型

3.1 CapsuleStatus 枚举

enum CapsuleStatus {
  sealed('封存中', '🔒', Color(0xFF7B1FA2)),
  ready('待开启', '⏳', Color(0xFFFF9800)),
  opened('已开启', '✨', Color(0xFF4CAF50));

  final String label;
  final String emoji;
  final Color color;
}

3.2 MemoryType 枚举

enum MemoryType {
  story('故事', '📖', Color(0xFFE91E63)),
  wisdom('智慧', '💡', Color(0xFFFFC107)),
  love('爱意', '❤️', Color(0xFFF44336)),
  advice('建议', '🎯', Color(0xFF2196F3)),
  secret('秘密', '🤫', Color(0xFF9C27B0)),
  dream('梦想', '🌟', Color(0xFF00BCD4)),
  gratitude('感恩', '🙏', Color(0xFF4CAF50)),
  legacy('传承', '🏛️', Color(0xFF795548));

  final String label;
  final String emoji;
  final Color color;
}

3.3 MemoryCapsule 模型

class MemoryCapsule {
  final String id;                    // 胶囊唯一标识
  final String title;                 // 胶囊标题
  final MemoryType type;              // 记忆类型
  final String content;               // 记忆内容
  final String recipient;             // 接收人
  final DateTime createdAt;           // 创建时间
  final DateTime openAt;              // 开启时间
  final CapsuleStatus status;         // 胶囊状态
  final String? photoDescription;     // 照片描述
  final bool isEncrypted;             // 是否加密

  Duration get remainingTime => openAt.difference(DateTime.now());
  bool get canOpen => DateTime.now().isAfter(openAt);
  int get daysRemaining => remainingTime.inDays;
}

四、核心功能实现

4.1 胶囊创建流程

点击创建胶囊

选择记忆类型

输入胶囊标题

指定接收人

编写记忆内容

设置开启时间

是否加密?

开启加密保护

跳过加密

封存胶囊

显示成功提示

4.2 时间计算逻辑

void _createCapsule(
  MemoryType type,
  String title,
  String content,
  String recipient,
  int openYears,
  bool isEncrypted,
) {
  final now = DateTime.now();
  final openAt = DateTime(now.year + openYears, now.month, now.day);

  final capsule = MemoryCapsule(
    id: now.millisecondsSinceEpoch.toString(),
    title: title,
    type: type,
    content: content,
    recipient: recipient,
    createdAt: now,
    openAt: openAt,
    status: CapsuleStatus.sealed,
    isEncrypted: isEncrypted,
  );
}

4.3 开启条件判断

bool get canOpen => DateTime.now().isAfter(openAt);

Duration get remainingTime => openAt.difference(DateTime.now());

int get daysRemaining => remainingTime.inDays;

4.4 胶囊开启流程

胶囊系统 应用 用户 胶囊系统 应用 用户 alt [已加密] alt [时间未到] [时间已到] 点击开启胶囊 检查开启条件 验证时间是否到达 提示等待开启时间 检查加密状态 要求输入密码 输入密码 验证密码 返回胶囊内容 展示记忆内容

4.5 统计数据计算

Widget _buildStatsCard(int sealedCount, int openedCount) {
  final sealedCount = _capsules.where((c) => c.status == CapsuleStatus.sealed).length;
  final openedCount = _capsules.where((c) => c.status == CapsuleStatus.opened).length;
  final totalCount = _capsules.length;
}

五、界面设计

5.1 主页面布局

┌─────────────────────────────────────┐
│  💊 记忆胶囊                         │
│     为后人留下你的数字记忆           │
├─────────────────────────────────────┤
│  ┌─────────────────────────────┐    │
│  │      我的记忆胶囊           │    │
│  │  🔒封存中  ✨已开启  📦总计 │    │
│  │    2         1        3    │    │
│  └─────────────────────────────┘    │
├─────────────────────────────────────┤
│  最近的胶囊                          │
│  ┌─────────────────────────────┐    │
│  │ 🔒 给孙子的信      封存中   │    │
│  │    故事 · 给:孙子小明       │    │
│  │                    365天后  │    │
│  └─────────────────────────────┘    │
│  ┌─────────────────────────────┐    │
│  │ ✨ 人生智慧        已开启   │    │
│  │    智慧 · 给:子女们         │    │
│  │                    可开启   │    │
│  └─────────────────────────────┘    │
├─────────────────────────────────────┤
│  快速创建                            │
│  ┌─────┐┌─────┐┌─────┐             │
│  │ 📖  ││ 💡  ││ ❤️  │             │
│  │故事 ││智慧 ││爱意 │             │
│  │记录 ││传承 ││表达 │             │
│  └─────┘└─────┘└─────┘             │
│                                     │
│         [创建胶囊]                   │
└─────────────────────────────────────┘

5.2 胶囊库页面

┌─────────────────────────────────────┐
│  胶囊库                        3个胶囊│
├─────────────────────────────────────┤
│  ┌─────────────────────────────┐    │
│  │ 🔒 给孙子的信               │    │
│  │    故事 · 封存中            │    │
│  │ ┌───────────────────────┐  │    │
│  │ │👤 接收人: 孙子小明     │  │    │
│  │ │⏰ 开启时间: 2026年...  │  │    │
│  │ └───────────────────────┘  │    │
│  │                365天后开启  │    │
│  └─────────────────────────────┘    │
│  ┌─────────────────────────────┐    │
│  │ ✨ 人生智慧                 │    │
│  │    智慧 · 已开启            │    │
│  │ ┌───────────────────────┐  │    │
│  │ │👤 接收人: 子女们       │  │    │
│  │ │⏰ 开启时间已到         │  │    │
│  │ └───────────────────────┘  │    │
│  │         [开启胶囊]          │    │
│  └─────────────────────────────┘    │
└─────────────────────────────────────┘

5.3 创建胶囊弹窗

┌─────────────────────────────────────┐
│              ────                   │
│                                     │
│  ➕ 创建记忆胶囊                     │
│                                     │
│  记忆类型                            │
│  [📖故事] [💡智慧] [❤️爱意]         │
│  [🎯建议] [🤫秘密] [🌟梦想]         │
│  [🙏感恩] [🏛️传承]                  │
│                                     │
│  胶囊标题                            │
│  ┌─────────────────────────────┐   │
│  │ 给这个记忆起个名字           │   │
│  └─────────────────────────────┘   │
│                                     │
│  接收人                              │
│  ┌─────────────────────────────┐   │
│  │ 这个记忆留给谁?             │   │
│  └─────────────────────────────┘   │
│                                     │
│  记忆内容                            │
│  ┌─────────────────────────────┐   │
│  │ 写下你想留给后人的话...      │   │
│  │                             │   │
│  │                             │   │
│  └─────────────────────────────┘   │
│                                     │
│  开启时间                            │
│  [1年后] [3年后] [5年后] [10年后]   │
│                                     │
│  加密保护                    [开关] │
│  开启后需要密码才能查看内容          │
│                                     │
│  ┌─────────────────────────────┐   │
│  │         封存胶囊             │   │
│  └─────────────────────────────┘   │
└─────────────────────────────────────┘

六、动画效果

6.1 图标浮动动画

_floatController = AnimationController(
  vsync: this,
  duration: const Duration(milliseconds: 2000),
)..repeat(reverse: true);

AnimatedBuilder(
  animation: _floatController,
  builder: (context, child) {
    return Transform.translate(
      offset: Offset(0, _floatController.value * 5),
      child: child,
    );
  },
)

6.2 脉冲动画

_pulseController = AnimationController(
  vsync: this,
  duration: const Duration(milliseconds: 1500),
)..repeat(reverse: true);

AnimatedBuilder(
  animation: _pulseController,
  builder: (context, child) {
    return Container(
      decoration: BoxDecoration(
        boxShadow: [
          BoxShadow(
            color: Colors.purple.withValues(
              alpha: 0.3 + _pulseController.value * 0.2
            ),
            blurRadius: 10 + _pulseController.value * 5,
          ),
        ],
      ),
    );
  },
)

七、运行与调试

7.1 运行命令

# 运行到鸿蒙设备
flutter run -d harmony lib/main_memory_capsule.dart

# 运行到Web服务器
flutter run -d web-server -t lib/main_memory_capsule.dart --web-port 8130

# 运行到Windows
flutter run -d windows -t lib/main_memory_capsule.dart

# 代码分析
flutter analyze lib/main_memory_capsule.dart

7.2 功能测试清单

测试项 测试内容 预期结果
创建胶囊 创建新的记忆胶囊 胶囊成功创建
类型选择 选择不同记忆类型 类型正确显示
时间设定 设置不同开启时间 时间正确计算
加密保护 开启加密功能 加密状态正确
胶囊开启 开启到期胶囊 内容正确展示
统计显示 查看胶囊统计 数据计算正确

八、扩展方向

8.1 后端集成

┌─────────────┐     HTTPS      ┌─────────────┐
│   客户端    │ ←─────────────→ │   服务器    │
└─────────────┘                 └─────────────┘
       │                               │
       │  胶囊数据同步                 │
       │  用户认证                     │
       │  通知推送                     │
       │  多媒体存储                   │
       ↓                               ↓
┌─────────────┐                 ┌─────────────┐
│  本地存储   │                 │  云端数据库 │
└─────────────┘                 └─────────────┘

8.2 功能扩展计划

版本 功能 描述
v1.1 数据持久化 本地数据库存储
v1.2 多媒体支持 添加照片、视频、音频
v1.3 通知提醒 胶囊开启时推送通知
v1.4 多人接收 支持多个接收人
v1.5 社交分享 分享已开启的胶囊

8.3 高级功能

记忆胶囊

多媒体

通知系统

安全功能

照片存储

视频录制

语音留言

到期提醒

推送通知

邮件通知

密码保护

指纹解锁

双重验证


九、使用场景

9.1 典型使用场景

💊 记忆胶囊使用场景 💊

场景 描述 记忆类型
人生智慧 传承人生经验和智慧 智慧、建议
情感表达 表达未说出口的爱 爱意、感恩
秘密告白 分享从未说出的秘密 秘密
梦想传承 传递未实现的梦想 梦想、故事
家族传承 传承家族历史和传统 传承、故事

9.2 使用建议

┌─────────────────────────────────────────────────────────┐
│                   使用建议                              │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  📝 内容建议                                             │
│     • 真诚地表达自己的感受                               │
│     • 分享人生经验和教训                                 │
│     • 记录珍贵的回忆和故事                               │
│     • 表达对亲人的爱和感恩                               │
│                                                          │
│  ⏰ 时间建议                                             │
│     • 选择合适的开启时间                                 │
│     • 考虑接收人的年龄和状态                             │
│     • 重要纪念日可以选择                                 │
│     • 给自己留出修改时间                                 │
│                                                          │
│  🔒 安全建议                                             │
│     • 敏感内容建议加密                                   │
│     • 妥善保管密码                                       │
│     • 定期检查胶囊状态                                   │
│     • 告知信任的人胶囊存在                               │
│                                                          │
└─────────────────────────────────────────────────────────┘

十、情感价值

10.1 记忆传承的意义

维度 意义 价值
情感 传递爱与关怀 情感连接
智慧 传承人生经验 精神财富
历史 记录家族故事 文化传承
身份 帮助后人了解根源 身份认同

10.2 数字遗产概念

💎 数字遗产的价值 💎

什么是数字遗产

  • 数字形式保存的个人记忆
  • 可以长期保存和传承
  • 不受物理空间限制
  • 随时随地可以访问

数字遗产的优势

  • 永久保存,不会褪色
  • 方便传递和分享
  • 多媒体形式丰富
  • 安全可靠有保障

十一、心理学视角

11.1 记忆与情感

┌─────────────────────────────────────────────────────────┐
│                   记忆与情感                            │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  🧠 记忆的本质                                           │
│     • 记忆是情感的载体                                   │
│     • 情感赋予记忆意义                                   │
│     • 记忆塑造身份认同                                   │
│     • 传承记忆延续生命                                   │
│                                                          │
│  💝 情感表达                                             │
│     • 帮助处理未完成的情感                               │
│     • 表达平时难以启齿的爱                               │
│     • 留下永恒的情感印记                                 │
│     • 让爱跨越时空传递                                   │
│                                                          │
│  🌈 心理健康                                             │
│     • 记录过程本身就是疗愈                               │
│     • 帮助梳理人生经历                                   │
│     • 增强生命意义感                                     │
│     • 减少对死亡的恐惧                                   │
│                                                          │
└─────────────────────────────────────────────────────────┘

11.2 传承心理学

心理需求 满足方式 应用价值
存在感 留下自己的印记 确认自我价值
连接感 与后人建立联系 延续情感纽带
意义感 传承有价值的内容 赋予生命意义
安全感 确保内容安全传递 减少后顾之忧

十二、总结

记忆胶囊应用通过"为后人留下你的数字记忆"的核心理念,为用户提供了一种独特的情感传承工具。应用涵盖胶囊创建、类型分类、时间设定、接收人指定、加密保护、胶囊开启六大核心功能,让用户能够将珍贵的记忆和情感封存起来,在合适的时机传递给最珍视的人。

应用采用紫色主题,象征神秘与珍贵。主页面清晰展示胶囊统计、最近的胶囊和快速创建入口。胶囊库页面展示所有胶囊,每个胶囊都包含类型、状态、接收人、开启时间等详细信息。

记忆类型涵盖故事、智慧、爱意、建议、秘密、梦想、感恩、传承八个维度,覆盖了人生中各种珍贵的情感和经历。胶囊状态分为封存中、待开启、已开启三种,让用户清晰了解每个胶囊的状态。

开启时间支持1年、3年、5年、10年四个选项,用户可以根据需要选择合适的开启时间。加密保护功能让敏感内容得到更好的保护,只有输入正确密码才能查看内容。

应用采用Material Design 3设计规范,遵循Flutter最佳实践,代码结构清晰,易于维护和扩展。后续版本计划增加数据持久化、多媒体支持、通知提醒、多人接收、社交分享等功能,为用户提供更完整的记忆传承体验。

通过记忆胶囊应用,用户可以将珍贵的记忆和情感封存起来,让爱与智慧跨越时空传递,为后人留下永恒的精神财富。

封存记忆,传承爱与智慧 💊

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐