main function
void
main()
This example demonstrates how to use flutter_quality_analyzer programmatically in your own Dart code.
To run this example: dart run example/example.dart
Or use the CLI directly (after dart pub global activate flutter_quality_analyzer):
fqa --path /path/to/your/flutter_project
fqa --path . --verbose
fqa --path . --format json
Implementation
void main() async {
// ─── 1. Read pubspec.yaml from a Flutter project ──────────────────────────
final reader = PubspecReader();
final result = reader.read('.'); // '.' = current directory
if (result.isFailure) {
Logger.error(result.error!);
return;
}
final pubspec = result.value!;
Logger.info('Project : ${pubspec.projectName}');
Logger.info('Found : ${pubspec.dependencies.length} dependencies');
if (pubspec.dependencies.isEmpty) {
Logger.warn('No dependencies to analyze.');
return;
}
// ─── 2. Fetch latest versions from pub.dev ────────────────────────────────
final client = PubDevClient();
final checker = VersionChecker();
Logger.info('Checking versions against pub.dev...');
final results = await checker.checkAll(
dependencies: pubspec.dependencies,
client: client,
);
client.dispose();
// ─── 3. Print results to console ─────────────────────────────────────────
final reporter = ConsoleReporter();
reporter.report(results);
final outdated = results.where((r) => r.isOutdated).length;
final upToDate = results.where((r) => !r.isOutdated && r.latestVersion != null).length;
final failed = results.where((r) => r.latestVersion == null).length;
reporter.printSummary(
total: results.length,
outdated: outdated,
upToDate: upToDate,
failed: failed,
);
// ─── 4. Or use JsonReporter for machine-readable output ──────────────────
// final jsonReporter = JsonReporter();
// jsonReporter.report(results);
}