Skip to main content
analyze

Boost your productivity

DCM is a tool to build maintainable software faster. It provides you with valuable insights that you didn't know about before. No AI hallucinations, purely statically available data that would take too long to collect manually.


Lint rules

Find bugs and style issues. Reduce boring routine.

Use rules to find bugs and issues that are difficult to spot by eye. They help you cut through the boring routine and turn verbal code style agreements into a set of automated checks so you can focus on what really matters: building great software.

Lint rules in IDE

Built for you

Unlike the rules provided by the Dart analyzer, DCM rules are flexible and can be configured to suit your specific needs. Want your own order of class members, different from what others use? Just change the rule's configuration.

Easy to set up

Use already familiar analysis_options.yaml file to configure a list of rules that will help you find bugs and match your code style. And if you accidentally misspell a rule name or configure it incorrectly, DCM will instantly show this.

Configuration example

Don't want to go through the list of all available rules? Get started quickly with one of the presets.

With examples and explanations

All rules provided by DCM have a documentation page with the rule description and examples to help you clearly understand what problem (or style issue) the rule solves. Some rules also have links to additional sources (e.g. GitHub issues) to give you more context on the underlying issue.

In your IDE and on CI/CD

DCM IDE integrations give you instant feedback on any code changes and setting up DCM on CI/CD helps you ensure that no unnoticed issue makes it into your main branch.

CLI output

For Dart, Flutter and different packages

Apart from providing rules for Dart and Flutter, DCM also covers several popular packages such as provider, bloc, equatable and other. We're constantly working to support more and more external packages, so if you have ideas about what other packages we can support, let us know!


MetricsTeams

Get your projects complexity overview Teams

Use metrics to measure the complexity of your code and identify areas that may be difficult to maintain or test.

This overview can be particularly useful for large projects, where it can be challenging to keep track of all the contributions from different developers.

Metric report

Configurable

Metrics at their core are just numbers, and there is rarely a number that suits everyone. This is why you can configure the metrics to suit your code style and approaches.

With detailed reports

Metric reports allow you to view complex parts down to a specific method or class. You can also choose the output format that suits you best: plain text, JSON, Code Climate, GitLab, HTML, Checkstyle.

Metric report for one file

For different scopes

Collect metrics for classes, functions or whole files.


Widget analysisTeams

Ensure the highest quality of your widgets Teams

Building good UI is hard. Make this process simpler by understanding how complex your widgets are and how they are used.

Measure quality

DCM analyzes your Flutter widgets and shows a combined score based on how complex the widget is.

Widget report

Find usages

Use the widget report to find out what other widgets the current widget relies on (both internal and external widgets from Flutter itself or other packages) and what other widgets use it.

And similar (or duplicated) widgets

Similarity report helps you find similar widgets in your codebase and then decide whether this similarity is acceptable or whether widgets should be refactored. While not all similarity is bad, reducing the number of duplicate code can help you not only make it easier to maintain, but also avoid potential visual or behavioral differences when you change one of your widgets.

Similarity report

DCM

Ready to fix your code?

Start today

Start Teams Trial