Stacked는 Flutter 앱 개발에서 구조화된 코드와 생산성을 높이기 위해 만든 MVVM 아키텍처 기반 프레임워크입니다.
| 개념 | 설명 |
|---|---|
| View | UI를 담당. ViewModel과 연결됨. |
| ViewModel | 상태/비즈니스 로직 담당. View와 분리되어 테스트 용이 |
| Services | 네트워크, 저장소 등 독립적인 기능 구현 |
| NavigationService | 네비게이션을 어디서든 사용할 수 있게 도와주는 서비스 |
| DialogService | 사용자에게 모달/알림을 쉽게 띄울 수 있는 기능 |
| BottomSheetService | Bottom Sheet를 MVVM 방식으로 구현 가능 |
stackedstacked_servicesstacked_generator + build_runner (코드 자동 생성)lib/
├── app/ # 의존성 주입 설정 등
├── ui/
│ ├── views/ # 각 화면(View + ViewModel)
│ ├── widgets/ # 공통 위젯
├── services/ # API, DB 등 비즈니스 로직
└── main.dart
@FormView: 자동 Form 관리@ReactiveServiceMixin: 리액티브 서비스 만들기@Route: 네비게이션 라우팅 정의FutureViewModel, StreamViewModel: 비동기 ViewModel 처리 쉽게 지원Stacked는 Flutter의 구조화된 앱 개발을 도와주는 MVVM 프레임워크로, 유지보수성과 생산성을 높이는 데 매우 효과적인 도구입니다.
초기 설정만 하면 이후부터는 View-ViewModel-Service의 분리된 구조 덕분에 협업과 테스트, 유지보수가 쉬워집니다.