DevLog:2025年7月28日

1、上周经历了Trae、Lingma和Cursor的多轮修改之后,DoitWith原本已经具备的删除Todo和回收站功能暂时消失了,但RecycleBinView文件还在,决定让Cursor试一下恢复这个功能
2、但在模拟器中测试目前的DoitWith时,发现无法创建Todo,创建时Debug信息会提示:
UIKeyboardLayoutStar implements focusItemsInRect: – caching for linear focus movement is limited as long as this view is on screen.
Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem.
If you want to see the backtrace, please set CG_NUMERICS_SHOW_BACKTRACE environmental variable.
且应用会卡死,直接把这些错误信息给到Cursor,Cursor在修改TodoData.swfit、TodayView.swift、AddTodoView.swift之后,虽然可以构建成功,但又卡在了启动界面,不进入TodayView界面
3、在排查问题的过程中,Cursor在多个文件里添加了调试信息,以便于定位问题,后续可以把这些DEBUG信息给到Cursor,更有针对性的解决问题
4、多次修改之后仍然会卡在启动界面,决定暂时让Cursor简化当前的应用:“不需要Today界面了,进入应用后直接显示Todo界面,底部也不需要在Today和Todo之间切换,先看下都有哪些文件和代码可以简化”,Cursor征求我的同意后删除了TodayView.swift、MainTabView.swift,并对多个文件进行简化,在我的要求下保留了SplashView启动界面和RecycleBinView回收站,Cursor还顺便在设置中添加了回收站功能,简化之后的应用经Xcode模拟器测试,可以正常启动,且可以正常创建Todo
5、但是相比之前我的需求,缺少了长按菜单(删除Todo、修改截止日期、修改分组等)、Todo页面视图也过于简单,甚至看不到Todo条目的截止时间,但是相比之前多了左上角的“Edit”按钮,点击后可以对Todo条目进行拖动排序,后续调整和增加功能时,还是要遵循“小步快跑”的原则,不要一次调整或增加太多功能,这样出现问题后也比较容易排查
6、询问Cursor当前的文件中是否有长按Todo弹出的菜单相关代码、给Todo条目分组的代码,前者已经没有了,后者还存在,但功能未启用,决定先让Cursor完善一下Todo条目的显示:目前Todo列表中仅显示Todo标题,还需要显示描述(Description)、截止日期(Due Date)、重复频率(Repeat)信息,并且适当拉高Todo条目的显示高度,以容纳这些信息,Cursor很快修改完成,并且优化了显示效果
7、重复频率目前有Daily、Weekly、Monthly,分别对应日、周、月,需要增加一个Yearly,即每年重复提醒一次,继续让Cursor添加此功能,很快添加完成
8、感觉现在每一条Todo显示的高度有些太高了,需要稍微减小一些条目高度,可以适当缩短每个Todo的三行内容之间、每两条Todo之间的垂直间距,Cursor给出了修改前后的对比:
调整前:条目间垂直间距:8pt、内容间垂直间距:6pt、图标顶部间距:2pt
调整后:条目间垂直间距:5pt、内容间垂直间距:3pt、图标顶部间距:1pt
9、接下来修正一个问题:点击右上角“+”时,每条Todo的右侧会出现删除按钮,需要调整成点击左上角的”Edit”时,每条Todo的右侧会出现拖动调整顺序按钮(已有,且功能正常)和删除按钮,点击删除按钮可删除本条Todo,点击右上角“+”时,每条Todo的右侧不要再出现删除按钮
10、在修正这些问题之后,继续让Cursor修正删除Todo时卡死、删除的Todo不显示在回收站里,回收站里的Todo点“恢复”之后,不会显示在 Todo界面等问题,顺便解决数据结构冗余的问题(同时存在Todo和TodoItem两个结构体),Cursor在代码中添加了很多调试信息,方便定位问题,结合调试信息和Xcode代码窗口的错误提示,Cursor修正了这一问题,今天就到这儿了

