← Articles

What's new in Flutter 3.29 and Dart 3.7

By Ann Tech · 15 June 2026

Flutter 3.29 and Dart 3.7 landed in February 2026 with several developer-facing improvements. Here is what's significant and what you need to update.

Impeller on Android: now stable

Impeller has been the default iOS renderer since Flutter 3.10. With 3.29, it graduates to stable on Android — enabled by default on Android API 29+ (Android 10, covering ~95% of active devices).

What this means for you:

  • Shader compilation jank eliminated on Android, matching the iOS experience
  • Some visual differences from Skia — especially in custom blend modes and large blur radii
  • Golden tests against Skia output will fail — regenerate them
# Opt out while you migrate golden tests
flutter run --no-enable-impeller

# Once ready, remove the flag — Impeller is now the default
flutter run

Dart 3.7: inline classes (extension types)

Extension types (called "inline classes" in earlier proposals) are now production-ready:

// Wraps int — no runtime overhead, purely compile-time
extension type UserId(int value) {
  // Add methods and operators
  bool get isValid => value > 0;
}

extension type ProductId(String value) {
  String get display => 'Product #$value';
}

// Now these are distinct types — compiler catches mistakes
void loadUser(UserId id) { ... }
void loadProduct(ProductId id) { ... }

// This is now a compile error:
loadUser(ProductId('p-123')); // ERROR: can't pass ProductId as UserId

Use extension types for type-safe ID types, unit types (metres vs feet), and newtype patterns — all with zero runtime cost.

Dart 3.7: improved wildcard patterns

// _ is now a proper wildcard — can be used multiple times
switch (point) {
  case (_, _): print('any 2D point');
  case (_, _, _): print('any 3D point');
}

// Ignore parts of a record
final (name, _, age) = ('Alice', 'ignored', 30);

Flutter 3.29: adaptive scaffold improvements

The adaptive_scaffold package (part of the Flutter team's adaptive layout work) now supports foldable devices with hinge detection:

AdaptiveScaffold(
  destinations: const [
    NavigationDestination(icon: Icon(Icons.home), label: 'Home'),
    NavigationDestination(icon: Icon(Icons.settings), label: 'Settings'),
  ],
  body: (_) => const HomeView(),
  // Automatically adjusts for foldables — shows content on each half
  useDrawer: false,
)

Widget inspector improvements in DevTools

DevTools 2.40 (bundled with Flutter 3.29) adds:

  • Layout Explorer for Row/Column — visual representation of flex factors and constraints
  • Property editor — edit widget properties live without restarting
  • Network profiler — see HTTP request timings alongside frame timeline

pubspec.yaml: dependency_overrides for conflicts

A common issue resolved in Dart 3.7 — transitive dependency conflicts are more clearly reported:

# Override a transitive dependency to resolve version conflict
dependency_overrides:
  some_package: ^2.1.0

The resolver now suggests the exact override needed when it detects a conflict, rather than just reporting the conflict.

Upgrading

flutter upgrade  # Gets Flutter 3.29 and Dart 3.7

# Fix deprecations automatically
dart fix --apply

# Regenerate goldens for Impeller changes
flutter test --update-goldens

# Review remaining issues
flutter analyze

Common pitfalls

Not reviewing golden test diffs before committing. --update-goldens overwrites existing files. Always view the diff to confirm the new rendering looks correct — not just different. A visual regression hidden in a mass golden update is hard to spot later.

Assuming extension types replace regular classes. Extension types have no runtime overhead but also no runtime identity — you can't use is to check for them at runtime. They're for compile-time type safety, not polymorphism.

Skipping the release notes. Every Flutter release has a breaking changes page. The 3.29 release includes a few API removals that were deprecated in 3.x. Check flutter.dev/docs/release/breaking-changes/3-29 before upgrading a production app.

Sign in to like, dislike, or report.

What's new in Flutter 3.29 and Dart 3.7 — ANN Tech