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!"

#Flutter devs: how many of these have you run into? We’ve rounded up 15 common Flutter & Dart mistakes you’ll definitely recognise: ⚠️ Memory leaks ⚠️ `setState` misuse ⚠️ Async pitfalls ⚠️ Testing gaps & more Find out how to spot and fix them before they break your app: dcm.dev/blog/2025/03...

15 Common Mistakes in Flutter and Dart Development (and How to Avoid Them) | DCM - Code Quality Tool for Flutter Developers

In this article, I’m sharing 15 common mistakes Flutter developers often make—along with why they happen, what to watch out for, and how to fix them using proven patterns and DCM rules and features.

dcm.dev

🤔 Most teams can tell when a Flutter method feels too complex. The problem is that “too complex” is subjective. Read "Cyclomatic Complexity, #Flutter Guide" & learn how to shield your code and to refactor it down and protect your team now & later! dcm.dev/blog/2026/04...

Flutter Cyclomatic Complexity Guide | DCM - Code Quality Tool for Flutter Developers

Learn how to identify, measure, and reduce Cyclomatic Complexity in Flutter apps using DCM—complete with real-world examples and team workflow tips.

dcm.dev

Advanced metrics configuration in DCM is where metrics become practical. You’re not limited to one global threshold. You can tune metrics for legacy code, new features, widget-heavy UI, critical paths, and even dashboards-only tracking. In this guide, learn how you can do it 👇

Bild

🚀 Quality code tip: Use the variable you already created. It's easy to miss, but the "use-existing-variable" rule dcm.dev/docs/rules/c... catches repeated expressions when a variable already exists. 🪧 Less code 🔁 Less duplication ✅ Fewer inconsistencies

Bild

🎉 A case study with Appinio was published! Appinio is a fast-growing global market research platform. Their mobile team delivers production-grade #Flutter apps and uses DCM to maintain high development velocity without compromising long-term maintainability. How? 👇

Is your #Flutter app silently excluding users? In our new blog: ✅ New accessibility features in Flutter 3.32 ✅ Fixing common pitfalls (labels, text scaling, contrast) ✅ Automated testing with meetsGuideline & more ✅ Practical code examples & tools dcm.dev/blog/2025/06...

Practical Accessibility in Flutter (and Code You’ll Actually Use) | DCM - Code Quality Tool for Flutter Developers

Flutter makes it possible to build beautiful apps and with a bit of effort, beautiful, accessible apps. The great thing is that many accessibility improvements are small tweaks that have big impact.

dcm.dev

A small #Flutter lint that can prevent confusing layout issues: avoid-flexible-outside-flex. This rule warns when Flexible is used outside a Flex widget, such as Row, Column, or Flex, helping keep widget tree layouts working correctly. Read more: dcm.dev/docs/rules/f...

Bild

Many teams want better code quality but struggle to know where to start. Techniques such as: 1⃣ preview all metrics first ✅ start with metrics-recommended ✏️ override thresholds for your project 👩‍💻 choose metrics based on your actual pain points Read more: dcm.dev/docs/guides/...

Bild

Complex conditions can impact readability in your #Flutter code. ❌ Instead of: (a && b) || (!a && c) ✅ Prefer: a ? b : c DCM’s "prefer-simpler-boolean-expressions" rule flags redundant #Dart boolean patterns and suggests more readable alternatives. Read more: dcm.dev/docs/rules/c...

Bild

Arrange, Act, Assert is the gold standard for unit testing 🧪 Why? It ensures tests are not doing "multiple rounds of arrange and act." DCM 1.32 introduced `prefer-test-structure` to warn when a test is not separated into these three sections. Read more: dcm.dev/docs/rules/c...

Bild

Async mistakes can quietly slow down or break your #Flutter app. This post breaks down common pitfalls and how to fix them: 🔄 Misused `FutureOr` ⚠️ Unawaited futures in `initState()` 🔁 Redundant `async/await` 🚦 Inefficient parallel calls 🧵 Confusing `.then()` chains dcm.dev/blog/2025/05...

The Hidden Cost of Async Misuse in Flutter (And How to Fix It) | DCM - Code Quality Tool for Flutter Developers

Uncover hidden Flutter performance issues & memory leaks! Learn to spot & fix common async/await misuses like unawaited Futures.

dcm.dev

🎉 A case study with Zühlke was published! They use DCM to keep complex, mission-critical #Flutter apps maintainable across healthcare, industrial engineering, and enterprise projects. 💯 Result: faster PRs, fewer regressions, and better visibility into technical debt. How?👇

Bild

#Flutter BLoC is everywhere, but hidden bugs are easy to miss: 💥 isClosed after await 🔁 same-state emits 🧠 create vs .value 🚫 public methods bypass events 🔒 sealed/immutable classes By reading BLoC source code, we see how to happen & prevent them: dcm.dev/blog/2026/03...

Flutter BLoC Best Practices You're Probably Missing | DCM - Code Quality Tool for Flutter Developers

Learn how the BLoC pattern works by reading its source code. Understand the architecture behind Flutter state management and discover why certain patterns prevent crashes and memory leaks.

dcm.dev

#Flutter BLoC is everywhere, but hidden bugs are easy to miss: 💥 isClosed after await 🔁 same-state emits 🧠 create vs .value 🚫 public methods bypass events 🔒 sealed/immutable classes By reading BLoC source code, we see how to happen & prevent them: dcm.dev/blog/2026/03...

Flutter BLoC Best Practices You're Probably Missing | DCM - Code Quality Tool for Flutter Developers

Learn how the BLoC pattern works by reading its source code. Understand the architecture behind Flutter state management and discover why certain patterns prevent crashes and memory leaks.

dcm.dev

Async mistakes can quietly slow down or break your #Flutter app. This post breaks down common pitfalls and how to fix them: 🔄 Misused `FutureOr` ⚠️ Unawaited futures in `initState()` 🔁 Redundant `async/await` 🚦 Inefficient parallel calls 🧵 Confusing `.then()` chains dcm.dev/blog/2025/05...

The Hidden Cost of Async Misuse in Flutter (And How to Fix It) | DCM - Code Quality Tool for Flutter Developers

Uncover hidden Flutter performance issues & memory leaks! Learn to spot & fix common async/await misuses like unawaited Futures.

dcm.dev

🎉 We just published a case study with CarOnSale, Europe's fast-growing B2B automotive platform. They secure their Flutter mobile apps and internal libraries with DCM. 💯 The results? Smoother code reviews, automated consistency, & increased developer confidence across teams👇

Bild

We just published a case study with BoursoBank, France’s largest online bank! They secure mission-critical #Flutter mobile & web apps with DCM. 💯 The results? maintainable architecture, & zero crashes in payment & authentication flows for 70+ engineers Here's how they do it 👇

Bild

Once you have multiple #Flutter projects, it's often required to manage different DCM versions. Our new guide covers: 🔄 Fast version switching 💻 Helper scripts (Zsh, Bash, Fish, PS) 💙 FVM support 🤝 Team consistency with dcm_global.yaml Read here: dcm.dev/docs/guides/...

Bild

We recently published a case study with Betterment where the team adopted DCM into their workflow, which helped them to: - Cut feedback cycles from minutes to seconds - Focus on architecture review rather than styling - Ship faster & safer Full story: dcm.dev/customers/be...

Bild