1、参考昨天ChatGPT的建议,结合我的日常使用需求,将DoitWith调整成一款用于记录工作流程的工具,并且还有一些界面上的调整需求,包括:
1.每一条待办都可以添加多个“下一步”,创建和修改待办时都可以添加,默认显示两个“下一步”,也可以点击按钮添加更多“下一步”,去掉现有的“描述”字段
2.在首页列表里,待办的标题下方显示“下一步:下一步的具体内容”
3.主界面右上角,在目前已有的“设置”、“新建”两个按钮的右边,增加“已完成”按钮,点击可以在弹出的页面中查看已完成的待办
4.两条待办之间的间距缩小一点,紧凑一些,现在一屏只能容纳4条待办
5.目前当需要编辑或删除待办时,需要长按条目触发菜单,修改一下操作方式,改成向左滑动,在待办条目右侧显示编辑、删除按钮
2、另外结合过往的经历,iOS应用应该都会遇到数据永久化方式的问题,ChatGPT建议,如果只做轻量待办,UserDefaults够用,若想做出更多功能,比如搜索、统计、节奏、多端同步(iCloud)、复杂重复,CoreData会更合适,而且能成为“可持续迭代”的底座
3、长痛不如短痛,先让Cursor评估一下当前版本哪些数据适合用CoreData,哪些数据适合继续用UserDefaults,Cursor创建了详尽的存储方案评估.md文件,建议将Todo数据(数量会增长,需要复查查询,与分组有关联关系)、TodoGroup数据(与Todo存在一对多关系,CoreData管理关系更稳妥)、DeletedTodo数据(回收站数据可能累计,可通过CoreData做定时清理)迁移到CoreData,至于appColorScheme可以继续使用UserDefaults(配置简单、集成方便)
4、先按照Cursor的建议将Todo数据、TodoGroup数据、DeletedTodo数据迁移到CoreData,具体步骤包括创建CoreData模型文件(.xcdatamodeld)定义实体和关系、创建CoreData Stack、重写TodoData类,实现数据迁移逻辑、更新项目文件(添加CoreData模型文件引用)、更新DoitWithApp.swift,初始化CoreData等
5、完成一轮修改后,发现又忘了要求Cursor不要给应用添加“首次启动时自动从UserDefaults迁移到CoreData”的功能,因为当前版本还没有对外发布,另外在创建多个新文件后,项目文件好像还没有更新,再次反馈检查并去掉迁移逻辑(移除了migrateFromUserDefaultsIfNeeded()方法),至于项目文件,Cursor认为理论上不需要手动更新project.pbxproj,因为项目使用了PBXFileSystemSynchronizedRootGroup,Xcode会自动同步DoitWith文件夹中的文件
6、在Xcode中构建测试,TodoData.swift出现了三处警告一处错误,修正后可以正常构建,功能也基本正常
7、回到今天最初的需求,让Cursor调整应用的功能,调整部分界面和交互方式,本次修改涉及更新CoreData模型、更新Todo结构体、修改AddTodoView和EditTodoView、修改TodoRowView、修改部分界面等,修改小问题后可正常构建,但会卡在启动页面,提供调试信息后Cursor指出这是因为代码还在尝试访问已从CoreData模型中移除的descriptionText属性,导致运行时异常,在移除对descriptionText的访问的同时,添加了“如果nextSteps无法解码或为空,直接初始化为空数组”的规则,下周再测试
8、ChatGPT提出的另一个建议“为macOS/iOS原生体验而生(利用Spotlight、菜单栏快速完成、Live Activity/Widget驱动行动、支持快捷指令等macOS/iOS原生能力)”也可以考虑,既然目前应用使用的是Swift语言,那就把iOS原生的功能,以及界面设计语言充分利用起来,这是下一步的开发重点
9、再记录一个ChatWith for Mac需要优化的细节:
1.关于页面的 初始版本发布 放到最上边