1、继续让Cursor优化应用,主要是按钮位置和交互逻辑,需求如下:
1.在模拟器中运行发现收藏夹在会话列表顶部,但是和上边缘之间没有边距,比较难看
2.AI对话界面没有返回至会话列表的按钮,需要改为“通过下滑对话界面和点击返回按钮返回至会话列表”
3.设置按钮放在打开新对话按钮的旁边吧,用图标表示,不用放在每个对话界面的右上角了
2、提交需求后Cursor快速修改代码并进行构建测试、修复问题,并提示构建成功
3、继续在Xcode中测试,发现上述优化已经基本更新完成,只有收藏按钮略丑,后面再继续优化
4、下一步继续优化界面和交互逻辑,包括:默认以对话中的第一个问题作为对话标题、允许用户长按修改对话标题、删除对话、置顶对话,并且将对话、收藏作为应用底部的两个tab。Cursor在询问几个细节问题之后开始分解任务,并对应用进行分步骤优化
5、其中涉及对话数据结构的存储问题,包含本地数组、UserDefaults、CoreData三种形式,Cursor建议短期内可以先用UserDefaults,如果数据量大、需要复杂查询的话,以后再切换成CoreData
6、修改结束,让Cursor检查后提示可以正常构建,之后在Xcode中用模拟器测试,发现对话列表顶部仍然有收藏夹,然后对话页面顶部的“会话列表”需要改成“全部对话”,继续让Cursor修改,之后测试提示构建成功,仅有一处不影响运行的警告,也让Cursor修改了
7、继续在Xcode中用模拟器测试,测试正常,已经基本达成需求,还有一处小细节需要优化,对话列表和顶部的“全部对话”中间离得太近,需要适当增加一些边距,继续让Cursor优化,然后在Xcode中继续测试,OK了,今天就先到这里
标签: DevLog
DevLog:2025年7月8日
1、在GitHub创建了AINOTE仓库,询问AI后发现需要使用终端命令、生成密钥、克隆仓库到本地等操作,以后再试
2、测试使用Cursor修改由Trae创建的项目,在Cursor中打开test_2,测试如下需求:
检查一下这个App有没有可以优化的地方
3、Cursor给出一些“优化和提升用户体验、代码质量的建议”,比如考虑支持快捷键、加载状态提示、细化错误提示、过滤输入内容、提升可维护性、支持长按复制消息内容等
4、进一步明确需求:
1.我需要给这个App增加对回车发送消息的支持
2.允许用户开启新对话,并随时返回查看过往的对话列表
3.支持长按消息复制、删除或收藏
4.增加一个集中管理收藏内容的地方,可以放在对话列表的最前面
5.细化错误提示
6.应用你建议中第4条里的1和3对代码可维护性进行优化
Cursor会对需求进行分解并列出详细的开发任务,可以选择优先实现某一项,也可以按顺序逐步进行,按顺序进行的话,每完成一项需要确认继续下一项
7、上述步骤完成后,提出“结合最新的应用特性,优化一下README”文件,Cursor对README进行了优化
8、之后由Cursor检查是否存在问题,在修正问题之后提示构建成功,之后在Xcode中测试,模拟器测试可以打开,但界面存在一些交互逻辑上的问题,后续再行调整
DevLog:2025年7月7日
1、开始测试Cursor,虽然是全英文界面,但在对话时完全可以直接使用中文,内置了一些模型,也可以自行添加兼容OpenAI的模型,创建文件夹test_c
2、提出需求“创建一个名为AINOTE的备忘录应用,内置富文本编辑器和AI对话功能,AI对话功能可使用兼容OpenAI的自定义大模型,可以将AI生成的内容收藏到备忘录中,该应用支持iOS设备”,Cursor会提示进一步明确、补充需求细项,让需求更具体,并且给出建议的技术栈、数据存储和同步方案等,之后给出项目结构、主要功能模块、关键技术点和开发计划,下一步即将生成项目初始化代码和主要模块的SwiftUI代码骨架
3、确认之后开始编写:按以下结构组织项目、创建主要的应用文件结构、创建数据模型、创建服务层、创建视图模型、创建主要的视图文件、创建备忘录列表视图、创建备忘录编辑视图、创建AI对话视图、创建设置视图、创建资源文件、创建README文件,之后开始修复代码中的问题、创建启动脚本帮助用户快速开始,chmod +x setup.sh 赋予可执行权限,之后便提示创建完成,到目前大概二十多分钟时间,并且支持iOS 17及以上
4、使用Xcode打开该项目时会提示
The project ‘AINOTE’ is damaged and cannot be opened. Examine the project file for invalid edits or unresolved source control conflicts.
Path: /Users/jinlei.wu/Desktop/test_c/AINOTE.xcodeproj
Exception: -[PBXGroup buildPhase]: unrecognized selector sent to instance 0x600003245ad0
Cursor猜测项目文件有问题,确认之后Cursor开始重新创建项目文件,配置Swift文件引用关系,之后提示可以正常使用
5、再次使用Xcode打开,Xcode提示存在3个小问题,但已经可以正常运行,且界面精致程度(再次吐槽Trae写的App竟然不会全屏)、功能丰富程度(仅对比AI对话界面)要优于Trae编的App
6、Xcode提示的三个小问题,交给Cursor修复:
Xcode提示这三个小问题,帮我修复一下
Desktop/test_c/AINOTE/Models/Note.swift:5:9 Immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
Desktop/test_c/AINOTE/Models/AIMessage.swift:4:9 Immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
Desktop/test_c/AINOTE/Views/AIChatView.swift:60:26 ‘onChange(of:perform:)’ was deprecated in iOS 17.0: Use ‘onChange’ with a two or zero parameter action closure instead.
Cursor会快速修复并验证,提示成功,代码符合最新的Swift和iOS开发标准
7、再次使用Xcode打开,已经没有任何错误提示,就目前这种简单的应用编写和测试结果来看,Cursor的确要比Trae更胜一筹,Cursor会进一步明确需求、快速修复问题,且修复成功率更高,不清楚是否是因为我在Trae中主要使用的是Claude Sonnet 4,后续再对比测试
DevLog:2025年7月4日
1、得知在开发和测试阶段完全不需要交688
2、继续让Trae解决前一天的问题,猜测可能需求有些复杂了,于是简化需求:简化一下这个App,只允许用户添加一个大模型的API,无需添加多个模型并在不同模型间切换
3、Trae快速对前一天的代码和文件进行删减,并进行构建,提示构建成功,放到Xcode中会提示Build Failed,再次在Trae测试后仍然提示构建成功,已经解决了之前的构建错误
4、于是用Xcode打开当前项目,提示构建失败,但看了下错误提示,是缺少了两个文件夹,在项目文件夹的指定位置创建文件夹后再试,构建成功!模拟器启动,已经可以打开App、打开设置界面了,但未测试能否添加模型、能否与AI对话
5、发现这个App在模拟器上不能全屏运行,界面上面和下面都有大黑边,复制一份项目文件夹(命名test_2),让Trae尝试修正不能全屏的问题,Trae经过调整后表示已经修正,且构建成功
6、使用Xcode打开之后,提示构建成功,但还是不能全屏,继续让Trae修正,Trae修正后构建成功,再次打开Xcode打开test_2,已经可以全屏显示,并且避开了顶部的灵动岛,但输入框和发送按钮太靠近底部边缘,继续让Trae修正,添加了底部边距之后界面基本OK了,不是很理解,明明Trae在编写App时iOS系统版本是18.5以上,为什么还会有这种应用不全屏的问题
7、另外使用Xcode打开时还出现了如下错误提示:
/Users/jinlei.wu/Desktop/test/ChatApp/ChatView.swift:38:22 ‘onChange(of:perform:)’ was deprecated in iOS 17.0: Use ‘onChange’ with a two or zero parameter action closure instead.
询问豆包后得知,这是 Xcode 针对 iOS 17 及以上版本的 SwiftUI 代码给出的警告,表明Trae使用的onChange(of:perform:)方法已经被弃用,需要改用新的语法,参考豆包的答复稍作修改,错误提示消失
8、注册并下载了另一个AI编程工具Cursor,以后再试,先继续用Trae调整test_2
DevLog:2025年7月3日
1、首次测试AI编程工具Trae,接入了OpenRouter平台的Claude Sonnet 4
2、在Trae中输入应用需求后,创建项目文件夹(命名test),AI快速编写了iOS App,但我并没有进行构建测试,也不清楚是否有问题,需求:生成一个使用SwiftUI编写的对话App,可以通过该App与OpenAI兼容格式的大模型对话
3、进一步丰富了应用需求:继续完善这个App,需要允许用户添加多个大模型,并且在聊天过程中可以随时切换大模型
4、但Trae貌似陷入了死循环,不停地出现构建失败、检查问题、修复问题、再构建失败的情况,将模型切换成DeepSeek-R1之后不能直接帮我修改问题,只会分析问题可能出现在哪儿
5、用Xcode打开当前项目,提示构建失败,没注意看错误提示是啥
6、使用Trae的过程中多次收到提示“模型思考次数已达上限,请输入“继续”后获得更多结果”,且多次出现文件被截断的问题
7、注册了Apple开发者账号并且交了688