Start Debugging

The Flutter & Dart tracker

One bookmark for everything Flutter and Dart on this site.

This site uses Walter, an AI agent, for research, writing, and maintenance. Editorial and verification process

This pillar collects posts about Flutter and Dart — the 3.x release cycle, Dart isolates, platform channels, state-management migrations, jank profiling, CI workflows, and exception fixes.

What to read first

Start with profiling jank with DevTools and writing a Dart isolate for CPU-bound work, then catch escaping async errors with PlatformDispatcher.instance.onError. For state management, Provider vs Riverpod vs Bloc settles the choice, then provider to Riverpod walks the common migration; if you’re already on it, Riverpod 2.x to 3.0 covers the new major and ref.watch vs ref.read is the callback trap. For routing, go-router vs auto_route vs Navigator 2.0 settles the stack, and StatefulShellRoute’s currentIndex keeps the NavigationBar in sync. Leaving Hive? Hive to drift is the safe import.

In the engine, Impeller as the default desktop renderer is the newest change. Flutter 3.44 splitting Material and Cupertino out of the SDK is the biggest packaging change; moving imports to material_ui and cupertino_ui is the migration, dart fix across a whole repo applies it in one pass, and the undefined awaitNotRequired error is the lockfile snag; on iOS, CocoaPods to Swift Package Manager is the matching migration. Two deprecations dart fix won’t finish: Color.withOpacity to withValues and WidgetsBindingObserver to AppLifecycleListener. For accessibility, textScaleFactor to TextScaler is the text-scaling migration. On Android, moving to AGP 9 with built-in Kotlin is the toolchain move, and Groovy to Kotlin DSL converts the Gradle scripts.

What’s on this page

The list below auto-collects posts tagged with any of: flutter, dart. Newest first.

Index (172 posts)

2026 / 11

  • Flutter 3.50 Opens WebAssembly to Safari and Firefox and Adds --web-content-hash

    Flutter 3.50 and Dart 3.14 shipped on November 11, 2026. On the web, Safari 26.2+ and Firefox 147+ can now run the Wasm build behind an opt-in wasmAllowList, and flutter build web gets built-in content hashing for long-lived caching.

  • How to call the real path_provider in a Flutter test instead of getting MissingPluginException

    flutter test never runs the Dart plugin registrant, so getTemporaryDirectory() hits the MethodChannel default and throws MissingPluginException. On a macOS, Windows or Linux host you can register the host implementation (PathProviderFoundation 2.6.0+ is FFI, not a channel), use a temp-dir PathProviderPlatform fake, or run integration_test on desktop. Checked on Flutter 3.44.8 with path_provider 2.1.6.

  • What is the difference between == and identical in Dart, and what does == fall back to?

    In Dart, identical(a, b) asks whether two references point to the same object, while a == b calls the left operand's operator == method, which falls back to Object.== (identity) unless the class overrides it. Null checks, const canonicalization, numbers, NaN, records, hashCode, and the places where the VM and dart2js disagree, verified on Dart 3.12.2.

  • Why does Future.delayed or a Timer fire later than the requested Duration in Dart?

    A Dart Timer is a promise never to fire early, not a promise to fire on time. The VM truncates the Duration to whole milliseconds, adds one millisecond on purpose, and delivers the timer as an event that waits behind running code and every pending microtask. Measured lateness on Dart 3.12.2, periodic tick skipping, drift in chained delays, the 4 ms browser clamp, and the 30-day delay that fires instantly on the web.

  • What is pubspec_overrides.yaml and when should I use it in a Flutter monorepo?

    pubspec_overrides.yaml is a file next to pubspec.yaml that pub reads on top of it, limited to dependency_overrides, resolution and workspace. It replaces the whole dependency_overrides section, applies workspace-wide, and is left out of published archives. What it does, when to use it in a monorepo, and every edge case, verified on Dart 3.12.2.

  • Migrate a Flutter App from textScaleFactor to TextScaler (Flutter 3.16+)

    Replace the deprecated textScaleFactor on MediaQueryData, Text, RichText and TextPainter with TextScaler. What dart fix rewrites (3 of 9 call sites in our sample), why its output can quietly undo Android 14 nonlinear font scaling, how to cap text size with clamp and withClampedTextScaling, and the equality and test gotchas. Measured on Flutter 3.44.8 with Dart 3.12.2.

2026 / 10

2026 / 09

2026 / 08

2026 / 07

2026 / 06

2026 / 05

2026 / 04

2026 / 02

2026 / 01

2023 / 10

2023 / 08

All pillars Home