Nov 25, 2022
Flutter Starter CLI
The Flutter Starter CLI is a remarkable tool that provides commands and instructions for quickly setting up a Flutter project from scratch.
Author


Book a call
Table of Contents
Introduction
Flutter Starter CLI is written in Dart, and with the help of this CLI, we can create a Flutter template on the fly.Flutter Starter CLI includes:-- BLoC - BLoC is a popular design/architectural pattern that is used to separate the logic from the UI.
- RiverPod - A state-management library that catches programming errors simultaneously and ensures that the code is testable.
API-Services
- Dio - A powerful HTTP client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout, etc.
- Http - A composable, Future-based library for making HTTP requests.
- Graphql - A standalone GraphQL client for Flutter, bringing all the features from a modern GraphQL client to one easy-to-use package.
Basic Setup
- Themes - Themes are used to share colors and font styles throughout an app.
- Localization - The project supports multiple languages like English, Spanish and French.
- Routing - Go_Router is used to provide a convenient, URL-based API for navigating between different screens.
- Unit - A unit test examines a single function, method, or class.
- Widget - A widget test tests a single widget.
- Integration - An integration test examines a complete app or a large part of an app.
Flutter Starter CLI uses the Flutter Starter Template to generate project files.It comes with the best coding practices and well-organized architecture.
Getting Started
Flutter Starter CLI, just activate the flutter_starter_cli package globally from pub.dev:flutter_starter_cli --versionflutter_starter_cli create- The prompt will initially inquire about the project's name.
- Next, the user must select the project's state management.
- Then the user must select the various API services for performing network calls.
- Following that, the prompt will request test cases, whether they are necessary or not.
- Finally, it will prompt you to create a git repository.
~ flutter_starter_cli create
Name of the Project? (flutter_starter) flutter_starter
Select the State Management bloc
Select the API Service dio
Whether Test Cases Required? (Y/n) Yes
Initialize Git Repository? (y/N) Yes✓ Project Created!!! (2.6s)
✓ Basic Setup Completed!!! (4ms)
✓ State Management Added!!! (1.0s)
✓ API Service Added!!! (1.0s)
✓ Localization Added!!! (1.0s)
✓ Routes Added!!! (1.0s)
✓ Themes Added!!! (1.0s)
✓ Test Cases Added!!! (1.0s)
✓ Dependencies Added!!! (7.2s)
✓ Pub Get Completed!!! (4.8s)
✓ Git Initialized!!! (28ms)
Your Project is Ready to Use 🚀In order to run your application.
Type:- $ cd flutter_starter
$ flutter run
Salient Features of The Starter Project
- lder Architecture: While building complex Flutter apps, the folder structure plays a very important role.
- State Management: When it comes to developing apps in Flutter, state management is a very crucial topic. To make the app more scalable, testable, and maintainable, the Bloc/Riverpod state management library has been integrated into the starter project.
- Null Safety: The starter template comes with sound null safety. Null safety prevents errors that result from unintentional access of variables set to null.
- Test Cases: The flutter starter project template comes with pre-defined test cases to validate the UI, business logic, functionality, etc
- Cross-Platform Support: We can launch the generated app on six platforms i.e., Android, iOS, Web, Windows, macOS, and Linux straight away.
All Available Commands
$ flutter_starter_cli --version$ flutter_starter_cli --help$ flutter_starter_cli create$ flutter_starter_cli create --state= --api= -g -t# To upgrade project
$ flutter_starter_cli project upgrade
Complete Usage
~ flutter_starter_cli createflutter_starter_cli create
-h, --help Print this usage information.--desc The description for the project.(defaults to "A New Flutter Project.")--org The organization for the project.(defaults to "com.example")-p, --path The directory path for the project.-s, --state The state management for the project.[bloc, riverpod]-a, --api The API service for the project. [dio, http]-t, --[no-]test Setup Test Cases.-g, --[no-]git Initialize Git Repository.Run "flutter_starter_cli help" to see global options.
Directory Structure
├── android
├── assets
├── integration_test
├── ios
└── lib
├── api_sdk
├── config
├── l10n
├── routes
├── screens
├── shared
├── themes
├── utils
├── widgets
├── app.dart
├── common_export.dart
├── main.dart
├── linux
├── macos
├── test
├── web
├── windows
├── .gitignore
├── analysis_options.yaml
├── l10n.yaml
├── pubspec.lock
├── pubspec.yaml
└── README.md
Demo

Subscribe to Our Newsletter
Subscribe to RSS
Press & Media Hub RSS FeedRelated Articles.
More from the engineering frontline.
Dive deep into our research and insights on design, development, and the impact of various trends to businesses.

Nov 19, 2025
Offline-First Flutter: Implementation Blueprint for Real-World Apps

Jun 16, 2025
Advanced Navigation in Flutter Web: A Deep Dive with Go Router

Nov 27, 2024
Advanced Network Architecture for a Scalable ERP System

Sep 26, 2024
How to Implement Branch Deep Linking in Flutter

Sep 25, 2024
Converting Flutter Screens to Shareable PDFs: A Complete Guide

Sep 12, 2024