DCM
banner
dcm.dev
DCM
@dcm.dev
Advanced linter for Flutter and Dart developers dcm.dev. Join our discord https://discord.gg/Vzjprgk4sb.

"its not AI, but it’s better!"
🤯 8 Flutter widgets you’re probably overlooking and why they matter.

In this article, we will show practical usage + their implementation source code to learn more from!

Which one surprised you? 👉 dcm.dev/blog/2025/10...
8 More Flutter Widgets You’re Probably Not Using (But Should Be) | DCM - Code Quality Tool for Flutter Developers
Discover 8 powerful Flutter widgets you might not be using yet, with practical examples and tips to boost your app's performance and UI versatility.
dcm.dev
October 28, 2025 at 7:36 PM
Ever written a function that always returns the same value (like "true")? 🤔

It usually means the logic isn’t doing what you think.

The "function-always-returns-same-value" rule catches these bugs before they spread! 👉 dcm.dev/docs/rules/c...
September 3, 2025 at 2:32 PM
Overriding fields from a super constructor with a getter? 🤔 That can break your code or lead to unexpected results!

The "avoid-suspicious-super-overrides" rule helps you quickly spot and fix such issues.

👉 youtu.be/X_VgMfUSid4
avoid-suspicious-super-overrides (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
September 1, 2025 at 2:50 PM
AI is speeding up coding but also technical debt ⚡️

In our new post we have brought to you how #Dart & #Flutter devs can use Dart & Flutter and DCM MCP servers to:

- Automate cleanup loops
- Enforce lints & metrics
- Keep AI-generated code maintainable

Read here: dcm.dev/blog/2025/08...
Let Your AI Assistant Tame Your Tech Debt (with Dart, Flutter and DCM MCP Servers) | DCM - Code Quality Tool for Flutter Developers
AI-generated code is creating tech debt. Learn how to build an agentic workflow that makes your AI assistant clean up after itself. This guide for Dart and Flutter developers uses DCM and MCP to autom...
dcm.dev
August 27, 2025 at 12:56 PM
Reposted by DCM
If your #Flutter widget tree has a matching sequence of "Align", "Padding", "ClipPath", and others, it can often be replaced with a single "Container" widget.

Use the "prefer-container" rule to simplify the layout dcm.dev/docs/rules/f...
August 7, 2025 at 1:20 PM
📦 One widget per file = easier-to-navigate, easier-to-maintain #Flutter code.

See how DCM enforces this best practice ⬇️ youtu.be/xa4zMwpXrr8
prefer-single-widget-per-file (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
August 25, 2025 at 3:27 PM
🔥 13 new rules!

DCM 1.31.0 is out and we've added 13 new rules that include Riverpod and #Flutter best practices, as well as common practices for #Dart.

➡️ Learn more about new rules in our latest blog: dcm.dev/blog/2025/08...
August 25, 2025 at 1:33 PM
DCM 1.31.0 is here! 🎉

🔧 13 new rules
🤖 DCM MCP Server
💾 Memory optimization for code quality commands
🧩 Baseline for check-parameters
📋 more rules in Free and Starter plans
📊 JSON/CSV for lints-preview, Dashboard improvements, and more.

👉 dcm.dev/blog/2025/08...
August 18, 2025 at 6:04 PM
Using `_` instead of `context`? You might be referencing the wrong `BuildContext`. That can lead to subtle bugs.

🔗 Here is a rule to help you quickly find such issues: dcm.dev/docs/rules/f...

#Flutter #Dart
August 12, 2025 at 10:15 AM
🚀 Introducing the DCM Starter Plan: Built for Small Teams

🪑 Start from 2 seats
🔍 213 rules
🛠️ Quick fixes
‼️ All CLI commands
📊 Dashboards & CI/CD
📦 Up to 100k LOC

Learn more 👉 dcm.dev/pricing
Pricing | DCM - Code Quality Tool for Flutter Developers
Find a plan that is right for you.
dcm.dev
August 8, 2025 at 4:45 PM
If your #Flutter widget tree has a matching sequence of "Align", "Padding", "ClipPath", and others, it can often be replaced with a single "Container" widget.

Use the "prefer-container" rule to simplify the layout dcm.dev/docs/rules/f...
August 7, 2025 at 1:20 PM
DCM 1.30.0 includes better baseline support in Dashboards! 🚀

✅ Toggle between open & baselined issues
✅ New Baseline tab for projects

🔗 Learn more in our blog: dcm.dev/blog/2025/07...
August 6, 2025 at 7:20 PM
Our new article covers the hard parts of #Flutter testing including:

✅ testing timers,
✅ mocking platform plugins,
✅ responsive UI,
✅ and even CustomPainter logic.

Learn more to level up your testing with practical examples 👇
dcm.dev/blog/2025/07...
Navigating the Hard Parts of Testing in Flutter | DCM - Code Quality Tool for Flutter Developers
A deep dive into advanced Flutter testing techniques: learn to handle edge cases, simulate time, test responsive layouts, mock platform plugins, and achieve reliable coverage with practical examples.
dcm.dev
July 30, 2025 at 6:22 PM
💡 Why removing commented-out-code matters?

✅ It often hides unfinished work or dead logic
✅ Adds noise and confusion for other devs
✅ Git handles history anyway

Learn more → dcm.dev/docs/rules/c...
July 28, 2025 at 11:41 AM
👀 Using GestureDetector with no event handlers? It’s doing nothing.

The DCM rule "avoid-unnecessary-gesture-detector" warns when gesture detectors are unused.

🎥 Watch to learn how to fix it: youtu.be/FvU8a0jl2b4
avoid-unnecessary-gesture-detector (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
July 25, 2025 at 8:42 AM
🚀 No more SizedBox hacks!🚀

Flutter 3.27 added a "spacing" argument to Row, Column, and Flex 🙌

And with the "prefer-spacing" rule you can quickly find such cases in your #Flutter codebase → dcm.dev/docs/rules/f...
July 23, 2025 at 8:55 PM
Creating a new Future inside FutureBuilder in #Flutter? That restarts the async task every rebuild.

Pass an existing Future from "initState", not from "build".

🔗Learn more how to fix this: dcm.dev/docs/rules/f...
July 21, 2025 at 1:36 PM
🎉 DCM 1.30.0: 22 New Lint Rules!

Our latest release introduced 22 new lint rules to boost code quality in #Dart and #Flutter code!

Check out our new rules: dcm.dev/blog/2025/07...
July 18, 2025 at 5:56 PM
🤔 Using "super()" in a constructor when it’s not needed?

The "avoid-unnecessary-super" rule warns when you add unnecessary super invocations or prefixes.

🎥 Watch to learn how to fix it: youtu.be/oU3q2AUj9o4
avoid-unnecessary-super (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
July 18, 2025 at 11:47 AM
📊 DCM 1.30.0 Dashboards updates:

✔️ Removed "--with-details" flag
✔️ New summary views for issues & metrics
✔️ Toggle & tab for baselined issues
✔️ Smaller uploads

Full details → dcm.dev/blog/2025/07...
July 17, 2025 at 12:21 PM
🧹 Creating instances with a "dispose" method but not assigning them to a variable?

That can cause memory leaks. The DCM rule "avoid-undisposed-instances" catches this before it becomes a bug.

🎥 Watch to learn how to fix it: youtu.be/cSiqXa8UMDM
avoid-undisposed-instances (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
July 15, 2025 at 6:10 PM
🚫 Still using `MediaQuery.of(context)` in your #Flutter apps?

Relying on `MediaQuery.of` can lead to unnecessary widget rebuilds, impacting your app’s performance.

🎥 Watch to learn, how you can fix it: youtu.be/w5S8YRUPyak
prefer-dedicated-media-query-methods (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
July 11, 2025 at 3:48 PM
DCM v1.30.0 is out!

🔥 22 new rules
🚀 Baseline: support for code quality commands
📉 Baseline: sensitivity levels
📊 Dashboard enhancements
✅ Updated "recommended" preset
🎁 More rules in Free & Starter plans
& more…

Learn more 👉 dcm.dev/blog/2025/07...
July 9, 2025 at 10:20 AM
Calling  `super` methods in the wrong order can lead to bugs when some properties are not yet initialized or have already been disposed.

Check out our latest video to learn more: youtu.be/aOTMDvD4kVs
proper-super-calls (Rules of the Week)
YouTube video by DCM Analyzer
youtu.be
July 7, 2025 at 12:58 PM
🎉 DCM was featured on #ObservableFlutter!

📺 Watch Craig and Dmitry dive into how DCM helps teams write more maintainable #Flutter and #Dart code.

🔗 Watch now: www.youtube.com/watch?v=ftPD...
Dart Code Metrics | Observable Flutter #63
YouTube video by Flutter
www.youtube.com
July 2, 2025 at 7:04 PM