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 --optionsand internal logic. Not stored in project.dart or package.dart.