createFlutterApp method

Future<bool> createFlutterApp()

Create a Flutter app project

Implementation

Future<bool> createFlutterApp() async {
  if (!config.template.isFlutterApp) {
    return false;
  }

  final String projectPath = p.join(config.outputDir, config.appName);

  info('Creating Flutter app: ${config.appName}');

  // Build flutter create command
  final List<String> args = <String>[
    'create',
    '--org',
    config.orgDomain,
    '--project-name',
    config.appName,
  ];

  // Add platforms from config (user may have selected subset)
  if (config.platforms.isNotEmpty) {
    args.addAll(<String>['--platforms', config.platforms.join(',')]);
  }

  // Add the project path
  args.add(projectPath);

  final ProcessResult? result = await _runner.runWithRetry(
    'flutter',
    args,
    operationName: 'Flutter create',
  );

  if (result == null || !result.success) {
    error('Failed to create Flutter app');
    return false;
  }

  success('Flutter app created at: $projectPath');
  return true;
}