260403 플러터 아키텍처 프롬프트 -> 이대로 커서에 붙여 넣고 , 그 다음 개발을 시작하세요.
현실적인 Flutter 아키텍처 (2026년 기준)
Feature-First Clean Architecture DDD elements Riverpod(제가 현재 가장 추천하는 조합)
왜 Feature-First인가?Layer-First (lib/core, lib/data, lib/domain, lib/presentation) → 프로젝트가 커지면 feature 간 import 지옥 발생. Feature-First (lib/features/auth, lib/features/home 등) → 각 기능이 완전한 Clean Layer를 스스로 가짐. 모듈화·재사용성 극대화. (Very Good Ventures, Reso Coder 최신 스타일)
구조 예시
lib/
├── core/ # 전역 (di, theme, utils, router)
├── features/
│ ├── auth/
│ │ ├── data/ # datasource, repository_impl
│ │ ├── domain/ # entity, usecase, repository (interface = Port)
│ │ ├── presentation/ # screen, widget, riverpod notifier
│ │ └── presentation/bloc or riverpod
│ └── product/ ...
└── shared/ # 공유 entity, widget 등
State Management: Riverpod 2.x (Notifier AsyncNotifier) 강추 (BLoC도 좋지만, Riverpod가 boilerplate 적고, dependency injection도 강력. Clean과 궁합 최고)
DI: riverpod 자체 get_it or injectable 보조 사용.
이 조합은 백엔드 Hex Clean DDD와 완벽 align되면서, Flutter 2026년 실무 트렌드(공식 Docs VGV 대형 프로젝트)와도 가장 잘 맞습니다.
반응형 (Android Phone iPhone) 대응 전략
아키텍처와는 별개지만, Presentation Layer에서만 신경 쓰면 됩니다 (Clean의 장점!):
기본 원칙
MediaQuery, LayoutBuilder, Flexible, Expanded, AspectRatio 적극 활용.
flutter_screenutil or responsive_framework (필요 시).
추천 패키지/위젯 (2026 최신)
adaptive_scaffold (Flutter 공식)
go_router shell_route로 bottom nav / side nav 자동 전환
Material 3 dynamic_color Platform 체크 (iOS는 Cupertino fallback)
실전 팁
모든 화면을 breakpoints 기준으로 설계 (small / medium / large).
iPhone notch, Dynamic Island, Android foldable까지 SafeArea MediaQuery.padding으로 처리.
Clean Architecture 덕분에 UI Layer만 바꿔도 Domain/Data는 건드릴 필요 없음 → 반응형 작업이 매우 편함.
요약 추천 (실행 계획)
Clean Architecture (Feature-First) 도입 → 백엔드와 철학 100% 일치.
Riverpod go_router freezed (entity) 조합.
Domain Layer에 DDD 요소 (Entity, ValueObject, UseCase) 적극 적용.
Presentation Layer에서만 responsive UI 구현.