clarc_arch_cli 0.1.0 copy "clarc_arch_cli: ^0.1.0" to clipboard
clarc_arch_cli: ^0.1.0 copied to clipboard

A CLI for scaffolding Flutter Clean Architecture projects, modules, and pages.

clarc #

clarc adalah CLI untuk mempercepat pembuatan project Flutter dengan pola Clean Architecture. Package ini dipublish sebagai clarc_arch_cli, sementara command yang dijalankan tetap clarc.

Fitur #

  • Membuat project Flutter baru dengan struktur Clean Architecture.
  • Menambahkan dependency umum: Dio, Flutter Bloc, Get It, Go Router, Equatable, Freezed, JSON Serializable, Shared Preferences, dan Pretty Dio Logger.
  • Membuat module feature lengkap dari layer data, domain, sampai presentation.
  • Membuat page baru di module terpilih dan otomatis register route GoRouter.
  • Otomatis register dependency module ke Get It.
  • Mendukung Flutter runner:
    • flutter
    • fvm flutter
    • puro flutter
  • Bisa memilih runner lewat wizard interaktif atau flag --flutter-cmd.
  • Opsional setup local database dengan sqflite.

Install #

Setelah package tersedia di pub.dev:

dart pub global activate clarc_arch_cli

Lalu jalankan:

clarc --help

Pastikan folder global pub executables sudah ada di PATH.

Install Lokal #

dart pub get
dart pub global activate --source path .

Setelah aktif, command bisa dipanggil dengan:

clarc --help

Saat development, bisa juga langsung pakai:

dart run clarc_arch_cli:clarc --help

Interactive Wizard #

Cara paling nyaman adalah menjalankan command tanpa argumen lengkap:

clarc create project

CLI akan menanyakan:

Mau buat project apa?
Pakai Flutter runner yang mana?
  1. Flutter biasa (default)
  2. FVM
  3. Puro
  4. Auto detect
  5. Custom command
Apakah project ini menggunakan database local sqflite?

Untuk module dan page:

clarc create module
clarc create page

CLI juga akan menanyakan nama module/page jika belum diberikan.

Flutter Runner #

Default wizard menaruh Flutter biasa sebagai pilihan pertama. Ini cocok untuk user yang memakai Flutter langsung dari PATH.

Pilihan runner:

  • Flutter biasa menjalankan flutter ....
  • FVM menjalankan fvm flutter ....
  • Puro menjalankan puro flutter ....
  • Auto detect membaca config manager dari folder project.

Mode Auto detect akan memilih runner seperti ini:

  • Jika ada .fvmrc atau folder .fvm, pakai fvm flutter.
  • Jika ada .puro.json atau folder .puro, pakai puro flutter.
  • Jika tidak ada config manager, pakai flutter.

Override manual:

clarc create project my_app --flutter-cmd flutter
clarc create project my_app --flutter-cmd "fvm flutter"
clarc create project my_app --flutter-cmd "puro flutter"

Kalau memakai FVM atau Puro, versi Flutter akan mengikuti konfigurasi tool tersebut. clarc tidak mengunci versi Flutter sendiri.

Membuat Project #

clarc create project my_app --org com.example

Jika nama project tidak diberikan, CLI akan menanyakan nama project.

Untuk setup local database sqflite lewat flag:

clarc create project my_app --local-db
clarc create project my_app --no-local-db

Opsi penting:

clarc create project my_app --path ./apps
clarc create project my_app --platforms android,ios,web
clarc create project my_app --skip-flutter-create
clarc create project my_app --no-pub-get
clarc create project my_app --yes

clarc akan meminta approval untuk aksi besar seperti menjalankan flutter create, memakai folder yang sudah berisi file, dan menjalankan pub get.

Membuat Module #

clarc create module auth --project-dir ./my_app

Module yang dibuat:

lib/features/auth/
  data/
    datasources/
    models/
    repositories/
  domain/
    entities/
    repositories/
    usecases/
  presentation/
    bloc/
    pages/

Selain membuat file, clarc juga:

  • Register route default module ke lib/app/router/app_router.dart.
  • Register Bloc, UseCase, Repository, dan DataSource ke lib/core/di/injection.dart.
  • Menawarkan untuk menjalankan build_runner.

Contoh dengan FVM:

clarc create module auth --project-dir ./my_app --flutter-cmd "fvm flutter"

Membuat Page #

clarc create page auth login --project-dir ./my_app

Perintah ini membuat:

lib/features/auth/presentation/pages/login_page.dart

Lalu otomatis menambahkan route:

/auth/login

Jika module belum ada, CLI akan menanyakan apakah module perlu dibuat dulu.

Struktur Project Generated #

Project baru akan memiliki struktur dasar:

lib/
  app/
    app.dart
    router/
      app_router.dart
  core/
    di/
      injection.dart
    error/
      failure.dart
    database/
      app_database.dart
    network/
      api_client.dart
    usecases/
      usecase.dart
  features/
    home/
      presentation/
        pages/
          home_page.dart
  main.dart

Folder core/database hanya dibuat jika user memilih local database.

Workflow Rekomendasi #

clarc create project my_app --org com.example
cd my_app
clarc create module auth
clarc create page auth login

Jika memakai FVM:

fvm use 3.24.0
clarc create project my_app --flutter-cmd "fvm flutter"
cd my_app
clarc create module auth --flutter-cmd "fvm flutter"

Development #

dart format bin lib test
dart analyze
dart test
1
likes
0
points
39
downloads

Publisher

unverified uploader

Weekly Downloads

A CLI for scaffolding Flutter Clean Architecture projects, modules, and pages.

Repository (GitHub)
View/report issues

Topics

#cli #flutter #clean-architecture #scaffolding #bloc

License

unknown (license)

Dependencies

args, path

More

Packages that depend on clarc_arch_cli