run method

Future<void> run({
  1. required BuildPlatform platform,
  2. required String flavor,
  3. BuildMode mode = BuildMode.debug,
})

Runs the application using the provided configuration and options.

Implementation

Future<void> run({
  required BuildPlatform platform,
  required String flavor,
  BuildMode mode = BuildMode.debug,
}) async {
  final config = await ConfigService.load();

  InitValidator.validate(config);

  final flavorConfig = config.flavors[flavor];

  if (flavorConfig == null) throw Exception('Flavor "$flavor" not found.');

  final arguments = <String>['run'];

  if (config.flavoringEnabled && platform != BuildPlatform.web) {
    arguments.addAll(['--flavor', flavor]);
  }

  arguments.add('--dart-define-from-file=${flavorConfig.env}');

  switch (mode) {
    case BuildMode.debug:
      break;

    case BuildMode.profile:
      arguments.add('--profile');
      break;

    case BuildMode.release:
      arguments.add('--release');
      break;
  }

  LoggerService.section('Running $flavor');

  await FlutterService(config).runFlutter(arguments);
}