flutter_clean_arch_scaffold 0.1.2 copy "flutter_clean_arch_scaffold: ^0.1.2" to clipboard
flutter_clean_arch_scaffold: ^0.1.2 copied to clipboard

Flutter Clean Architecture 스캐폴딩 CLI. `flutter_clean_arch init`으로 domain/data/presentation/design 멀티 패키지 구조를 복제하고, `add feature`로 entity·dto·mapper·usecase 파일을 생성합니다.

flutter_clean_arch_scaffold #

Flutter Clean Architecture 구조를 기존 Flutter 프로젝트에 복제하는 CLI입니다.

flutter create로 만든 프로젝트에 packages/domain, data, presentation, designmelos.yaml을 추가합니다.
android/, ios/ 설정은 건드리지 않습니다.


사용 방법 #

아래를 위에서부터 순서대로 실행하세요.

# CLI 설치 (최초 1회)
dart pub global activate flutter_clean_arch_scaffold

# PATH 설정 (~/.pub-cache/bin)
export PATH="$PATH:$HOME/.pub-cache/bin"

# 새 Flutter 프로젝트
flutter create my_app
cd my_app

# Clean Architecture 구조 복제
flutter_clean_arch init

# lib/main.dart 수정 — init이 기존 main.dart를 유지한 경우 필수
# import 'di.dart'; 추가 후 main() 맨 앞에 configureDependencies(); 호출

# feature 추가
flutter_clean_arch add feature payment --with-ui

# 의존성 설치 + 코드 생성
dart pub global activate melos
melos bootstrap
melos run build:all

# 앱 실행
flutter run

lib/main.dart 수정 (중요) #

flutter create 직후 init을 실행하면 기존 lib/main.dart는 유지됩니다.
DI가 동작하려면 아래를 직접 추가해야 합니다.

import 'di.dart';

void main() {
  configureDependencies(); // ← runApp()보다 먼저 호출
  runApp(const MainApp());
}

init --force를 쓰면 main.dart가 템플릿으로 교체되어 위 코드가 포함됩니다.


생성되는 구조 #

my_app/
├── android/                  # flutter create 결과 (그대로)
├── ios/
├── lib/
│   ├── main.dart
│   └── di.dart               # init이 생성
├── packages/
│   ├── domain/               # entity, repository, usecase
│   ├── data/                 # datasource, dto, mapper, repository impl
│   ├── presentation/         # provider, page
│   └── design/               # 디자인 시스템, assets
└── melos.yaml

레이어 의존 #

presentation → domain
data         → domain
design       → (독립)

feature 폴더 예시 (add feature payment --with-ui) #

packages/domain/lib/domain/payment/
  entity/  repository/  usecase/

packages/data/lib/data/payment/
  datasource/  dto/  mapper/  repository/

packages/presentation/lib/payment/
  provider/  page/

data 레이어 흐름 #

API (JSON) → datasource (compute) → dto → mapper → entity → usecase → UI

명령어 #

명령 설명
flutter_clean_arch init Clean Architecture 구조 복제
flutter_clean_arch add feature <name> feature 스캐폴딩
flutter_clean_arch add feature <name> --with-ui presentation 포함
flutter_clean_arch add feature <name> --with-local local datasource 포함
flutter_clean_arch add feature <name> --methods a,b 메서드 stub 지정
flutter_clean_arch init --force 기존 파일 덮어쓰기
flutter_clean_arch init --skip-build build_runner 생략

feature 이름: snake_case (예: payment, user_profile)


문제 해결 #

command not found: flutter_clean_arch #

export PATH="$PATH:$HOME/.pub-cache/bin"

영구 적용: ~/.zshrc에 위 줄 추가 후 source ~/.zshrc

templates 오류 / 이상한 동작 / 옛 버전이 실행됨 #

CLI 캐시를 지우고 재설치하세요.

dart pub global deactivate flutter_clean_arch_scaffold
dart pub global activate flutter_clean_arch_scaffold

PATH 없이 실행 #

dart pub global run flutter_clean_arch_scaffold:flutter_clean_arch init

pub.dev 문서 안내 #

위치 파일 내용
패키지 카드 짧은 설명 pubspec.yamldescription 검색 결과에 보이는 한 줄 요약
패키지 상세 페이지 tools/cli/README.md (이 파일) 설치법, 구조, 명령어 전체

README를 수정한 뒤 pub.dev에 반영하려면 버전을 올리고 재배포합니다.

cd tools/cli
# pubspec.yaml version bump + CHANGELOG
dart pub publish

링크 #

0
likes
0
points
--
downloads

Publisher

unverified uploader

Flutter Clean Architecture 스캐폴딩 CLI. `flutter_clean_arch init`으로 domain/data/presentation/design 멀티 패키지 구조를 복제하고, `add feature`로 entity·dto·mapper·usecase 파일을 생성합니다.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

args, path, yaml, yaml_edit

More

Packages that depend on flutter_clean_arch_scaffold