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().collect();
  final environment = EnvironmentStep(flavors: flavors).collect();
  final firebase =
      FirebaseStep(platforms: platforms, flavors: flavors).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,
    environment: environment,
    firebase: firebase,
    localization: localization,
    debugInfo: './debug-info',
    obfuscate: true,
    mainEntry: 'lib/main.dart',
    featureDir: featureDir,
    defaultTemplate: generator.defaultTemplate,
  );
}