start method

Future<InitConfig> start()

Starts the initialization wizard and collects project configuration.

Returns the resulting InitConfig based on the user's selections.

Implementation

Future<InitConfig> start() async {
  LoggerService.section('FKIT Project Initialization');

  final projectName = ProjectStep().collect();
  final featureDir = FeatureStep().collect();
  final useFvm = ToolingStep().collect();
  final platforms = PlatformStep().collect();
  final flavors = FlavorStep(platforms).collect();
  final testerGroup = FirebaseStep().collect();
  final localization = LocalizationStep().collect();
  final generator = GeneratorStep().collect();

  return InitConfig(
    version: FkitVersion.current,
    projectName: projectName,
    useFvm: useFvm,
    android: platforms.android,
    ios: platforms.ios,
    web: platforms.web,
    flavoringEnabled: flavors.enabled,
    defaultFlavor: flavors.defaultFlavor,
    flavors: flavors.flavors,
    localizationEnabled: localization.enabled,
    arbDir: localization.arbDir,
    outputDir: localization.outputDir,
    outputFile: localization.outputFile,
    defaultLocale: localization.defaultLocale,
    locales: localization.locales,
    debugInfo: './debug-info',
    obfuscate: true,
    mainEntry: 'lib/main.dart',
    testerGroup: testerGroup,
    featureDir: featureDir,
    defaultTemplate: generator.defaultTemplate,
  );
}