fmp 1.0.1
fmp: ^1.0.1 copied to clipboard
A Flutter CLI tool to generate MVVM project structure using Provider.
FMP (Flutter MVVM Provider CLI) #
FMP is a CLI tool for automatically generating a Flutter MVVM (Model-View-ViewModel) project structure.
It follows Clean Code and SOLID principles, making it suitable for professional Flutter development.
Features #
- MVVM Architecture (Models, Views, ViewModels, Services, Data, Utils)
- Clean & Scalable Project Structure
- Provider State Management
- Service Locator with get_it
- API Handling with Exceptions & Response Wrappers
- Reusable Components & Utilities
- Routing with go_router
- Theme Management
- Boilerplate Reduction
Generated Project Structure #
lib
├── models
├── views
├── viewmodels
├── services
│ └── data
│ ├── network
│ │ ├── base_api_service.dart
│ │ └── network_api_service.dart
│ ├── exceptions
│ │ └── app_exception.dart
│ └── response
│ ├── api_response.dart
│ └── status.dart
├── utils
│ ├── components
│ │ └── snack_bar.dart
│ ├── app_colors.dart
│ ├── assets_path.dart
│ └── app_urls.dart
├── routes
│ └── app_router.dart
├── themes
│ └── app_theme.dart
├── main_app.dart
└── locator.dart
assets
├── images
├── icons
├── animations
└── fonts
Installation #
dart pub global activate fmp
Make sure your
pub global bin
path is added to your system environment variables.
Usage #
Generate Full Project Structure #
fmp
The CLI will ask for confirmation. Press y
to continue and it will automatically create the full MVVM project structure with all necessary folders and files.
File Generation #
The CLI automatically creates these files if they do not exist:
lib/main.dart
lib/app.dart
lib/locator.dart
lib/utils/app_colors.dart
lib/utils/app_urls.dart
lib/utils/assets_path.dart
lib/utils/components/snack_bar.dart
lib/themes/app_theme.dart
lib/routes/app_router.dart
lib/services/data/exceptions/app_exception.dart
lib/services/data/network/base_api_service.dart
lib/services/data/network/network_api_service.dart
lib/services/data/response/api_response.dart
lib/services/data/response/status.dart
pubspec.yaml
All files are placed inside the lib
and assets
folders automatically.
Dependencies #
pubspec.yaml
automatically includes:
dependencies:
flutter:
sdk: flutter
cupertino_icons:
provider:
get_it:
go_router:
shared_preferences:
flutter_svg:
http:
Best Practices #
- Write clean, readable, and maintainable code.
- Refactor reusable parts into widgets inside
utils/components
. - Strictly follow MVVM architecture.
- Adhere to SOLID principles.