[🛠] 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)
-
✅ アプリを初めて開いたときのウェルカムページを追加 (ロゴ)
- ✅ DiaryPage: Mood Slider の値に応じて顔表情 Emoji と色を変更 (KSK 担当)
💯 やったことの要約
- FlutterFlow での最終開発を終了
- GitHub 連携とプロジェクト Push を完了
- Chat 内容をもとに Diary を自動生成する機能を実装
- 既存 Diary がある場合の削除確認 Dialog を追加
- OpenAI API を活用して Chat Summary と Diary を自動生成
- アプリ実行時のウェルカムページを追加 (ロゴ画面)
- DiaryPage: Mood Slider に応じて Emoji と色を変更
🎯 今後やること
詳しく見るにはクリック
- ❔ 発表準備 - スクリプト: ページごとのスクリプト基準所要時間を測定後、スクリプトを修正
-
❔ 発表準備 - PPT: 機能別にデモ用の短い動画を撮影
-
❔ ChatPage:
titleの default value をRandom Stringから「無題」に統一 - ❔ ChatPage: Delete Diary Link を実装 ( … icon を押すと Delete 可能に)
- 必ず Diary/Chat Doc の linked field も一緒に消す必要あり!
- ❔ MoodPage(上部) - Mood Calendar
- ❔ 日付ごとに作成された投稿数を確認可能
- ❔ 日付をクリックすると、その日付へ移動
- ❔ MoodPage(下部) - Mood stats
- ❔ フォーカスされた月に関する統計資料を出力
- ❔ 出力された統計資料に対するAIのコメントを出力
- ❔ フォーカスされた月に関する統計資料を出力
- ❔ HomeFeedPage - flutter_slidable:4.0.0 import 後に適用
-
❔ 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 を消して入れ直せばいい。方法は分からないけど。
- 該当 Chat の messages は初めて生成するものなので、最初に生成する message document の
- ❔ **以前の
-
❔ DiaryPage - Interactive Slider import 後に適用
-
❔ 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 ウィジェットなどを移す
-
❔ (Issue) 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 ウィジェットツリーを事前に組んでみたり、MVP をさっと作ってみたりする用途にだけ活用するのがよさそう。
- Git/GitHub を活用できず、内部ロジックだけで Version Control するしかない点が本当にきつい。
- もちろん、内部ロジックでも Snapshot / Commit / Branching / Version は全部提供されているが… Git のように自由に好き勝手操作できない点がすごく嫌だった。前のコミット内容を修正したいんだよ。
- 実は一番大きな理由は 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 の芝も埋めながらモチベーションを保とう! 💪💚
コメントする