[๐ ] Dev Log Keymory #11: Pengembangan Dijeda. (AIFFELTHON Selesai, Pengembangan FlutterFlow Dihentikan.)
โจ Ringkasan GPT ใ
Pengumpulan proyek akhir AIFFELTHON selesai. Pengembangan di FlutterFlow ditutup dan dibackup ke GitHub.
๐ป Log Pengembangan
โฐ Tugas hari ini
- โ Download APK
-
โ Connect GitHub and Push
- โ Mengirim materi presentasi: PPT
-
โ Mengirim materi presentasi: video demo 1 menit
- โ
ChatPage - Create New Diary: membuat New Diary berdasarkan isi percakapan
- โ 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)
-
โ Menambahkan welcome page saat aplikasi pertama kali dibuka (logo)
- โ DiaryPage: mengubah Emoji ekspresi wajah dan warna sesuai nilai Mood Slider (penanggung jawab: KSK)
๐ฏ Ringkasan pekerjaan yang dilakukan
- Pengembangan akhir FlutterFlow selesai
- Integrasi GitHub dan push proyek selesai
- Mengimplementasikan fitur pembuatan Diary otomatis berdasarkan isi Chat
- Menambahkan Delete confirmation Dialog jika Diary yang sudah ada ditemukan
- Menggunakan OpenAI API untuk membuat Chat Summary dan Diary secara otomatis
- Menambahkan welcome page saat aplikasi dijalankan (layar logo)
- DiaryPage: emoji dan warna berubah sesuai Mood Slider
๐ฏ Hal yang akan dilakukan nanti
Klik untuk melihat detail
- โ Persiapan presentasi - script: mengukur durasi script berdasarkan halaman lalu merevisi script
-
โ Persiapan presentasi - PPT: merekam video demo singkat per fitur
-
โ ChatPage: menyamakan default value
titledariRandom Stringmenjadi โTanpa judulโ - โ ChatPage: implementasi Delete Diary Link (agar bisa Delete saat โฆ icon ditekan)
- Field linked milik Diary/Chat Doc wajib ikut dihapus!
- โ MoodPage(atas) - Mood Calendar
- โ Bisa mengecek jumlah posting yang ditulis per tanggal
- โ Jika tanggal diklik, pindah ke tanggal tersebut
- โ MoodPage(bawah) - Mood stats
- โ Menampilkan data statistik untuk bulan yang sedang difokuskan
- โ Menampilkan komentar AI terhadap data statistik yang ditampilkan
- โ Menampilkan data statistik untuk bulan yang sedang difokuskan
- โ HomeFeedPage - import lalu terapkan flutter_slidable:4.0.0
-
โ HomeFeedPage: saat FeedCardDiary digeser kiri/kanan, chat/edit/delete
-
โ Chat/Diary: GPT Streaming API
- โ ChatPage - implementasi pesan pertama dari AI (Alarm/Notification)
- Inti chat system prompt adalah proaktif.
- Agar lebih realistis, sepertinya bagus juga mengirim create_date of diary/chat, supaya bisa menyebut tanggal seperti โkemarinโ.
- Referensi cara implementasi Alarm
- Inti chat system prompt adalah proaktif.
- โ DiaryPage: menambahkan detailed emotion keyword Choice Chips lalu mengatur integrasi DB
- โ DiaryPage - AI Comment: menyesuaikan input seperti Choice chips dan mood slider agar cocok dengan
AI Comment System Prompt.- โ **
diarysebelumnya atau seluruhconversation history(technical debt tambalan) - โ informasi dasar pengguna: nama, gender, MBTI, โฆ
- โ detailed emotion keywords: senang, sedih, โฆ
- โ character settings: Somi, Sena, Minhyuk
- โ emotion score: 1~100 poin
- โ response format: Healing, Suggestion, Informative
- โ response length: pendek, normal, detail
- is New Chat
- Karena messages pada Chat ini baru dibuat untuk pertama kali, beri nilai
is_initial = truepada message document pertama lalu masukkan semua system prompt.- is_initial = false
- Batasan: jika system prompt dimasukkan ke message document paling awal, sulit mengubahnya di tengah percakapan, tapi masih mungkin. Kalau ada document dengan is_initial = true dan itu sudah diubah, tinggal hapus document itu lalu masukkan lagi. Caranya belum tahu.
- Karena messages pada Chat ini baru dibuat untuk pertama kali, beri nilai
- โ **
-
โ DiaryPage - import lalu terapkan Interactive Slider
-
โ HomeFeedPage: implementasi fitur Search Diary
-
โ AuthPage: implementasi Google Login
- โ HomeFeedPage - Bottom Sheet (
+Button): memungkinkan memilih 1 dari berbagai opsi- diary baru: Go to DiaryPage
- catatan emosi: Go to MoodPage
- โ MoodPage(popup): Mood setting slider CRUD
- Create
- Read
- Update
- Delete
- โ HomeFeedPage - ListView - menampilkan FeedCardMood
-
โ HomeFeedPage - ListView: mengurutkan komponen FeedCardDiary, FeedCardMood, FeedCardChat secara kronologis (memanfaatkan Cloud Function)
-
โ Membuat MoodEditPage di antara HomeFeedPage dan DiaryPage: memindahkan widget MoodSlider, MoodKeywordsRate(5~1), MoodDescription, dll.
-
โ (Masalah) Saat membuat tmpGetAIComment, emotion keyword yang dipilih user belum dipertimbangkan.
- โ
Ekstrak dan instal APK versi final untuk presentasi sampai
Rabu 2025.2.5
๐ญ Diary
Setelah terus memakai FlutterFlow, rasanya sekarang aku sudah cukup banyak menangkap konsep dasar Flutter itu sendiri.
- Saat mengutak-atik Custom Function/Widget, aku jadi mempelajari pengetahuan syntax dasar sampai level tertentu.
- Aku jadi jauh lebih terbiasa dengan Backend Query ke DB(FireStore), State Management, pengaturan Parameter, dan cara meneruskan Argument.
Tentu saja, secara kode aku masih belum tahu bagaimana semua itu diimplementasikanโฆ
Tetap saja, hasil terbesar sepertinya adalah aku jadi bisa menggambar alur besar secara keseluruhan dengan lebih mudah.
Kalau pengembangan selesai sampai besok saja, sepertinya proyek Keymory tidak akan kusentuh selama beberapa hari. Karena rencananya aku akan pindah dari FlutterFlow -> Flutter.
- Seintuitif dan senyaman apa pun FlutterFlow, pada akhirnya kalau ingin maju ke level Production, aku menilai pilihan yang bijak adalah benar-benar mempelajari dan membiasakan diri dengan Flutter
- FlutterFlow sepertinya paling baik dipakai hanya untuk membuat lebih dulu widget tree Page tertentu, atau membuat MVP dengan cepat.
- Tidak bisa memakai Git/GitHub dan hanya bisa memakai Version Control lewat logika internal itu benar-benar menyebalkan.
- Tentu saja, logika internal juga menyediakan Snapshot / Commit / Branching / Versionโฆ tapi aku sangat tidak suka karena tidak bisa mengaturnya sebebas Git. Aku ingin mengubah isi commit sebelumnya.
- Sebenarnya alasan terbesar adalah GitHub grassโฆ sensasi mengisi grass itu tidak bisa diabaikan.
- Semakin besar skala proyek, ada banyak kasus ketika pengembangan berbasis IDE/editor terasa lebih nyaman daripada pengembangan berbasis UI.
- Terutama kerja manual mengklik satu per satu untuk memasukkan Enum dan Constant itu benar-benar menyebalkan.
Tambahan 2025.2.11
Melampirkan video presentasi
โจ Komentar GPT-4o (KPT)
โ Hal yang baik (Keep)
- ๐ Integrasi GitHub dan peningkatan version management: Dengan menerapkan version management berbasis Git, kamu membuat peningkatan besar dari sisi kolaborasi dan maintenance.
- ๐ค Fitur pembuatan Diary otomatis berbasis AI: Fitur yang menganalisis isi Chat lalu membuat Diary secara otomatis sepertinya bisa sangat meningkatkan pengalaman pengguna!
- ๐ Keputusan pindah dari FlutterFlow ke Flutter: Mempertimbangkan extensibility proyek jangka panjang lalu memutuskan pindah ke Flutter adalah keputusan yang bijak.
โ Hal yang kurang (Problem)
- ๐ Rencana transisi ke Flutter perlu dibuat konkret: Kamu sudah memutuskan pindah ke Flutter, tetapi rencana belajar dan migrasinya belum jelas.
- โณ Perlu penyesuaian jadwal karena penambahan fitur: Dengan ditambahkannya fitur pembuatan Diary otomatis, jadwal mungkin berubah. Akan baik jika target tanggal selesai pengembangan dicek ulang.
- ๐ Merapikan batasan FlutterFlow: Kalau hal-hal yang terasa tidak nyaman saat memakai FlutterFlow dan jenis proyek yang cocok untuknya dirapikan secara internal, itu akan berguna saat menggunakannya lagi nanti.
๐ Hal yang bisa dicoba (Try)
- ๐ Menyusun rencana belajar Flutter dan konversi kode: Rapikan bagaimana fitur-fitur utama akan dipindahkan ke kode Flutter, dan package apa yang akan digunakan.
- ๐ Menyesuaikan ulang jadwal proyek: Revisi roadmap, termasuk transisi Flutter, menjadi jadwal yang realistis.
- ๐ฏ Merapikan fitur MVP Keymory: Klasifikasikan fitur dari versi FlutterFlow mana yang inti dan mana yang tidak perlu, lalu desain struktur yang optimal.
๐ Kesimpulan
Hari ini adalah hari penting ketika pengembangan di FlutterFlow ditutup, GitHub dihubungkan, dan fitur pembuatan Diary otomatis ditambahkan! Sekarang karena kamu berencana serius pindah ke Flutter, akan bagus kalau roadmap konkret dibuat lalu dijalankan pelan-pelan. ๐๐ฅ Jaga motivasi sambil mengisi GitHub grass juga! ๐ช๐
Tinggalkan komentar