1、截至目前,四款应用问题如下,加粗内容暂未修复:
1.DoitWith
-按住拖动调整排序的功能无法正常使用
-不包含任何Todo的分组下会显示“该分组暂无待办”,但底下还有半截分隔线,需要和正常的Todo条目下的分隔线格式一致
-设置-关于,DoitWith下面的小字和开屏上的小字是否一致?以设置-关于中的小字为准
-在Todo页面,没有“下一步”的Todo,在标题下显示“仅此一步”
-在已完成Todo页面,有下一步的Todo,在标题下显示“包含下一步”,没有“下一步”的Todo,在标题下显示“仅此一步”
-考虑到后续可能要和Mac版数据打通/同步,趁早将应用的数据持久化方式由Core Data改成SwiftData
2.ChatWith(目标是对齐ChatWith for Mac)
-清除后台后,再打开应用秒闪退,无法使用
-在与支持深度思考的模型对话时,看不到思考内容,我需要增加一个展示思考内容的区域,默认折叠,可以点击展开,并且显示样式要和回答内容有所区别(两轮修改后已有思考内容区域,但看不到具体的思考内容)
-发送消息后立刻显示在对话界面内,现在好像是在AI有响应后才会显示
-虽然可以看到Tavily已经联网获取了一些链接,但AI回答内容好像没有结合Tavily搜索结果
3.ChatWith for Mac
-关于页面的“初始版本发布”放到最上边
-优化上传附件和图片后的显示效果,比如取消附件和图标的红叉需要改小一些
4.DoitWith for Mac
-询问并调整数据持久化方式,Core Data改为SwiftData
-增加新Tab:已完成Todo,集中显示已完成的Todo及所属分组,放到现有的待办事项下面,待办事项Tab更名“所有Todo”
-界面优化,以卡片形式呈现每条Todo和Todo分组,并且“全部Todo”和“已完成Todo”界面效果一致
-增加“下一步”功能,和DoitWith移动版采用相同的完成Todo逻辑
-增加图标,使用DoitWith移动版的图标底图
-统一管理版本号,当前版本为v0.1.0
-调整新建分组、添加和编辑Todo窗口的视觉效果,部分图标和文字太小
-清理可能的残余文件
-结合当前应用的功能刷新一下README.MD
-设置-关于页面下方增加“近期更新”区域,由Cursor总结近期更新了哪些功能
2、首先调整DoitWith for Mac的数据持久化方式,使用ChatGPT建议的SwiftData,并且明确不需要“首次打开自动迁移历史数据”的机制,修改过程涉及创建SwiftData模型、更新DataManager、配置ModelContainer、更新所有Views、更新ViewModels、清理旧代码等
3、在构建测试之前先进行了一些清理,比如询问还有哪些数据在使用UserDefaults?还有没有需要清理的AI对话、笔记相关功能的代码?Cursor检测后删除了不再使用的InterfaceSettings.swift、ResizableHSplitView.swift以及DoitWith.xcdatamodeld目录(其中仍有AI对话和笔记相关的实体),并移除了项目文件中的引用,目前仍在使用UserDefaults的仅剩AppearanceManager.swift,来存储外观模式设置
4、接下来构建测试,首次构建失败,先让Cursor检查有没有语法问题,为啥总是会反复出现这种问题呢,我之前已经明确要求了修改后要自动检查是否有语法问题,难道这种要求也只针对当时所在的对话生效,而不是全局生效?在没有反馈Xcode构建错误信息的情况下,让Cursor检查是否有语法问题,修正了Preview代码缺少参数、SwiftData Predicate关系比较问题、以及清理未使用的代码,涉及8个文件
5、再次构建测试,可以正常启动且无构建错误,接下来先进行如下修改:
1.将现有的“待办事项”Tab改名为“所有Todo”,增加新Tab“已完成Todo”,放在“所有Tab”下面
2.已完成Todo里集中显示已完成的Todo及所属分组,和“所有Todo”界面版式一致,分组所在栏宽度固定300,无需新建分组和新建Todo按钮
3.设置-数据管理页面,去掉数据操作和导出数据、导入数据按钮
4.设置-关于页面,去掉“待办事项管理工具”和“一个专注于待办事项管理的应用”,在DoitWith下增加一行“Manage things with next steps”
6、针对上述需求,Cursor创建了CompletedTodoListView、CompletedTodoGroupListView、CompletedTodoItemsListView三个视图文件,组合成“已完成Todo”页面,并且更新了项目文件,构建成功,需求达成
7、继续修改,接下来是界面显示效果的优化,以卡片形式呈现分组和每条Todo,卡片可以有细边框和阴影效果,并且在“所有Todo”和“已完成Todo”两个界面使用同样的卡片效果,针对这一需求,Cursor创建了CardStyle.swift,提供统一的卡片样式ViewModifier,并具备细边框、阴影效果、圆角,以及选中状态高亮等特性,两个界面样式一致,构建测试后感觉基本达成需求,不像之前那样简陋了
8、优化一下最左侧栏和设置列表的显示效果,现在有点简陋,而且现在文字太小了,稍微改大一点,把“所有Todo”改成“全部Todo”,构建测试发现效果加的有点过了,而且还有很多界面上的细节需要调整,一并要求Cursor:
1.去掉界面右上角DoitWith下面的小字,缩小一下DoitWith的字号
2.最左侧栏的“全部Todo”、“已完成Todo”、“设置”,减小选中时的色块高度,稍微缩小下字号
3.最左侧栏宽度调整为200,去掉分隔线
4.搜索图标和文字,与调整后的导航列表另外三项的图标和文字大小一致
5.加大搜索弹窗,现在太小了
6.设置列表不再使用灰色作为底色,与其他页面的列表页底色一致
9、本轮修改去掉了界面右上角的DoitWith,将导航列表的宽度、字体大小、字重、间距统一,搜索弹窗尺寸由400*300加大至600*500,设置列表移除了灰色背景,再次构建测试,顺眼一些了,但设置列表仍然使用了灰色作为底色,检查一下还有哪里限定了这个界面的底色,再次修改后需求达成
10、接下来是添加图标,和统一版本号,在让Cursor检查并统一版本号(统一从Bundle中读取版本号,而不是硬编码)的同时,让ChatGPT基于DoitWith移动版图标的底图制作了DoitWith for Mac的图标包,参考以往的方法把图标包(含Contents.json文件)复制到对应路径后,出现了“The app icon set “AppIcon” has 10 unassigned children.”的错误提示,经Cursor检查这是因为缺少了“idiom”:“mac”字段,而它是macOS AppIcon配置的必需字段,将该字段添加到所有图标条目后问题解决,图标也已OK
11、发现两处可能是前面修改时的遗留问题,比如Assets.xcassets中有一个LaunchScreenBackground.colorset文件夹,另外还有一个NoteWith文件夹,里面包含了一些文件夹和文件,不知道是否有用,Cursor检查后认为,这两个文件夹都已无用,前者是iOS App的启动界面背景(移动版转为Mac版的残余),后者是改名DoitWith之前项目的残留文件,统一删除
12、接下来是给Todo添加“下一步”功能,具体需求包括:
1.在添加和修改Todo时,可以给Todo增加多个“下一步”,默认显示三行“下一步”,用户可以自行增加更多“下一步”
2.如果一条Todo未添加“下一步”,点击完成按钮时就直接完成整条Todo,如果添加了“下一步”,点击完成按钮时就完成下一步,所有下一步均完成后,才会完成整条Todo
3.加高每条Todo的卡片,除了现有的内容外,在标题下增加一行“下一步:下一步的具体内容”,如果没有下一步,这行就显示“仅此一步”
14、本次修改涉及文件较多,首先创建了NextStep模型,并修改了添加Todo界面、编辑Todo界面、Todo卡片显示、完成逻辑,同时更新了搜索窗口、回收站视图等位置,共修改了14个文件,自行检查语法错误并修正后,构建成功
15、然后构建DoitWith for Mac,测试增、删、改、查的全流程,对该功能进行微调,同时调整下搜索弹窗
1.包含下一步的Todo,在完成后,卡片上的标题和截止日期之间需要显示“包含下一步”,这样可以保证已完成的Todo卡片高度一致
2.搜索界面右下角需要增加“完成”按钮,点击可关闭搜索弹窗
3.搜索界面中的条目无需显示创建时间
16、上述修改涉及TodoItemsListView.swift和SearchWindowView.swift两个视图文件,构建测试,需求已达成,接下来开始陆续优化界面效果,首先是新建分组的弹窗,最上面的“新建分组”标题和右侧的“取消”、“添加”按钮太靠上了,显得界面很拥挤,可以看一下新建待办事项的弹窗顶部的效果是怎样实现的
17、结合文字描述和截图,Cursor经过多次修改,包括给新建分组弹窗的顶部设置了明确的间距,拉大弹窗尺寸等,但这个弹窗的标题和右侧按钮的显示总是不正常,明确要求对比这两个文件(右键——Add File to Cursor Chat)后,得知AddTodoView使用了ScrollView包裹内容区域,内容从顶部开始,而AddTodoGroupView使用的是Vstack,内容较少时会在垂直方向居中,修改方法是给AddTodoGroupView的内容区域添加ScrollView,与AddTodoView一致,再次测试,需求达成
18、今天的最后一个修改:结合当前应用的功能刷新一下README.MD,并且删掉PROJECT_STRUCTURE.MD文件