Arsitektur
text
# Related Code
- `lib/main.dart`
- `lib/screens/chat_screen.dart`
- `lib/providers/`
- `lib/widgets/`
- `lib/models/`Design Rationale
Arsitektur SmartAI Chat mengikuti pola unidirectional data flow dengan Riverpod sebagai state management. Setiap bagian state (chat messages, sidebar, theme) memiliki Notifier sendiri yang independen. Widget ConsumerWidget dan ConsumerStatefulWidget dari Riverpod digunakan untuk mendengarkan perubahan state secara reaktif.
Forui dipilih sebagai design system untuk menggantikan Material Design standar, memberikan tampilan yang lebih modern dengan kustomisasi tema yang mudah melalui FTheme dan FColors.
Component Diagram
Data Flow — Chat
Data Flow — Sidebar
Tech Debt Notes
- Tidak Ada Repository Layer — Data mock langsung di-provider. Untuk produksi, perlu abstraksi repository antara provider dan sumber data.
- Sidebar Mengandalkan Mock Langsung —
Sidebarwidget mengimportMockSessionssecara langsung, bukan melalui provider. Ini membuat testing dan penggantian data lebih sulit. - Tidak Ada Error Handling — Provider tidak memiliki mekanisme error atau loading state karena data mock selalu tersedia.