플러터에서 리액트의 create react app (https://create-react-app.dev/) 같은 툴이 필요하다면
Very Good CLI (https://pub.dev/packages/very_good_cli) 를 생각해볼만 하다
<aside> 💡 이 툴에서는 상태관리 방식으로 Bloc을 사용한다고 가정하고 있으니 만약 GetX 를 사용한다면 https://letyarch.blogspot.com/2021/08/getcli-getx.html 를 보자
</aside>
기본 사용법은 flutter 명령어 대신에 very_good 을 사용하면 된다.
very_good create <output directory>
기본 프로젝트가 만들어지게 되는데 pubspec.yaml 에 intl, mocktail 처럼 자주 사용하는 플러그인과 bloc을 기본으로 포함해준다.
dependencies:
bloc: ^8.0.2
flutter:
sdk: flutter
flutter_bloc: ^8.0.1
flutter_localizations:
sdk: flutter
intl: ^0.17.0
dev_dependencies:
bloc_test: ^9.0.2
flutter_test:
sdk: flutter
mocktail: ^0.2.0
very_good_analysis: ^2.4.0
그냥 yaml에만 넣어주고 끝이 아니다.
기본적인 BlocObserver 가 구현되어 있고, 기본 counter 예제(https://bloclibrary.dev/#/fluttercountertutorial?id=flutter-counter-tutorial) 의 cubit, view, 100% coverage test 가 그대로 들어가 있다.
필수적인 것은 아니지만 따로 staging, development 같은 flavor가 미리 만들어져 있다. 필요 없으면 안 쓰면 된다.
https://docs.flutter.dev/development/accessibility-and-localization/internationalization
이외에도 github action 을 이용한 CI 도 지원한다.
아쉬운 점은 get_cli 처럼 페이지를 만들어주는 명령어가 있었다면 더 편리했을 것 같다.
(다만, get과 달리 bloc은 다행이도 IDE 에서 자동 생성 플러그인들을 지원해주고 있다.)
이 점 때문에/덕분에 프로젝트 구조의 자유도가 더 높다.