Skip to main content

flutter_clean_arch_generator 1.0.1 copy "flutter_clean_arch_generator: ^1.0.1" to clipboard
flutter_clean_arch_generator: ^1.0.1 copied to clipboard

A Dart CLI tool that generates Flutter projects and features following the Clean Architecture pattern.

example/flutter_clean_arch_generator_example.dart

import 'package:flutter_clean_arch_generator/flutter_clean_arch_generator.dart';

Future<void> main() async {
  print('=== Flutter Clean Architecture Generator Examples ===\n');

  print('--- CLI Usage ---');
  Cli.main(['--help']);

  print('\n--- Programmatic API Usage ---');

  final projectGenerator = ProjectGenerator(
    projectName: 'my_app',
    projectPath: '/tmp/my_app_example',
    baseUrl: 'https://api.example.com',
    apiVersion: 'api',
  );

  print('ProjectGenerator created for: ${projectGenerator.projectName}');
  print('Output path: ${projectGenerator.projectPath}');
  print('Base URL: ${projectGenerator.baseUrl}');
  print('API version: ${projectGenerator.apiVersion}');

  final featureConfig = FeatureConfig(
    name: 'product',
    entityFields: [
      FeatureField(name: 'id', type: 'int'),
      FeatureField(name: 'name', type: 'String'),
      FeatureField(name: 'price', type: 'double', isNullable: true),
      FeatureField(name: 'description', type: 'String', isNullable: true),
    ],
    useCases: [
      FeatureUseCase(
        name: 'fetchProduct',
        params: [],
        returnType: 'Product',
        returnsList: false,
        hasParams: false,
      ),
      FeatureUseCase(
        name: 'fetchProducts',
        params: [],
        returnType: 'List<Product>',
        returnsList: true,
        hasParams: false,
      ),
    ],
    hasLocalDataSource: true,
    hasAuthDependency: true,
  );

  print('\nFeatureConfig created:');
  print('  Name: ${featureConfig.name}');
  print('  PascalCase: ${featureConfig.pascalCase}');
  print('  CamelCase: ${featureConfig.camelCase}');
  print('  SnakeCase: ${featureConfig.snakeCase}');
  print('  Fields: ${featureConfig.entityFields.length}');
  print('  Use cases: ${featureConfig.useCases.length}');
  print('  Has local datasource: ${featureConfig.hasLocalDataSource}');
  print('  Has auth dependency: ${featureConfig.hasAuthDependency}');

  print('\nString utilities:');
  print('  toPascalCase("user_profile") = ${toPascalCase("user_profile")}');
  print('  toCamelCase("user_profile") = ${toCamelCase("user_profile")}');
  print('  toSnakeCase("UserProfile") = ${toSnakeCase("UserProfile")}');
  print('  toKebabCase("UserProfile") = ${toKebabCase("UserProfile")}');
  print('  toCapitalized("hello world") = ${toCapitalized("hello world")}');
  print('  normalizeFeatureName("Hello-World") = ${normalizeFeatureName("Hello-World")}');
  print('  joinPath("lib", "features") = ${joinPath("lib", "features")}');
}
5
likes
0
points
170
downloads

Publisher

unverified uploader

Weekly Downloads

A Dart CLI tool that generates Flutter projects and features following the Clean Architecture pattern.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

args, path, yaml

More

Packages that depend on flutter_clean_arch_generator