【标签】 学习工作
【标题】 【学习工作赛道】Cumulo 云仔 —— 一个高一学生用 TRAE 做的全过程学习伙伴 App
0.先和大家打个招呼
大家好,我是一名高一学生。
说实话,我写代码的时间不算长,但一直对 Apple 生态和编程挺感兴趣的。平时没事就喜欢刷刷 WWDC 的视频,虽然很多内容看不太懂,但就是觉得用代码做出一个能用的东西,这件事很酷。
做这个 App 的起因其实很简单——我自己学习上有几个一直解决不了的困扰:课前预习不知道该看什么,上课听着听着就走神去看手机了,课后想复习又不知道重点在哪,每次考试前对着课本发呆。市面上的学习工具我也用过不少,背单词的、记笔记的、计时的,但每节课之间要切换好几个 App,反而更乱了。
所以我就想,能不能做一个 App,把预习、上课、复习这三件事串起来?然后我遇到了 TRAE,发现它真的能帮我把这个想法做出来。
1.Demo 简介
是什么:Cumulo 云仔是一个覆盖「课前预习 → 课中笔记 → 课后复习」全过程的 AI 学习伙伴 App,支持 iPhone、iPad 和 Mac。
面向谁:主要是给我自己和身边同学用的,但也适合所有被"学习碎片化"困扰的中学生和大学生。
主要功能:我用下面这张图表示![]()
(注:由于我的Xcode的软件已经几乎快完成了,所以接下来展示的是使用Simulator中的真实软件UI界面,当然,上传的 HTMLdemo的功能与他的界面、功能完全相同,感兴趣的朋友可以到文章底部查看HTML文件,所有的截屏都以iPad为例)
功能 1:全过程学习闭环 —— 从预习到复习,一个 App 搞定
首页有三大板块入口:课前预习、课中学习、课后自习,还有今日课程时间轴,一眼就能看到今天有什么课、下节是什么。上课的时候可以在 App 里记笔记(支持手写),走神了云仔会提醒你。下课之后有番茄钟和闪卡复习帮你巩固。
主界面:
预习界面:
课中学习界面(我给了用户.md,手写等方式上课):
出题界面(复习):
功能 2:AI 学伴"云仔" —— 不只是聊天,还能帮你操控 App
云仔不是一个普通的 AI 对话框。你可以让它帮你生成预习方案、智能出题、总结笔记,它还能通过 MCP 工具调用直接操控 App 里的功能——比如你说"帮我开启专注模式",它就真的帮你打开番茄钟。底层接的是 DeepSeek 的 API,流式输出,打字机效果。
功能 3:三端原生体验 —— 一份代码,处处原生
整个 App 用纯 SwiftUI 写的,零第三方依赖。iPhone 和 iPad 用底部 TabBar,Mac 用 NavigationSplitView 侧边栏,都是 Apple 原生的交互方式。数据用 SwiftData 持久化,API 密钥存在 Keychain 里。
2.Demo 创作思路
灵感来源:就是自己学习中的真实痛点。每次月考之前,我都不知道从哪里开始复习,课本翻一遍感觉什么都没记住。上课的时候有时候听着听着就走神了,等回过神来已经过了十分钟。我就想,如果有个东西能帮我规划预习重点、在我走神的时候提醒我、课后用科学的方法帮我复习,那学习效率肯定能高不少。
想解决的问题:
-
预习没方向 → 让 AI 根据课程生成预习方案和引导问题
-
上课走神 → 走神检测机制,长时间不记笔记就提醒
-
复习没方法 → SM-2 间隔重复算法做闪卡,番茄钟做专注
-
工具碎片化 → 一个 App 覆盖课前、课中、课后全流程
为什么做这个方向:与其做一个大而全但什么都不精的东西,不如先解决自己的问题。而且学习这件事,每个人都会遇到,做出来至少我和我身边的同学能用。
名字的话,Cumulo 来自拉丁语 cumulus(积云),云仔就是一朵小云的意思,想让它像一朵轻轻陪在你身边的云一样,不打扰但一直在。
技术取舍:全部用 Apple 原生框架(SwiftUI + SwiftData + PencilKit + AVFoundation),没有引入任何第三方依赖。一方面是因为我想保持技术栈干净,另一方面也是 TRAE 对 Swift 原生框架的支持确实很好,基本不需要额外配置。
3.Demo 体验地址
这是一个交互式的 HTML Demo,可以在浏览器中直接体验 App 的核心界面和交互。
体验方式:下载下面的 ZIP 附件,解压后双击 cumulo-demo.html 即可在浏览器中打开。
cumulo-demo.html (85.5 KB)
使用说明:
-
打开后左边是 iPhone 视图,右边是 MacBook 视图,两边是同步的
-
点击底部的 Tab 可以切换页面:云窝(首页)、AI 对话、自习、课堂笔记、我的
-
可以试试:开始番茄钟计时、和云仔聊天(有模拟回复)、在课堂笔记上画画、查看学习报告
说明:这是 App 的交互原型演示,展示核心界面和交互流程。实际 App 功能更丰富(包括真实的 AI 对话、语音转录、手写笔记等),目前还在持续开发中。
4.TRAE 实践过程
整个 Cumulo 从第一行代码到现在,全部是在 TRAE 中完成的。说"全部"可能有点夸张——毕竟 Bug 还是得自己想办法描述清楚(
)。但 TRAE 确实帮我完成了绝大部分的代码编写工作,从 UI 搭建到 AI 集成,从 Bug 修复到三端适配,经历了 19 个迭代 Spec。
下面我按阶段分享一下开发过程。
阶段0:demo制作
SessionID:3687133051630155:22e6141e07f3af2225ae248a38bd34ee_6a4d8c822e13ec6f19ac0aae.6a4d8c822e13ec6f19ac0ab1.6a4d8c822e13ec6f19ac0aaf:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/8 07:32:18)
(这个反而是我最后才想起来的)
阶段 1:UI 基础搭建
第一个任务就是让 TRAE 帮我搭 UI 框架。我跟它说想要一个以天空蓝为主色调的学习 App,底部 Tab 导航,首页有三大板块入口和今日课程时间轴。TRAE 很快就帮我生成了整个颜色系统(DesignTokens)、Tab 导航结构、首页布局,还有云仔吉祥物的基础 SVG 绘制(梦开始的地方)。
速度比我预想的快很多,但一些细节需要反复调整,比如卡片圆角大小、间距比例这些,来来回回改了好几轮才满意。
Session ID:3687133051630155:e29b0a1855abd2322538b5d82578da0d_6a10580ebb34d8a571f72afa.6a10580fbb34d8a571f72afd.6a10580ebb34d8a571f72afb:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/5/22 21:20:15)
阶段 2:AI 对话集成
这一步是最难的,也是踩坑最多的。
我要让 DeepSeek 的流式对话在 SwiftUI 里跑起来,需要做 SSE(Server-Sent Events)解析、多会话管理、SwiftData 持久化。TRAE 帮我生成了整个 AI 服务层的架构,包括输入清洗、意图分类、上下文组装、LLM 流处理、输出防护这条完整的 Pipeline。
但中间遇到了很多问题。最头疼的是 DeepSeek API 返回 HTTP 400 错误——一开始我都不知道怎么回事,TRAE 帮我排查后发现是请求体里缺少了 tool_choice: auto 参数。还有一次工具调用陷入了死循环,AI 一直在反复调用同一个工具停不下来,TRAE 帮我加了一个 ToolCircuitBreaker(工具熔断器)来解决。
这些踩坑经历其实也是很好的学习过程,让我理解了 API 调用和错误处理的复杂性。
Session ID:3687133051630155:71e71b6634508ce18c2b4b25c65dd910_6a10580ebb34d8a571f72afa.6a1079fabb34d8a571f735ae.6a1079f9bb34d8a571f735ac:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/5/22 23:44:58)
阶段 3:MCP 工具调用框架
这是我觉得最酷的部分——让 AI 不只是聊天,还能真正操控 App。
我跟 TRAE 说想做一个 MCP(Model Context Protocol)框架,让 AI 能调用本地功能。TRAE 帮我设计了工具注册表(MCPRegistry)、工具分组(Toolbox)、以及 8 个工具函数:创建预习、生成测验、添加待办、设置专注模式、获取课程表、获取学习报告、搜索上下文、总结笔记。
整个流程是这样的:AI 分析用户意图 → 决定调用哪个工具 → 执行工具函数 → 把结果返回给用户。比如你在对话里说"帮我创建明天的预习计划",AI 就会自动调用创建预习的工具,然后 App 里就真的多了一条预习计划。
调试过程挺痛苦的(可以看到我的Session ID隔了两个月,都在调试他
),但看到 AI 真的能帮你操控 App 的时候,那种感觉太爽了。
Session ID:3687133051630155:d08f1d87878d0f22aed4a1f694e99aad_6a4b427b2e13ec6f19abdd97.6a4b63ea2e13ec6f19abe310.6a4b63ea2e13ec6f19abe30e:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/6 16:14:34)
阶段 4:三端适配
一开始 App 只能在 iPhone 上跑,在 Mac 上打开就是个小窗口,体验很差。
让 TRAE 帮我做了三端适配。主要改动包括:Mac 端用 NavigationSplitView 做侧边栏布局,iPad 和 iPhone 共用底部 TabBar;用 horizontalSizeClass 和自定义的 DeviceLayout.isMac 来判断当前平台;iOS 独有的 API(比如 UIImpactFeedbackGenerator、UIDevice.batteryLevel)用 #if !os(macOS) 包起来;Mac 上摄像头相关的功能做了降级处理(用相册代替拍照)。
最终 iPhone、iPad、Mac 三个平台都编译通过了,虽然 Mac 端的一些细节还需要打磨,但基本框架已经搭好了。
Session ID:3687133051630155:829c656afd9957fc817f14672d4a1ac5_6a4da12d2e13ec6f19ac0ebe.6a4da12d2e13ec6f19ac0ec1.6a4da12d2e13ec6f19ac0ebf:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/8 09:00:29)
阶段 5:走神检测与推送
最后加了一个我很喜欢的功能——走神检测。
思路是这样的:上课的时候,如果用户长时间没有在 App 上写字或操作,说明可能走神了,这时候云仔就会跳出来提醒你"嘿,回来上课啦"。TRAE 帮我分析了这个功能的 spec,设计了检测逻辑和阈值配置,还加了推送通知的支持。
这个功能的参数(比如多久没操作算走神)可以在"我的"页面里自己调节,每个人可以根据自己的注意力情况设置。
Session ID:3687133051630155:064831f92463c198f3b770ffc1b4943c_6a4c71752e13ec6f19abfc46.6a4c72252e13ec6f19abfc87.6a4c72252e13ec6f19abfc85:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/7 11:27:33)
5.写在最后
作为一个高一学生,用 TRAE 做出一个完整的 App,这个过程本身就是一次很好的学习经历。虽然代码大部分是 AI 写的,但每一个功能都是我想出来的,每一个 Bug 都是我和 TRAE 一起解决的。
目前 App 还在开发中,还有很多不够完善的地方——AI 的回答质量有时候不够稳定,iPad 端的体验还需要优化,闪卡复习的算法也需要调参。接下来打算加入更多学科的支持、优化走神检测的准确度、完善学习报告的数据展示。
感谢 TRAE 让我能把想法变成现实。如果你也有学习上的困扰,不妨试试自己做点什么——有 TRAE 帮忙,真的没想象中那么难。
「且将新火试新茶,诗酒趁年华」
社区报名帖链接:
[https://forum.trae.cn/t/topic/71916`]`demo下载(不是上面那个Xcode的工程文件)cumulo-demo.zip (16.5 KB)
——xwyxu
















