Skip to main content

Develop. Check. Maintain.

DCM statically analyzes your code to quickly find quality and consistency problems.

Detect problems

Quickly find and fix problems
in your code

Calculate metrics

Detect places that need attention

Find unused code

Check if any code is unused

Use with your favorite IDE

View problems with your favorite editor

Integrate into the CI/CD process

Launch via the command line

Make less mistakes and speed up code reviews

DCM helps you spend less time on searching and fixing bugs, so you can focus more on what matters:
building great software.

1class _MyWidgetState extends State<MyWidget> {
3    Widget build(BuildContext context) {
4      setState(() {
5        myState = "Hello, Flutter!";
6      });
8      return Text(myState);
9    }
WARNING  Avoid calling unnecessary setState.
         at example.dart


Find issues

DCM statically analyzes your code with lint rules to quickly find problems and suggests fixes. The rules provided by DCM are not available in the built-in Dart SDK linter, but they are very handy.

Configure rules

All rules provided by DCM can be configured, so you can customize them to work exactly the way you need for your projects. You can also use rule presets to always have up to date rules list.


For existing projects

Helps detect places in the codebase that need the most attention in terms of complexity / tech dept.

For new projects

Provides instant feedback on pull requests, helping to ensure that code stays easy to maintain.

2  metrics:
3    cyclomatic-complexity: 20
4    number-of-parameters: 4
5    maximum-nesting-level: 5

unused code

$: dcm check-unused-code lib
Analyzing lib...
❌ total unused code (classes and functions) - 10

Search unused code

Even though the Dart compiler might optimize your code and exclude unused parts, maintaining such code is still your burden.

To find unused code in your codebase, try check-unused-code.

Search unused files

Want to be sure that all the files in your project are actually used? Try check-unused-files.

You can also automatically delete such files with the “--delete-files” option.

Search unused localization

Want to reduce your app bundle and amount of work for your localization team? Check if any localization in your codebase is unused.

Integrate into
CI/CD pipeline

Launching via the command line allows you to easily integrate DCM into the CI/CD process, and you can get results in Console, HTML, JSON, CodeClimate, or GitHub.

DCM is also integrated with Codemagic.

IDE integrations

Enable DCM for your favorite IDE.

Recognized in the community

DCM usage is constantly growing. Join the community.

Public projects
use DCM
Popularity score
on Pub
1 of 67
Flutter Favorite

Ready to fix your code?

Install today