Skip to content
Boring Doc
RemovedHigh impactOfficial migration guidesince 3.10.0

Deprecated API removed after v3.7

Framework · Official source

In accordance with Flutter's Deprecation Policy, deprecated APIs that reached end of life after the 3.7 stable release have been removed.

Who is affected
Any code still referencing the removed API will fail to compile after upgrading. Code that uses GestureRecognizer.kind, GestureRecognizer.supportedDevices, GestureRecognizer and related APIs.
Practical impact
Compile errors until migrated; must be addressed before upgrading.
What action should I take?
Follow the official migration guide below, update affected call sites, run `dart fix --apply` where a fix is available, then run your tests.

Before and after (from the official guide)

dart+1−1
Before
1 var myRecognizer = GestureRecognizer(
2− kind: PointerDeviceKind.mouse,
3 );
After
1 var myRecognizer = GestureRecognizer(
2+ supportedDevices: <PointerDeviceKind>[ PointerDeviceKind.mouse ],
3 );
Raw before / after
var myRecognizer = GestureRecognizer(
  kind: PointerDeviceKind.mouse,
);
var myRecognizer = GestureRecognizer(
  supportedDevices: <PointerDeviceKind>[ PointerDeviceKind.mouse ],
);
Migration checklist0/8
Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)

Code before migration:

var myTheme = ThemeData(
  //...
  accentColor: Colors.blue,
  //...
);
var color = myTheme.accentColor;

Code after migration:

var myTheme = ThemeData(
  //...
  colorScheme: ColorScheme(
    //...
    secondary:Colors.blue,
    //...
  ),
  //...
);
var color = myTheme.colorScheme.secondary;

References

API documentation:

Relevant issues:

Relevant PRs:

Deprecated in:

Removed in:


AppBar, SliverAppBar, and AppBarTheme updates

Supported by Flutter Fix: yes

In v2.4, several changes were made to the app bar classes and their themes to better align with Material Design. Several properties were deprecated at that time and have been removed.

For AppBar, SliverAppBar and AppBarTheme:

  • brightness has been removed, and is replaced by systemOverlayStyle
  • textTheme has been removed, and is replaced by either toolbarTextStyle or titleTextStyle.
  • backwardsCompatibility can be removed, as it was a temporary migration flag for these properties.

Additionally, AppBarTheme.color was removed, with AppBarTheme.backgroundColor as its replacement.

Migration guide

Code before migration:

var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
  brightness: Brightness.light,
  textTheme: TextTheme(
    bodyMedium: toolbarTextStyle,
    titleLarge: titleTextStyle,
  )
  backwardsCompatibility: true,
);
AppBarTheme(color: Colors.blue);

Code after migration:

var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
  systemOverlayStyle: SystemOverlayStyle(statusBarBrightness: Brightness.light),
  toolbarTextStyle: toolbarTextStyle,
  titleTextStyle: titleTextStyle,
);
AppBarTheme(backgroundColor: Colors.blue);

References

API documentation:

Relevant issues:

Deprecated in:

Removed in:


SystemChrome.setEnabledSystemUIOverlays

Supported by Flutter Fix: yes

In v2.3, SystemChrome.setEnabledSystemUIOVerlays, the static method for setting device system level overlays like status and navigation bars, was deprecated in favor of SystemChrome.setEnabledSystemUIMode.

This change allowed for setting up common fullscreen modes that match native Android app designs like edge to edge.

Manually setting overlays, instead of choosing a specific mode, is still supported through SystemUiMode.manual, allowing developers to pass the same list of overlays as before.

Migration guide

Code before migration:

SystemChrome.setEnabledSystemUIOverlays(&#x3C;SystemUiOverlay>[
  SystemUiOverlay.top,
  SystemUiOverlay.bottom,
]);

Code after migration:

SystemChrome.setEnabledSystemUIMode(
  SystemUiMode.manual,
  overlays: &#x3C;SystemUiOverlay>[
    SystemUiOverlay.top,
    SystemUiOverlay.bottom,
  ],
);

References

API documentation:

Relevant issues:

Deprecated in:

Removed in:


SystemNavigator.routeUpdated

Supported by Flutter Fix: yes

In v2.3, SystemNavigator.routeUpdated was deprecated in favor of SystemNavigator.routeInformationUpdated.

Instead of having two ways to update the engine about the current route, the change moved everything to one API, which separately selects the single-entry history mode if a Navigator that reports routes is created.

Migration guide

Code before migration:

SystemNavigator.routeUpdated(routeName: 'foo', previousRouteName: 'bar');

Code after migration:

SystemNavigator.routeInformationUpdated(location: 'foo');

References

API documentation:

Relevant issues:

Deprecated in:

Removed in:


AnimatedSize.vsync

Supported by Flutter Fix: yes

In v2.2, AnimatedSize.vsyc was deprecated. This property was no longer necessary after AnimatedSize was converted to a StatefulWidget whose State mixed in SingleTickerProviderStateMixin. The change was made to fix a memory leak.

Uses of vsync should be removed, as AnimatedSize now handles this property.

Migration guide

Code before migration:

AnimatedSize(
  vsync: this,
  // ...
);

Code after migration:

AnimatedSize(
  // ...
);

References

API documentation:

Deprecated in:

Removed in:


Migration assistantAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Official migration guide·Verified classification (90%)

Listed in the official breaking-changes index; title states removal.

An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.

Source commit
b3045439b7c0
Source last updated
Oct 21, 2026
Last synchronized
Oct 21, 2026
Publication status
published
Publication history
  • Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Was this useful?