Ketika membuat project baru Flutter biasanya kita akan menggunakan perintah flutter create {project_name}
, lalu mengubah struktur folder, lalu menambahkan dependencies, setelah semua selesai, baru kita mulai ngoding.
Salah satu kegiatan yang paling membuat kita malas adalah mengubah struktur folder agar terlihat clean, dan mudah digunakan, bukan hanya struktru folder lib
saja yang perlu kita perhatikan, tetapi juga folder test
agar sesuai dengan struktur folder lib
kita.
Karena masalah itu, saya mulai searching apakah ada command-tools yang bisa digunakan untuk membuat proyek baru flutter dengan gampang, dan sudah menyesuaikan dengan best practice yang ada.
Lalu saya stumble upon very_good_cli
.
CLI ini dibuat oleh Very Good Ventures yang mana adalah perusahaan yang sudah memiliki nama di komunitas Flutter. Salah satu library mereka yang sangat terkenal adalah flutter_bloc.
Fitur yang ditawarkan dari CLI ini adalah:
✅ Cross Platform Support - Built-in support for iOS, Android, Web, and Windows (MacOS/Linux coming soon!).
✅ Build Flavors - Multiple flavor untuk development, staging, and production.
✅ Internationalization Support - Internationalization dengan menggunakan file .arb
.
✅ Sound Null-Safety - Sudah mendukung null-safety.
✅ Bloc - Langsung terintegrasi dengan Bloc.
✅ Testing - Unit and Widget Tests with 100% line coverage (Integration Tests coming soon!)
✅ Logging - Built-in, extensible logging to capture uncaught Flutter and Dart Exceptions, sudah menggunakan runZoned
untuk menangkap semua Exception.
✅ Very Good Analysis - Strict Lint Rules which are used at Very Good Ventures, lint dan static analysis dengan aturan yang ketat.
✅ Continuous Integration - Sudah terhubung dengan continuous integration GitHub Actions
Untuk menginstall CLI ini bisa dengan menggunakan command:
//install cli globally
dart pub global activate very_good_cli
Dan untuk menggunakannya, kita gunakan perintah:
very_good create {project_name}
Terakhir kita hanya tinggal menambahkan dependency yang dibutuhkan.
Sekian dari saya, salam belajar!