ReminiscAR 是一个基于 ARKit 的 iOS 应用,可以将家人的故事和记忆锚定到日常物品上。通过 AR 技术,让物理对象成为触发回忆的"记忆节点"。
- AR 扫描物体 - 识别并锚定真实物品(咖啡杯、相册、椅子等)
- 录制语音故事 - 带实时字幕的语音录制
- 记忆节点可视化 - 在 AR 视图中看到发光的记忆标记
- 双视图浏览 - AR View(增强现实)和 List View(列表视图)
- 家庭互动 - 添加文字或语音回复
- 本地存储 - 所有记忆永久保存在设备上
MemoryLink/
├── test/
│ ├── Models/ # 数据模型
│ │ ├── Memory.swift # 记忆数据结构
│ │ └── MemoryManager.swift # 数据管理器
│ │
│ ├── Views/ # 界面视图
│ │ ├── LaunchView.swift # 启动页
│ │ ├── MainAppView.swift # 主应用(Tab导航)
│ │ ├── ListViewTab.swift # 列表视图
│ │ ├── MemoryDetailView.swift # 记忆详情
│ │ ├── ResponseInputView.swift # 添加回复
│ │ └── ARScanAndRecordView.swift # AR扫描+录音
│ │
│ ├── AppDelegate.swift # 应用入口
│ └── Assets.xcassets/ # 资源文件
│
├── demo/ # Web原型参考
│ ├── index.html
│ ├── script.js
│ └── styles.css
│
└── README.md # 本文件
- macOS 电脑
- Xcode 16+ (支持 iOS 17.0+)
- iPhone 6s 或更新机型(必须真机,模拟器无法运行 ARKit)
- Apple Developer 账号(免费账号即可)
cd /Users/liyuqi/Desktop/DEV/MemoryLink
open test.xcodeproj在 Xcode 中:
- 选择左侧项目导航器中的 test 项目
- 选择 test target
- 点击 Signing & Capabilities 标签
- 在 Team 下拉菜单中选择你的 Apple ID
- 如果没有,点击 Add Account... 登录
- 用 USB 线连接 iPhone 到 Mac
- iPhone 上信任此电脑
- 在 Xcode 顶部选择你的 iPhone 设备
- 点击 Xcode 左上角的
▶️ 运行按钮(或按Cmd + R) - 首次运行会提示"未受信任的开发者"
- 在 iPhone 上:
- 设置 → 通用 → VPN与设备管理
- 找到你的 Apple ID,点击信任
- 回到 Xcode 再次运行
应用启动时会请求:
- ✅ 摄像头权限(必需)
- ✅ 麦克风权限(录音必需)
- Explore Memories - 进入主应用
- 显示统计信息:记忆节点数量、贡献者
- 显示最近的记忆预览
- 实时 AR 摄像头视图
- 显示发光的记忆节点
- 点击 + 按钮创建新记忆
- 所有记忆的列表
- 可按时间/对象排序
- 点击任意记忆查看详情
- 扫描物体 - 对准要绑定的物品
- 录制故事 - 点击录音按钮讲述故事
- 编辑信息 - 填写标题、物品名称、选择 emoji
- 保存 - 记忆节点创建完成
- 播放音频
- 阅读文字转录
- 查看家人回复
- 添加自己的回复
- 渐变色 - 青绿色(#4ecdc4)作为主题色
- 发光效果 - 记忆节点使用金黄色光晕
- 现代 iOS 风格 - 圆角、毛玻璃、阴影
- 流畅动画 - 页面切换、节点浮动效果
- 直观操作 - 大按钮、清晰提示
- 反馈及时 - 录音时实时波形可视化
- id: UUID // 唯一标识
- title: String // 标题(例如"奶奶的巴黎杯子")
- objectName: String // 物品名称("咖啡杯")
- objectEmoji: String // 表情符号("☕️")
- transcript: String // 语音转文字
- audioFileName: String? // 音频文件
- audioDuration: TimeInterval // 音频时长
- creator: String // 创建者
- createdDate: Date // 创建时间
- responses: [MemoryResponse] // 回复列表- id: UUID
- authorName: String // 回复者名字
- content: String // 回复内容
- isVoiceNote: Bool // 是否语音
- createdDate: Date- SwiftUI - 现代声明式 UI 框架
- ARKit - Apple 的增强现实框架
- AVFoundation - 音频录制和播放
- Combine - 响应式编程
- UserDefaults - 本地数据持久化
当前版本是一个功能完整的 MVP(最小可行产品),以下功能可以进一步完善:
- 实际的 AR 物体识别(替换模拟视图)
- 真实音频录制和播放
- Speech-to-Text 语音转文字集成
- 音频文件管理
- 语音回复功能
- 记忆地图视图(显示空间分布)
- iCloud 同步(家庭成员共享)
- 导出/分享记忆
- 自定义 emoji 图标
- 记忆标签和分类
- 搜索功能
- 深色模式优化
A: ARKit 必须使用真机,模拟器不支持摄像头和传感器。
A:
- 确保授予了摄像头和麦克风权限
- 检查是否信任了开发者证书
- iOS 版本必须 ≥ 17.0
A: 确保在系统设置中授予了麦克风权限。
A: 当前版本使用模拟视图,真实 AR 功能需要进一步开发。
本项目仅供学习和演示使用。
- 项目创建: 2025
- 基于原型: demo/ 文件夹中的 Web 原型
# 1. 克隆项目
git clone <repository-url>
# 2. 打开项目
open test.xcodeproj
# 3. 连接 iPhone 并运行
# 按 Cmd + R祝你使用愉快!如有问题,请查看常见问题或提交 Issue。