flutter-presentation-mvi
Installation
SKILL.md
Flutter Presentation 레이어 (MVI 스타일)
구성 요소
모든 화면은 다음 4가지로 구성되며, 파일은 2개만 만든다:
- State — freezed immutable 클래스. UI 에 필요한 모든 필드.
- Action — freezed sealed class. 사용자가 유발할 수 있는 모든 동작.
- ViewModel —
ChangeNotifier를 믹스인. State 를 보관하고 Action 을 처리. - Root / Screen 위젯 분리 — Root 가 DI/이벤트/리빌드 구독을, Screen 이 순수 UI를 담당.
| 파일 | 포함 내용 |
|---|---|
<feature>_view_model.dart |
파일 상단: State → Action, 파일 하단: ViewModel |
<feature>_screen.dart |
파일 상단: Root, 파일 하단: Screen |
선택 요소: Event (1회성 부작용) — 스낵바/내비게이션 등 상태에 넣으면 안 되는 일회성 신호. StreamController 로 내보낸다.