<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>Advanced linter for Flutter and Dart developers dcm.dev. Join our discord https://discord.gg/Vzjprgk4sb.&#xA;&#xA;&#34;its not AI, but it’s better!&#34;</description><link>https://bsky.app/profile/dcm.dev</link><title>@dcm.dev - DCM</title><item><link>https://bsky.app/profile/dcm.dev/post/3mjmgzzq25c2l</link><description>🔥 DCM 1.36.0 includes 11 new rules for Flutter, Common, Equatable, &amp; Mocktail categories.&#xA;&#xA;To learn how these rules can prevent potential issues and bugs, read: https://dcm.dev/blog/2026/03/19/whats-new-in-dcm-1-36-0/</description><pubDate>16 Apr 2026 12:48 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mjmgzzq25c2l</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mj37rfrc6k25</link><description>#Flutter devs: how many of these have you run into?&#xA;&#xA;We’ve rounded up 15 common Flutter &amp; Dart mistakes you’ll definitely recognise:&#xA;⚠️ Memory leaks&#xA;⚠️ `setState` misuse&#xA;⚠️ Async pitfalls&#xA;⚠️ Testing gaps &amp; more&#xA;&#xA;Find out how to spot and fix them before they break your app: https://dcm.dev/blog/2025/03/24/fifteen-common-mistakes-flutter-dart-development/</description><pubDate>09 Apr 2026 16:23 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mj37rfrc6k25</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mijtc5de4k26</link><description>🤔 Most teams can tell when a Flutter method feels too complex. The problem is that “too complex” is subjective.&#xA;&#xA;Read &#34;Cyclomatic Complexity, #Flutter Guide&#34; &amp; learn how to shield your code and to refactor it down and protect your team now &amp; later!&#xA;&#xA;https://dcm.dev/blog/2026/04/01/cyclomatic-complexity-flutter-dcm/</description><pubDate>02 Apr 2026 18:24 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mijtc5de4k26</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mij5qflp6k2a</link><description>✨ Still doing manual null checks in your collection literals?&#xA;&#xA;DCM’s prefer-null-aware-spread rule warns when you could use ...? in your #Flutter code instead.&#xA;&#xA;🎥 Watch to learn how to fix it: youtu.be/92X6GXwW-N8&#xA;https://youtu.be/92X6GXwW-N8</description><pubDate>02 Apr 2026 11:58 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mij5qflp6k2a</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3migdlyhxgk2o</link><description>Advanced metrics configuration in DCM is where metrics become practical.&#xA;&#xA;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.&#xA;&#xA;In this guide, learn how you can do it 👇</description><pubDate>01 Apr 2026 09:05 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3migdlyhxgk2o</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mieomzjkuc2o</link><description>🚀 Quality code tip: Use the variable you already created.&#xA;&#xA;It&#39;s easy to miss, but the &#34;use-existing-variable&#34; rule https://dcm.dev/docs/rules/common/use-existing-variable/ catches repeated expressions when a variable already exists.&#xA;&#xA;🪧 Less code&#xA;🔁 Less duplication&#xA;✅ Fewer inconsistencies</description><pubDate>31 Mar 2026 17:17 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mieomzjkuc2o</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mic4lm5udk2d</link><description>🎉 A case study with Appinio was published!&#xA;&#xA;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.&#xA;&#xA;How? 👇</description><pubDate>30 Mar 2026 16:49 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mic4lm5udk2d</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhzzvtmyrk22</link><description>Is your #Flutter app silently excluding users?&#xA;&#xA;In our new blog:&#xA;✅ New accessibility features in Flutter 3.32&#xA;✅ Fixing common pitfalls (labels, text scaling, contrast)&#xA;✅ Automated testing with meetsGuideline &amp; more&#xA;✅ Practical code examples &amp; tools&#xA;&#xA;https://dcm.dev/blog/2025/06/30/accessibility-flutter-practical-tips-tools-code-youll-actually-use&#xA;http://dcm.dev/blog/2025/06/30/accessibility-flutter-practical-tips-tools-code-youll-actually-use</description><pubDate>27 Mar 2026 11:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhzzvtmyrk22</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhy7kw63zs2n</link><description>A small #Flutter lint that can prevent confusing layout issues: avoid-flexible-outside-flex.&#xA;&#xA;This rule warns when Flexible is used outside a Flex widget, such as Row, Column, or Flex, helping keep widget tree layouts working correctly.&#xA;&#xA;Read more: https://dcm.dev/docs/rules/flutter/avoid-flexible-outside-flex/</description><pubDate>26 Mar 2026 18:16 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhy7kw63zs2n</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhvsrhohjs26</link><description>Riverpod is one of the most used packages for #Flutter, and yet you might have missing points, including:&#xA;&#xA;⚠️ ref .read inside build&#xA;🔄 ref .watch outside build&#xA;⏳ async gap + stale ref&#xA;🧹 missing onDispose cleanup&#xA;&#xA;Read more: https://dcm.dev/blog/2026/03/25/inside-riverpod-source-code-guide-dcm-rules/</description><pubDate>25 Mar 2026 19:22 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhvsrhohjs26</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhiizpgwbs2d</link><description>Many teams want better code quality but struggle to know where to start.&#xA;&#xA;Techniques such as:&#xA;1⃣ preview all metrics first&#xA;✅ start with metrics-recommended&#xA;✏️ override thresholds for your project&#xA;👩‍💻 choose metrics based on your actual pain points&#xA;&#xA;Read more: https://dcm.dev/docs/guides/choosing-first-dcm-metrics</description><pubDate>20 Mar 2026 12:23 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhiizpgwbs2d</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhg3quy6ic22</link><description>Complex conditions can impact readability in your #Flutter code.&#xA;&#xA;❌ Instead of: (a &amp;&amp; b) || (!a &amp;&amp; c)&#xA;✅ Prefer:  a ? b : c&#xA;&#xA;DCM’s &#34;prefer-simpler-boolean-expressions&#34; rule flags redundant #Dart boolean patterns and suggests more readable alternatives.&#xA;&#xA;Read more: https://dcm.dev/docs/rules/common/prefer-simpler-boolean-expressions/</description><pubDate>19 Mar 2026 13:20 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhg3quy6ic22</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mhecusbjbs2o</link><description>Arrange, Act, Assert is the gold standard for unit testing 🧪&#xA;&#xA;Why? It ensures tests are not doing &#34;multiple rounds of arrange and act.&#34;&#xA;&#xA;DCM 1.32 introduced `prefer-test-structure` to warn when a test is not separated into these three sections.&#xA;&#xA;Read more: https://dcm.dev/docs/rules/common/prefer-test-structure/</description><pubDate>18 Mar 2026 20:22 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mhecusbjbs2o</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgwdfc4uuk25</link><description>Async mistakes can quietly slow down or break your #Flutter app. This post breaks down common pitfalls and how to fix them:&#xA;🔄 Misused `FutureOr`&#xA;⚠️ Unawaited futures in `initState()`&#xA;🔁 Redundant `async/await`&#xA;🚦 Inefficient parallel calls&#xA;🧵 Confusing `.then()` chains&#xA;&#xA;https://dcm.dev/blog/2025/05/28/hidden-cost-async-misuse-flutter-fix/</description><pubDate>13 Mar 2026 06:54 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgwdfc4uuk25</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mh6lbpwsns2i</link><description>🎉 A case study with Zühlke was published!&#xA;&#xA;They use DCM to keep complex, mission-critical #Flutter apps maintainable across healthcare, industrial engineering, and enterprise projects.&#xA;&#xA;💯 Result: faster PRs, fewer regressions, and better visibility into technical debt.&#xA;&#xA;How?👇</description><pubDate>16 Mar 2026 13:36 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mh6lbpwsns2i</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgxbx2b3qk2s</link><description>#Flutter BLoC is everywhere, but hidden bugs are easy to miss:&#xA;💥 isClosed after await&#xA;🔁 same-state emits&#xA;🧠 create vs .value&#xA;🚫 public methods bypass events&#xA;🔒 sealed/immutable classes&#xA;&#xA;By reading BLoC source code, we see how to happen &amp; prevent them: https://dcm.dev/blog/2026/03/11/flutter-bloc-best-practices-youre-probably-missing/</description><pubDate>13 Mar 2026 16:01 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgxbx2b3qk2s</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgxbx2b3qk2s</link><description>#Flutter BLoC is everywhere, but hidden bugs are easy to miss:&#xA;💥 isClosed after await&#xA;🔁 same-state emits&#xA;🧠 create vs .value&#xA;🚫 public methods bypass events&#xA;🔒 sealed/immutable classes&#xA;&#xA;By reading BLoC source code, we see how to happen &amp; prevent them: https://dcm.dev/blog/2026/03/11/flutter-bloc-best-practices-youre-probably-missing/</description><pubDate>13 Mar 2026 16:01 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgxbx2b3qk2s</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgwdfc4uuk25</link><description>Async mistakes can quietly slow down or break your #Flutter app. This post breaks down common pitfalls and how to fix them:&#xA;🔄 Misused `FutureOr`&#xA;⚠️ Unawaited futures in `initState()`&#xA;🔁 Redundant `async/await`&#xA;🚦 Inefficient parallel calls&#xA;🧵 Confusing `.then()` chains&#xA;&#xA;https://dcm.dev/blog/2025/05/28/hidden-cost-async-misuse-flutter-fix/</description><pubDate>13 Mar 2026 06:54 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgwdfc4uuk25</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgudufa3wc2t</link><description>🎉 We just published a case study with CarOnSale, Europe&#39;s fast-growing B2B automotive platform. They secure their Flutter mobile apps and internal libraries with DCM.&#xA;&#xA;💯 The results? Smoother code reviews, automated consistency, &amp; increased developer confidence across teams👇</description><pubDate>12 Mar 2026 11:57 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgudufa3wc2t</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgpe2545sk2d</link><description>Is your #Flutter widget tree full of Padding, Align, ClipRect and Transform widgets?&#xA;&#xA;In this video, we show how you can simplify those trees using a single Container widget and how the &#34;prefer-container&#34; rule helps you reduce unnecessary nesting: youtu.be/MdrU_8orso8&#xA;https://youtu.be/MdrU_8orso8</description><pubDate>10 Mar 2026 12:17 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgpe2545sk2d</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgnb7653ks2k</link><description>If you are using Zed and would like to have your code checked with DCM, check out the getting started docs for the Zed extension: https://dcm.dev/docs/ide-integrations/zed/</description><pubDate>09 Mar 2026 16:21 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgnb7653ks2k</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgfzmkkzis2e</link><description>We just published a case study with BoursoBank, France’s largest online bank!&#xA;&#xA;They secure mission-critical #Flutter mobile &amp; web apps with DCM.&#xA;&#xA;💯 The results? maintainable architecture, &amp; zero crashes in payment &amp; authentication flows for 70+ engineers&#xA;&#xA;Here&#39;s how they do it 👇</description><pubDate>06 Mar 2026 19:16 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgfzmkkzis2e</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgfk6bjgd22b</link><description>Ever discovered a Flutter widget and thought, “Why didn’t I see this sooner?” 🤔&#xA;&#xA;We’ve uncovered 10 under-the-radar widgets that even seasoned devs almost never use! 👇&#xA;&#xA;https://dcm.dev/blog/2025/01/13/ten-flutter-widgets-probably-havent-heard-of-but-should-be-using/&#xA;&#xA;What widget surprised you the most?</description><pubDate>06 Mar 2026 14:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgfk6bjgd22b</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mgb2g62mmk2t</link><description>Are silent bugs hiding in your #Flutter Provider code?&#xA;&#xA;You might be missing:&#xA;💥  .value trap&#xA;🚫 .dispose gap&#xA;👀  .read vs .watch&#xA;✋ .selector logic &#xA;&#xA;We explored the Provider&#39;s source code to uncover common architecture mistakes: https://dcm.dev/blog/2026/03/04/flutter-provider-best-practices-youre-probably-missing/</description><pubDate>04 Mar 2026 19:47 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mgb2g62mmk2t</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mg6d6ccdjs24</link><description>Once you have multiple #Flutter projects, it&#39;s often required to manage different DCM versions.&#xA;&#xA;Our new guide covers:&#xA;🔄 Fast version switching&#xA;💻 Helper scripts (Zsh, Bash, Fish, PS)&#xA;💙 FVM support&#xA;🤝 Team consistency with dcm_global.yaml&#xA;&#xA;Read here: https://dcm.dev/docs/guides/managing-dcm-versions/</description><pubDate>03 Mar 2026 17:46 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mg6d6ccdjs24</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mfmvluunbs2q</link><description>🤷‍♂️ Assigning values that never get used?&#xA;&#xA;Enable the &#34;avoid-unused-assignment&#34; rule that warns when an assignment is not used in the following statements.&#xA;&#xA;🎥 Watch to learn more: youtu.be/HajF6gXkAik&#xA;https://youtu.be/HajF6gXkAik</description><pubDate>24 Feb 2026 19:28 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mfmvluunbs2q</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3mfmg7kysfc2k</link><description>We recently published a case study with Betterment where the team adopted DCM into their workflow, which helped them to:&#xA;- Cut feedback cycles from minutes to seconds&#xA;- Focus on architecture review rather than styling&#xA;- Ship faster &amp; safer&#xA;&#xA;Full story: https://dcm.dev/customers/betterment/</description><pubDate>24 Feb 2026 14:52 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3mfmg7kysfc2k</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3m5ylxpmbgs27</link><description>🧠 Ever found a #Dart or #Flutter function that completely changed how you think about coding?&#xA;&#xA;We’ve rounded up 10 underrated functions that can simplify code, reduce boilerplate, and teach you something new about the language itself.&#xA;&#xA;📖 https://dcm.dev/blog/2025/02/27/ten-lesser-known-dart-flutter-functionalities/</description><pubDate>19 Nov 2025 15:46 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3m5ylxpmbgs27</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3m5w2vphydk2r</link><description>Dart 3.10&#39;s dot shorthands are game changers for #Flutter code:&#xA;&#xA;✅ shorter enums, less boilerplate, and sharper syntax.&#xA;⚠️ But beware the hidden complexities!&#xA;&#xA;Learn about “Practical Rulebook for Teams” 👇 https://dcm.dev/blog/2025/11/17/deeper-look-darts-dot-shorthand-hidden-complexity/</description><pubDate>18 Nov 2025 15:35 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3m5w2vphydk2r</guid></item><item><link>https://bsky.app/profile/dcm.dev/post/3m5w3zf3adk2i</link><description>🖼️ Wrapping a #Flutter Image widget with an Opacity widget?&#xA;&#xA;That’s inefficient. The DCM rule &#34;avoid-incorrect-image-opacity&#34; warns you to use the &#34;opacity&#34; parameter directly instead.&#xA;&#xA;🎥 Watch to learn how to fix it: youtu.be/ooKFXNhm_TU&#xA;https://youtu.be/ooKFXNhm_TU</description><pubDate>18 Nov 2025 15:55 +0000</pubDate><guid isPermaLink="false">at://did:plc:nagfdb7dd6pucjfq2mvv5r4r/app.bsky.feed.post/3m5w3zf3adk2i</guid></item></channel></rss>