[🛠] Keymory 开发日志 #11:开发暂时中止。(AIFFELTHON 结束,FlutterFlow 开发中断。)
✨ GPT 摘要
AIFFELTHON 毕业作品提交完成。结束 FlutterFlow 中的开发,并备份到 GitHub。
💻 开发日志
⏰ 今天要做的事
- ✅ Download APK
-
✅ Connect GitHub and Push
- ✅ 提交发表资料:PPT
-
✅ 提交发表资料:1 分钟演示视频
- ✅ ChatPage - Create New Diary:基于对话内容创建 New Diary
- ✅ Create New Diary Condition: if linked diary exists -> Delete confirmation dialog? -> Yes
- ✅ OpenAI API Call (createChatSummary)
- Input: Chat Content, System Prompt(Diary From Chat)
- Output: Chat Summary
- ✅ OpenAI API Call (createDiaryFromChat)
- Input: Chat Summary, System Prompt(Diary From Chat)
- Output: New Diary(Title, Content, Mood score)
-
✅ 应用首次打开时添加欢迎页面(Logo)
- ✅ DiaryPage:根据 Mood Slider 的值改变表情 Emoji 和颜色(KSK 负责)
💯 完成内容摘要
- FlutterFlow 最终开发结束
- GitHub 连接和项目 Push 完成
- 实现基于 Chat 内容自动生成 Diary 的功能
- 已有 Diary 时添加删除确认 Dialog
- 使用 OpenAI API 自动生成 Chat Summary 和 Diary
- 应用启动时添加欢迎页面(Logo 画面)
- DiaryPage:根据 Mood Slider 改变 Emoji 和颜色
🎯 以后要做的事
点击查看详情
- ❔ 发表准备 - 脚本:按页面脚本基准测量所需时间后修改脚本
-
❔ 发表准备 - PPT:按功能拍摄短演示视频
-
❔ ChatPage:把
title的 default value 从Random String统一为“无标题” - ❔ ChatPage:实现 Delete Diary Link(点击 … icon 后可删除)
- 必须同时删除 Diary/Chat Doc 的 linked field!
- ❔ MoodPage(上方)- Mood Calendar
- ❔ 可以查看每个日期写了多少篇帖子
- ❔ 点击日期后,移动到对应日期
- ❔ MoodPage(下方)- Mood stats
- ❔ 输出当前聚焦月份的统计资料
- ❔ 输出 AI 对已显示统计资料的评论
- ❔ 输出当前聚焦月份的统计资料
- ❔ HomeFeedPage - import 后应用 flutter_slidable:4.0.0
-
❔ HomeFeedPage:FeedCardDiary 左右 slide 时聊天/编辑/删除
-
❔ Chat/Diary: GPT Streaming API
- ❔ ChatPage - 实现 AI 先发消息(Alarm/Notification)
- 聊天系统提示词的核心是主动型。
- 想做得更真实的话,也可以传递 create_date of diary/chat,这样提到“昨天”等日期会更自然。
- Alarm 功能实现方法参考
- 聊天系统提示词的核心是主动型。
- ❔ DiaryPage:添加细分情绪关键词 Choice Chips 后设置 DB 联动
- ❔ DiaryPage - AI Comment:把 Choice chips、mood slider 等输入值改成适合
AI Comment System Prompt的形式。- ❔ **以前的
日记或对话记录全部(临时技术债) - ❔ 用户基本信息:姓名、性别、MBTI、…
- ❔ 细分情绪关键词:开心、难过、…
- ❔ 角色设定:Somi、Sena、Minhyuk
- ❔ 情绪数值:1~100 分
- ❔ 回答格式:治愈型(Healing)、建议型(Suggestion)、信息型(Informative)
- ❔ 回答长度:简短、普通、详细
- is New Chat
- 因为该 Chat 的 messages 是第一次创建,所以直接给最初创建的 message document 设置
is_initial = true,然后把所有系统提示词都塞进去。- is_initial = false
- 局限:如果把系统提示词塞进第一条 message document,中途修改对话会麻烦,但也不是不能改。 如果存在 is_initial = true 的 document,而且它被修改了,把那个 document 删除后重新放进去就行。具体怎么做还不知道。
- 因为该 Chat 的 messages 是第一次创建,所以直接给最初创建的 message document 设置
- ❔ **以前的
-
❔ DiaryPage - import 后应用 Interactive Slider
-
❔ HomeFeedPage:实现 Search Diary 功能
-
❔ AuthPage:实现 Google Login 功能
- ❔ HomeFeedPage - Bottom Sheet (
+Button):可以从多个选项中选择 1 个- 新日记:Go to DiaryPage
- 情绪记录:Go to MoodPage
- ❔ MoodPage(弹窗):Mood 设置滑块 CRUD
- Create
- Read
- Update
- Delete
- ❔ HomeFeedPage - ListView - 显示 FeedCardMood
-
❔ HomeFeedPage - ListView:FeedCardDiary、FeedCardMood、FeedCardChat 组件按时间顺序排序(活用 Cloud Function)
-
❔ 在 HomeFeedPage - DiaryPage 之间制作 MoodEditPage:移动 MoodSlider、MoodKeywordsRate(5~1)、MoodDescription 小部件等
-
❔(问题)创建 tmpGetAIComment 时,没有考虑用户选择的情绪关键词。
- ✅ 到
2025.2.5 周三为止,提取并安装发表用最终版本 APK
💭 日记
继续用 FlutterFlow 之后,我感觉自己现在也多少掌握了 Flutter 本身的一些基本概念。
- 摸过 Custom Function/Widget 之后,也学到了一些基本语法知识。
- 对 DB(FireStore) 的 Backend Query、State Management、Parameter 设置以及 Argument 传递方法等也熟悉了很多。
当然,从代码层面上它到底是怎么实现的,我还不知道……
不过,能够更轻松地画出整体的大流程,似乎就是最大的收获。
只要到明天为止完成开发,Keymory 项目大概几天内不会再碰了。因为计划从 FlutterFlow -> Flutter 换过去。
- 不管 FlutterFlow 多么直观方便,最终如果要走到 Production 级别,还是要认真学习并熟悉 Flutter,这才是明智的选择
- FlutterFlow 似乎最适合拿来预先搭建特定 Page widget tree,或者快速做一个 MVP。
- 不能使用 Git/GitHub,只能通过内部逻辑做 Version Control,这一点太让人受不了了。
- 当然,内部逻辑也提供 Snapshot / Commit / Branching / Version……但不能像 Git 那样随心所欲地操作,这点我真的很不喜欢。我就是想修改以前的 commit 内容。
- 其实最大的理由是 GitHub 草地……填满草地的爽感不能无视。
- 随着项目规模逐渐变大,比起基于 UI 的开发,很多情况下 IDE/编辑器开发似乎会更方便。
- 尤其是 Enum 和 Constant 一个个用鼠标点击再放进去的体力活,实在太痛苦。
2025.2.11 追加
附上发表视频
✨ GPT-4o 的评论(KPT)
✅ 做得好的点(Keep)
- 🛠 GitHub 联动和版本管理改善: 通过应用基于 Git 的版本管理,在协作和维护方面取得了很大的改善。
- 🤖 基于 AI 的 Diary 自动生成功能: 分析 Chat 内容并自动生成 Diary 的功能,应该能显著提升用户体验!
- 🚀 决定从 FlutterFlow 转向 Flutter: 考虑长期项目扩展性后决定转向 Flutter,这是明智的判断。
❌ 可惜的点(Problem)
- 🔄 需要具体化 Flutter 转换计划: 虽然决定转向 Flutter,但具体的学习和迁移计划还不够明确。
- ⏳ 因功能追加需要调整日程: 加入 Diary 自动生成功能后,日程可能会发生变化。最好重新检查开发完成目标日。
- 📌 整理 FlutterFlow 的限制: 把使用 FlutterFlow 时哪些地方不方便、适合哪些项目整理下来,以后再次使用时会很有参考价值。
🔄 可以尝试的点(Try)
- 📝 制定 Flutter 学习和代码转换计划: 整理主要功能要如何迁移到 Flutter 代码、要使用哪些包。
- 📅 重新调整项目日程: 把 Flutter 转换也包含进去,修改成现实可行的路线图来管理。
- 🎯 整理 Keymory MVP 功能: 将 FlutterFlow 中做过的功能分为核心和非必要,再设计最佳结构。
🏁 结论
今天是结束 FlutterFlow 开发、完成 GitHub 联动,并添加 Diary 自动生成功能的重要一天!既然接下来计划正式转向 Flutter,最好制定具体路线图,然后一步一步推进。🚀🔥 一边填 GitHub 草地,一边保持动力吧!💪💚
留下评论