startup_tasks 1.0.2 copy "startup_tasks: ^1.0.2" to clipboard
startup_tasks: ^1.0.2 copied to clipboard

A lightweight Dart scheduler for coordinating Flutter app startup stages, task dependencies, retries, timeouts, and reports.

example/main.dart

import 'package:startup_tasks/startup_tasks.dart';

const apiBaseUrlKey = StartupKey<String>('apiBaseUrl');

final class LoadConfigTask extends StartupTask {
  const LoadConfigTask();

  @override
  String get id => 'app.load_config';

  @override
  StartupStage get stage => StartupStage.prepare;

  @override
  bool get critical => true;

  @override
  Future<void> run(StartupContext context) async {
    await Future<void>.delayed(const Duration(milliseconds: 50));
    context.write(apiBaseUrlKey, 'https://api.example.com');
  }
}

final class RegisterServicesTask extends StartupTask {
  const RegisterServicesTask();

  @override
  String get id => 'app.register_services';

  @override
  StartupStage get stage => StartupStage.business;

  @override
  List<String> get dependencies => const ['app.load_config'];

  @override
  Future<void> run(StartupContext context) async {
    final apiBaseUrl = context.require(apiBaseUrlKey);
    print('Registering services for $apiBaseUrl');
  }
}

Future<void> main() async {
  final manager = StartupManager(
    tasks: const [LoadConfigTask(), RegisterServicesTask()],
  );

  final report = await manager.run();
  print(report.formatSummary());
}
0
likes
160
points
152
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A lightweight Dart scheduler for coordinating Flutter app startup stages, task dependencies, retries, timeouts, and reports.

Repository (GitHub)
View/report issues

Topics

#startup #app-startup #flutter #tasks #scheduler

License

MIT (license)

More

Packages that depend on startup_tasks