DevLog:2025年7月25日

1、Trae今天早上竟然修正了昨天的无限循环的错误问题,可以构建,并在Trae的模拟器中打开应用了,但经测试发现,Today页面的头部缺失,只显示了截止日期为当天的Todo,而且也缺失右上方的添加和设置按钮,继续让Trae修正
2、不知道为啥用Trae修改应用时,既会修改我要求的地方,又会自己改一些我没有要求的地方,比如DoitWith中条目的样式、底部Tab的底色、底部两个Tab的名字(之前是英文Today和Todo,现在被改成了今天、待办),难道是我中途切换了模型导致的?
3、这两天Trae还出现了一个问题,就是会判定某个文件存在重复(但实际上并没有重复文件),然后删掉这个文件,再创建一个新的文件,但命名变成了全小写,比如maintabview.swift,之后再表示之前判断错了,并没有重复文件,这是在折腾啥?
3、AI IDE貌似存在一个通用的问题:初期能够很快实现简单的需求,随着后续功能增加,出问题的概率就会越来越大,近期从UserDefaults切换至Core Data时必出问题
4、下载了一个新的AI IDE,阿里的通义灵码,反正DoitWith也已经被Trae中的多个模型(Doubao-Seed-1.6、Kimi-K2、Claude Sonnet 4、Qwen-3-Coder)修改的面目全非了,准备试试,内置了Qwen-3-Coder、Qwen-3-Thinking、Qwen-2.5-max,可以使用Auto模式,也可以手动切换
5、先询问了Lingma对当前DoitWith的体验和优化和功能增强的建议,决定先让Lingma为当前应用增加Trae没能完成的重复任务功能:
我需要增加这个功能:支持为每个Todo设置“重复”,在创建Todo/修改Todo截止时间时,可以设置/修改重复频率,可选“每天、每周、每月、每三个月、每年”五种重复频率
6、Lingma添加了这个功能,涉及TodoData、TodoView、TodayView三个文件,并且要求它检查了,不存在语法错误,但是Lingma表示它无法直接构建项目,建议我在X中进行构建,甚至智能问答模式下不会主动修改文件,只会给出“应该改成什么样”的建议,要求它修改文件之后才直接对这三个文件做了修改
7、在处理一些警告时,再次出现了只给建议和示例,不直接修改文件的问题,再次要求后,在Xcode中构建仍然提示同样的问题,试试看将“智能问答”模式切换为“文件编辑”模式,但是使用过程中Lingma变得非常卡,点击“停止”后甚至卡住不动了,不完全退出后重新打开项目,历史记录显示已完成修改,Lingma IDE技术人员建议我用智能体模式,可以给出建议并修改文件,但是智能体模式同样无法直接构建项目
8、再次切换回Cursor,希望能够解决Trae和Lingma一直没能解决的频繁出现的编译错误,但提示免费额度已经用完了,充了一个月的Pro,支付宝付款144.11,之后Cursor开始修复问题并进行构建测试,很快就修复完成,构建成功,过程中提示解决了MainTabView的问题、数据结构不一致的问题、缺失的属性和方法问题、枚举类型问题、类型不匹配问题、组件引用问题、语法错误,问题着实有点多,可能都是之前频繁切换IDE和模型的后遗症,现在已经可以构建成功,然后又遇到了之前一直没能解决的卡在启动界面的问题
9、在“移除Today界面长按Todo弹出菜单,只可以点击Todo条目前的圆形按钮以完成Todo”之后,终于解决了应用卡在启动界面的问题,看来可能是Today界面的功能太过复杂导致启动时被卡住
10、今天的最后一步操作是:把界面右下角的设置按钮移动到Todo界面右上角,并且在设置中增加Todo条目统计功能,分为“待完成Todo”和“已完成Todo”两条显示,每次换用不用的IDE或模型,都会导致需求之外的改动,以后尽量只用一个Cursor,少用Trae和Lingma