flutist library

Flutist - A declarative Flutter project management framework.

Flutist provides tools for managing Flutter projects with a declarative approach, inspired by Tuist. It supports module creation, dependency management, code generation, and visualization.

Features

  • Module Management: Create and organize modules with predefined architectures
  • Type-Safe Dependencies: Auto-completion for dependencies and modules
  • Code Scaffolding: Generate code from customizable templates
  • Dependency Graphs: Visualize module relationships
  • Workspace Support: Built on Flutter's native workspace feature

Usage

# Install Flutist
dart pub global activate flutist

# Initialize a new project
flutist init

# Create a module
flutist create --name login --path features --options clean

# Sync dependencies
flutist generate

# Visualize dependencies
flutist graph --open

For more information, visit: https://github.com/seonwooke/flutist

Classes

ArchitectureChecker
Validates architecture rules for module dependencies.
BaseCommand
Base interface for all Flutist CLI commands.
CheckCommand
Command to check architecture rules.
CheckResult
Result of an architecture rule check.
CreateCommand
Dependency
Represents a dependency in a Flutist project. Can be either a pub.dev package or an internal module.
ErrorHelper
User-friendly error message helper.
FileHelper
Utility class for file and directory operations.
GenerateCommand
GenFileGenerator
Generator for flutist_gen.dart file.
GraphCommand
Command to generate dependency graph.
HelpCommand
Command to display help information.
InitCommand
Logger
Utility class for logging messages to the terminal with colors.
Module
Represents a module in a Flutist project.
ModuleNode
Represents a module node in the dependency graph.
Package
Central package configuration in a Flutist project. Defines all available dependencies and modules that can be referenced by individual modules. Typically defined in 'package.dart' for centralized dependency management.
Project
Root configuration of a Flutist project. Top-level structure that defines the entire project with its modules and settings.
ProjectOptions
Configuration options for a Flutist project.
ProjectParser
Parses project.dart file into a Project object.
PubCommand
ScaffoldCommand
Command to generate code from user-defined templates.
StringCase
Utility class for string case conversions.
TestCommand
Command to run tests across all modules in parallel.
WorkspaceEditor
Utility class for editing workspace configuration in pubspec.yaml.

Enums

CheckSeverity
Severity level for check results.
ScaffoldType
Defines the scaffold template type used when creating a module. Used exclusively by flutist create --options and internal logic. Not stored in project.dart or package.dart.