vanilla-stacked-bricks icon indicating copy to clipboard operation
vanilla-stacked-bricks copied to clipboard

A repository for easily generating well-structured Flutter projects based on the Stacked framework, using Mason Bricks for efficient setup and consistency.

VanillaStackedBricks

This repository contains Mason bricks for clean architecture projects. It includes modules, views, integration tests, services, network components, and more.

Mason Demo

Table of Contents

  • View Brick
  • Integration Test Brick
  • Feature/Module Brick

View Brick

Mason Brick to create a new view in already existing feature or a as a new feature.

Setup Brick πŸš€

  1. Install mason_cli:
dart pub global activate mason_cli
  1. Activate view bricks
  • Using mason add command
mason add view
  --git-url https://github.com/GameOnAnil/vanilla-stacked-bricks.git
  --git-path bricks/view
  • Add directly to mason.yaml
bricks:
  view:
    git:
      url: 'https://github.com/GameOnAnil/vanilla-stacked-bricks.git'
      path: 'bricks/view'

How to use πŸš€

Command Line

Mason Demo

mason make view

The you will get prompt

modulename?
filename?

Variables for the Command Line ✨

Variable Description Type
modulename The name of feature / module this view belongs to String
filename Name of the view String

Generate File Structure

login_feature
 β”— views
 ┃ β”— login
 ┃ ┃ ┣ view_model
 ┃ ┃ ┃ β”— login_viewmodel.dart
 ┃ ┃ β”— login_view.dart

Integration Test Brick

Mason Brick to create a template for integration test

  1. Activate view bricks
  • Using mason add command
mason add view
  --git-url https://github.com/GameOnAnil/vanilla-stacked-bricks.git
  --git-path bricks/integration_test
  • Add directly to mason.yaml
bricks:
  view:
    git:
      url: 'https://github.com/GameOnAnil/vanilla-stacked-bricks.git'
      path: 'bricks/integration_test'

Variables for the Command Line ✨

Variable Description Type
modulename The name of feature / module this integration test belongs to String

Generate File Structure

integration_test
 β”— sample
 ┃ ┣ common
 ┃ ┃ β”— sample_common.dart
 ┃ ┣ finders
 ┃ ┃ β”— sample_finders.dart
 ┃ β”— sample_test.dart

Feature/Module Brick

Mason Brick to create a template for feature/module in our MVVM flutter architecture.

  1. Activate v_module bricks
  • Using mason add command from
mason add v_module
  • Add directly to mason.yaml from git
bricks:
  v_module:
    git:
      url: 'https://github.com/GameOnAnil/vanilla-stacked-bricks.git'
      path: 'bricks/v_module'

Variables for the Command Line ✨

Variable Description Type
module_name The name of feature / module this integration test belongs to String

Generate File Structure

 β”— πŸ“‚ui
 ┃ β”— πŸ“‚login
 ┃ ┃ ┣ πŸ“‚models
 ┃ ┃ ┃ β”— πŸ“œhello.md
 ┃ ┃ ┣ πŸ“‚repository
 ┃ ┃ ┃ β”— πŸ“œlogin_repository.dart
 ┃ ┃ ┣ πŸ“‚services
 ┃ ┃ ┃ β”— πŸ“œlogin_service.dart
 ┃ ┃ β”— πŸ“‚views
 ┃ ┃ ┃ β”— πŸ“œhello.md