从 0 到可安装 iPhone App:我做了一个 AI 心理疗愈助手 MindHeal AI

从 0 到可安装 iPhone App:我做了一个 AI 心理疗愈助手 MindHeal AI

这次挑战赛中,我完成了一个 iPhone App:MindHeal AI。它是一个面向情绪陪伴、心理疏导和正念练习的 AI 应用,目标不是替代专业心理咨询,而是在用户日常情绪波动、焦虑、压力较大时,提供一个温和、低门槛、随时可用的陪伴工具。

整个实践过程不仅包含 UI 设计、SwiftUI 开发、AI 接口接入,也包括真机打包、模拟器测试、隐私安全和交互细节优化。

一、项目目标

MindHeal AI 的核心目标是做一个“轻量但有温度”的 AI 心理陪伴工具。

主要功能包括:

  1. AI 对话陪伴
    用户可以像聊天一样表达情绪,AI 会以温和、共情的方式回应。

  2. 场景化疗愈
    支持职场压力、亲密关系、社交焦虑、失眠情绪、自我内耗等不同场景。

  3. 紧急平复
    当用户处在焦虑或情绪崩溃状态时,可以快速获得呼吸引导和稳定练习。

  4. 情绪记录
    用户可以记录当下情绪,帮助自己观察情绪变化。

  5. 正念工具
    包括呼吸练习和白噪音助眠等辅助疗愈工具。

  6. 多模型配置
    支持 MiniMax、GPT、Claude、Gemini、豆包、通义千问等模型配置,当前已成功跑通 MiniMax API。

二、技术选型

这次项目主要使用:

  • SwiftUI:完成 iOS 原生界面开发

  • Xcode / iOS Simulator:进行构建和调试

  • MiniMax API:提供 AI 对话能力

  • Keychain:安全保存用户 API Key

  • UserDefaults:保存本地会话、情绪记录和配置

  • Supabase Swift:作为后续云同步和账户能力的基础

我选择 SwiftUI 是因为它非常适合快速构建 iOS 原生应用,尤其在响应式状态管理、弹窗、导航和组件复用方面效率很高。

三、UI 设计优化

项目初版 UI 偏深色、科技感较强,但心理疗愈类应用更需要轻松、舒适、柔和的氛围。因此我后续将整体风格调整为“小清新”方向。

主要调整包括:

  1. 色彩从深色科技风改为浅色疗愈风
    使用浅绿、薄荷色、柔和白色作为主色调,减少视觉压迫感。

  2. 背景从强动画改为柔和渐变
    避免过度炫技,让用户更容易沉浸在对话和情绪表达中。

  3. 卡片和按钮更轻盈
    降低边框和阴影强度,让界面更干净。

  4. 聊天气泡更温和
    用户消息使用清晰主色,AI 消息使用浅色卡片,整体更接近陪伴类产品。

  5. 修复浅色主题下可读性问题
    例如模型选择页中部分文字颜色过浅,已统一调整为适合浅色背景的文本颜色。

四、核心功能实现

1. AI 对话

AI 对话的核心流程是:

用户输入内容
→ 本地保存用户消息
→ 调用 MiniMax Chat Completion 接口
→ 解析 AI 回复
→ 保存并展示 AI 消息

在测试中发现,MiniMax 的正确中国区 endpoint 是:

https://api.minimaxi.com/v1

模型名使用:

MiniMax-M2.7

修正之后,API 测试成功,App 内也可以正常连接 AI。

2. 隐藏 think 内容

接入 AI 后发现,有些模型会在回答中输出 … 这类思考内容。对于用户来说,最终只需要看到自然、简洁的回复,不应该看到模型推理过程。

因此我在服务层做了统一清洗:

  • 移除 …

  • 移除 …

  • 移除 think 代码块

  • 只展示最终回答

同时也在系统提示词里明确要求模型不要输出思考过程。

3. API Key 安全存储

一开始 API Key 如果直接放在配置文件或 UserDefaults 中,会有安全风险。后续我改为使用 iOS Keychain 保存 API Key。

这样做的好处是:

  • API Key 不会明文保存在普通本地配置中

  • 用户退出或清理配置时可以删除

  • 更符合 iOS 安全实践

4. 场景化对话

原来点击场景后只是关闭弹窗,没有真正改变对话状态。后续我修复为:

选择场景
→ 创建对应场景会话
→ 自动生成场景引导语
→ 用户可以直接开始表达问题

例如选择“职场压力”后,App 会提示用户可以先说出当前最困扰的工作问题。

5. 紧急平复兜底

如果用户还没配置 AI 模型,点击“紧急平复”原本没有明显反馈。这个体验非常不好,因为紧急平复恰恰是高压力场景下最需要稳定反馈的功能。

我加入了本地兜底引导:

  • 双脚踩地

  • 4 秒吸气、2 秒停顿、6 秒呼气

  • 说出眼前能看到的 3 样东西

  • 如有自伤或伤害他人风险,立即联系真实的人和紧急服务

这样即使 AI 暂时不可用,App 也不会让用户无助地卡住。

五、测试过程中发现的问题

这次我没有只停留在“能编译”,而是实际用模拟器跑了一遍核心路径,发现并修复了多个问题。

主要问题包括:

  1. App 初始黑屏
    修复了 Info.plist 和 Bundle ID 相关配置问题。

  2. 未配置模型时发送消息无反馈
    现在会显示明确系统提示。

  3. 场景选择没有实际效果
    现在会创建场景对话并显示引导语。

  4. 呼吸练习弹窗白屏
    原因是 SwiftUI sheet 状态竞争,已改为 sheet(item:)。

  5. 白噪音需要重复选择
    现在点击白噪音卡片后会直接进入对应声音播放器。

  6. 模型选择页浅色主题文字不可见
    已修复可读性。

  7. MiniMax API 默认地址和模型名不匹配
    已改为可用的中国区 endpoint 和模型名。

  8. AI 返回 think 内容
    已在服务层做统一清洗。

六、最终打包结果

项目最终已经成功构建并导出 iOS 安装包。

需要注意的是,iPhone 不能安装 Android 的 .apk,iOS 对应的是 .ipa。

本次导出的包为 development 签名包,可以用于开发者账号允许范围内的真机安装。

七、实践收获

这次实践最大的收获不是单点功能,而是完整跑通了一个 iOS AI App 从开发到可安装包的闭环:

  1. 从产品目标出发设计功能

  2. 用 SwiftUI 完成原生 App

  3. 接入真实 AI 模型 API

  4. 处理密钥安全和隐私问题

  5. 在模拟器中实际测试交互路径

  6. 根据测试结果修复体验问题

  7. 最终完成 iOS archive 和 ipa 导出

过程中也让我意识到,AI App 的关键不只是“能不能调用模型”,而是模型失败、网络异常、用户情绪敏感场景下,产品是否仍然有清晰、稳定、负责任的反馈。

八、总结

MindHeal AI 是一次完整的 AI 原生应用实践。它结合了心理陪伴场景、AI 对话能力、正念工具和 iOS 原生体验。

目前项目已经完成基础可用版本,后续还可以继续优化:

  • 增加真实账户体系和云同步

  • 完善情绪趋势图表

  • 增加更专业的危机干预提示

  • 支持更多模型的稳定适配

  • 做真机长期体验测试

  • 上架 TestFlight 或 App Store

这次挑战赛让我更完整地体验了一次从创意、开发、调试到打包交付的全过程。对我来说,MindHeal AI 不只是一个 Demo,而是一个真正可以继续打磨成产品的起点。

有图片吗 看看