<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq" -->

---
title: Flutter 3.47: Material and Cupertino Become Standalone...
description: Flutter 3.47, released August 12, 2026, decouples Material and Cupertino design libraries from the core SDK into standalone pub.dev packages (material_ui and...
canonical: https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Flutter 3.47: Material and Cupertino Become Standalone Packages | daily.dev
og:description: Flutter 3.47, released August 12, 2026, decouples Material and Cupertino design libraries from the core SDK into standalone pub.dev packages (material_ui and...
og:url: https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq
og:image: https://api.daily.dev/og/posts/njb1HiGQq.png
og:image:alt: Flutter 3.47: Material and Cupertino Become Standalone Packages
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Flutter 3.47: Material and Cupertino Become Standalone Packages

**[Collections](https://daily.dev/sources/collections)** · 4 min read · 4 upvotes · 0 comments

## Summary

Flutter 3.47, released August 12, 2026, decouples Material and Cupertino design libraries from the core SDK into standalone pub.dev packages (material_ui and cupertino_ui, both hitting v1.0). Most apps can migrate with a single `dart fix --apply --code=migrate_design_widgets` command, though mixed imports, conditional imports, and generated files need manual attention. A MaterialUiCompatibilityBridge helps mixed dependency trees during the transition. Old imports show deprecation warnings now, get formally deprecated in the fall 2026 stable release (expected November 2026), and are removed entirely in a 2027 release. Other changes include Impeller as the default desktop renderer, stable Widget Previews, raised iOS/macOS minimum versions (iOS 13→15, macOS 10.15→12), required UIScene lifecycle for Xcode 27 UIKit apps, phased-out Intel Mac support, and closer-to-default WebAssembly support.

## Content

Flutter 3.47 landed on August 12, 2026, and the headline change is one that's been coming for a while: Material and Cupertino are no longer baked into the core SDK. They're now standalone pub.dev packages — `material_ui` and `cupertino_ui` — both hitting version 1.0 with this release.

Here's everything that changed and, more importantly, what you need to do about it.

## Why decouple Material and Cupertino at all?

The design libraries used to ship as part of the Flutter SDK itself, which meant they were tied to the SDK's release cadence. If Material Design updated something, you waited for the next Flutter stable release to get it. Now that they're separate packages, they can ship updates weekly, independent of the framework release schedule.

It also means apps that don't use Material or Cupertino (games, custom-rendered UIs, anything built entirely with raw widgets) no longer carry that dead weight.

## Migrating: the automated path

For most projects, migration is a single command:

```
dart fix --apply --code=migrate_design_widgets
```

This rewrites your imports from the old bundled paths to the new package imports and adds the packages to your `pubspec.yaml`. For a typical app with straightforward imports, that's genuinely the whole migration.

## Where the automated tool falls short

A few situations need manual attention:

- **Mixed imports** — files that import both `material.dart` and `cupertino.dart` sometimes end up with ambiguous references after the automated rewrite. You'll need to sort out which package actually owns the widget you're using.
- **Conditional imports** — anything using `dart:io` platform checks alongside conditional design imports needs a manual pass, since the tool doesn't reliably infer intent there.
- **Generated files** — code generated by build_runner or similar tools won't get touched by `dart fix`, so you'll need to regenerate after updating your dependencies, or manually patch the generated output if regeneration isn't straightforward.

If you maintain a package that depends on Material or Cupertino widgets in its public API, this is also a breaking change for your consumers — bump your major version.

## Mixed dependency trees

If you depend on packages that haven't migrated yet, you'll hit version conflicts between the old bundled design libraries and the new standalone ones. The `MaterialUiCompatibilityBridge` exists specifically for this — it lets old-style and new-style imports coexist in the same dependency graph while your transitive dependencies catch up. It's a stopgap, not a long-term solution, so don't build new code against it.## Localization changes

Localization setup has moved along with the design libraries. If you're using `flutter_localizations`, expect to update your delegate configuration — the old setup assumed Material/Cupertino were part of core, and that assumption no longer holds.

## Timeline: when do the old imports actually break?

- **Now (3.47):** old bundled imports still work, but you'll see deprecation warnings.
- **Fall 2026 stable release (expected November 2026):** old imports formally deprecated.
- **Some 2027 release:** old imports removed entirely.

That gives you roughly a year of runway, but I'd start the migration now rather than waiting — the automated tool handles most of the grunt work today, and the edge cases only get messier the longer mixed dependency trees stick around.

## Everything else in 3.47

The design library split is the big one, but it's not the only thing in this release:

- **Impeller is now the default renderer on desktop** — macOS, Windows, and Linux all render through Impeller by default now, matching what's already been true on mobile.
- **Widget Previews are stable.** No longer experimental — you can preview widgets without spinning up a full app run.
- **iOS/macOS minimum versions went up.** iOS moves from 13 to 15, macOS from 10.15 to 12. This is ahead of Xcode 27, iOS 27, and macOS 27, so if you're not already on the newer minimums, budget time for this before those ship.
- **UIScene lifecycle is now required** for UIKit apps built with Xcode 27. If your app still uses the old AppDelegate-based lifecycle, that's changing.
- **Intel Mac support is being phased out.** If you're still building or testing on Intel hardware, start planning your transition.
- **WebAssembly support is closer to default.** Includes experimental deferred loading for Wasm builds.
- Also: multi-window improvements, desktop flavor support, and a long list of framework and platform bug fixes.

## Bottom line

If you're maintaining an actively developed Flutter app, don't put this off. Run the `dart fix` command, deal with the edge cases it doesn't catch, and get ahead of the November deprecation. If you maintain a public package, start planning your major version bump now — your users will thank you for not shipping this as a surprise breaking change later.

## Questions this post answers

### How do I migrate my Flutter app now that Material and Cupertino are separate packages in Flutter 3.47?

Run `dart fix --apply --code=migrate_design_widgets`, which rewrites imports from the old bundled Material/Cupertino paths to the new material_ui and cupertino_ui pub.dev packages and updates pubspec.yaml automatically. For typical apps this fully completes the migration, but files mixing material.dart and cupertino.dart imports, conditional dart:io platform checks, and generated code from build_runner need manual fixes afterward.

_daily.dev helps developers track framework migrations like this Flutter package split before deadlines hit._

### When will old bundled Material and Cupertino imports stop working in Flutter?

Old bundled imports still work in Flutter 3.47 but trigger deprecation warnings; they become formally deprecated in the fall 2026 stable release expected around November 2026, and get removed entirely in a 2027 release. That leaves roughly a year to migrate, though starting immediately is recommended since mixed dependency trees get messier the longer they persist.

_Teams planning Flutter upgrades can follow deprecation timelines like this on daily.dev to avoid surprise breakage._

### What is the MaterialUiCompatibilityBridge in Flutter 3.47 used for?

It is a stopgap tool that lets old-style bundled Material/Cupertino imports and the new standalone material_ui and cupertino_ui packages coexist within the same dependency graph. It exists specifically to resolve version conflicts when some of your dependencies haven't migrated yet, but it is not meant for building new code against long-term.

_Developers untangling mixed dependency trees during framework transitions can find guidance like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 77 comments across hackernews (as of 2026-08-18).

**TL;DR:** Discussion is dominated by a meta-debate over why Google keeps funding Flutter/Dart and how widely adopted it actually is, with the release itself (Impeller default, decoupled design packages, multi-window) getting only brief, mostly approving mentions.

**Sentiment:** 35% positive · 40% mixed · 25% skeptical

**The case for**

- Several developers cite large real-world deployments (Nubank, ByteDance/Douyin, Google Pay, AdSense) as evidence Flutter adoption is much bigger than skeptics claim.
- Some praise Dart's fast compilation, null safety, pattern matching, and especially near-zero-overhead FFI compared to Electron's IPC overhead.
- One commenter finds Flutter easier for building performant macOS apps than SwiftUI.
- Decoupling material/cupertino from the core SDK is seen as a sensible, overdue architectural change.
- Multi-window support finally arriving excites people who held off on Flutter for desktop projects.

**The pushback**

- Doubts persist that Google will keep investing in Flutter long-term given its pattern of killing beloved projects.
- Rendering engine changes are criticized for lacking wide color gamut/HDR support, blocking apps like Immich.
- Nested widget syntax with heavy bracket nesting is called out as an ergonomic pain point.
- Performance complaints: testers report desktop Flutter apps with sluggish animation and sub-60fps.
- Some argue 'nobody uses' Flutter and question whether claimed adoption stats (e.g. 1/3 of App Store apps) are accurate.

**By community**

- hackernews (heated): Debate splits sharply between people insisting Flutter's adoption is huge and well-justified within Google, and others skeptical it's used or supported meaningfully, alongside scattered praise and criticism of the actual release features.

**Hottest debate:** Whether Flutter has meaningful real-world adoption or is just limping along inside Google for internal/political reasons.

**Open questions**

- Will Google continue investing in Flutter/Dart long-term or eventually divest it?
- Is the oft-cited '1/3 of App Store apps use Flutter' statistic actually accurate?
- Will Impeller ever land on web, and will wide color gamut/HDR support be prioritized?

**Highlights**

> You're thinking of Google as a single top down company. It isn't. Think of it as an anarchy of warlords where each pulls the strings and management doesn't really know what's going on. Flutter made a lot of sense during the Oracle lawsuit when Google needed a way to show Oracle that it can pivot from Java. Now it no longer makes sense but the inertia is too deep. My guess is that flutter is sold internally through the Huawei support as a leg within China.
> — [invalidname on hackernews](https://news.ycombinator.com/item?id=49280994)

> Third-party analysis (https://appfigures.com/top-sdks/development/all) has Flutter used in 16% of iOS apps and 24% of Android apps (free) Archive link: https://archive.is/IIUaj I really don't understand how/why people deny reality so hard when it comes to Flutter. Reminds me a bit of years ago when people were still scoffing at the idea of anyone actually adopting JavaScript to write web servers with while Node.js was very obviously eating up the market.
> — [filleduchaos on hackernews · 1 comments](https://news.ycombinator.com/item?id=49281878)

> >but, nobody uses it. I used to work at ByteDance and they alone employed I think more than 800 Flutter Devs. Douyin uses Flutter (the Chinese version of TikTok), Grab and Ebay use it, Alibaba and Baidu did too. Toyota and Volkswagen I think both use Flutter. Nubank I think is also a flutter app and they alone have like one hundred million some users. With the popularity in the Chinese ecosystem alone there's gotta be a billion plus people using flutter.
> — [Barrin92 on hackernews](https://news.ycombinator.com/item?id=49281361)

> > Flutter has completely replaced it's rendering engine across all platforms And that new rendering engine is also why apps like Immich are unable to show HDR photos. Apple & Google both pushed broad support for that a couple years ago, with things like Ultra HDR and subsequently ISO 21496-1. Meanwhile Flutter still doesn't really have wide gamut support https://github.com/flutter/flutter/issues/189155 Of course they need to prioritize where to spend resources, like any project, but Flutter also doesn't seem to be on any critical path for fancy headlining new features, either.
> — [kllrnohj on hackernews](https://news.ycombinator.com/item?id=49280804)

> Tested lots of flutter desktop apps on Github last year. All have sluggish animation. FPS rarely reached 60.
> — [feverzsj on hackernews](https://news.ycombinator.com/item?id=49282072)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49280061) · 61 points · 77 comments

## Similar posts on daily.dev

- [Material and Cupertino decoupling are here](https://daily.dev/posts/material-and-cupertino-decoupling-are-here-nsjlzky7x) · Flutter · 23 upvotes · 2 comments
- [August 2026: Flutter 3.47, Dart 3.13, Material and Cupertino Decoupling, Listen Package](https://daily.dev/posts/august-2026-flutter-3-47-dart-3-13-material-and-cupertino-decoupling-listen-package-qabcps2uv) · Code with Andrea · 8 upvotes · 0 comments
- [Flutter’s Material and Cupertino code freeze](https://daily.dev/posts/flutter-s-material-and-cupertino-code-freeze-ptpowftya) · Flutter · 13 upvotes · 0 comments

---

Tags: [#mobile](https://daily.dev/tags/mobile), [#flutter](https://daily.dev/tags/flutter), [#webassembly](https://daily.dev/tags/webassembly), [#dart](https://daily.dev/tags/dart)

[View this post on daily.dev](https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Flutter 3.47: Material and Cupertino Become Standalone Packages","url":"https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq"},"datePublished":"2026-08-18T20:14:26.688Z","dateModified":"2026-08-18T20:15:20.938Z","description":"Flutter 3.47, released August 12, 2026, decouples Material and Cupertino design libraries from the core SDK into standalone pub.dev packages (material_ui and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/363363d5d4f0e612714cf259c36a5fc6?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/363363d5d4f0e612714cf259c36a5fc6?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"mobile,flutter,webassembly,dart","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"Flutter 3.47: Material and Cupertino Become Standalone Packages"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/flutter-3-47-material-and-cupertino-become-standalone-packages-njb1higqq#faq","mainEntity":[{"@type":"Question","name":"How do I migrate my Flutter app now that Material and Cupertino are separate packages in Flutter 3.47?","acceptedAnswer":{"@type":"Answer","text":"Run `dart fix --apply --code=migrate_design_widgets`, which rewrites imports from the old bundled Material/Cupertino paths to the new material_ui and cupertino_ui pub.dev packages and updates pubspec.yaml automatically. For typical apps this fully completes the migration, but files mixing material.dart and cupertino.dart imports, conditional dart:io platform checks, and generated code from build_runner need manual fixes afterward. daily.dev helps developers track framework migrations like this Flutter package split before deadlines hit."}},{"@type":"Question","name":"When will old bundled Material and Cupertino imports stop working in Flutter?","acceptedAnswer":{"@type":"Answer","text":"Old bundled imports still work in Flutter 3.47 but trigger deprecation warnings; they become formally deprecated in the fall 2026 stable release expected around November 2026, and get removed entirely in a 2027 release. That leaves roughly a year to migrate, though starting immediately is recommended since mixed dependency trees get messier the longer they persist. Teams planning Flutter upgrades can follow deprecation timelines like this on daily.dev to avoid surprise breakage."}},{"@type":"Question","name":"What is the MaterialUiCompatibilityBridge in Flutter 3.47 used for?","acceptedAnswer":{"@type":"Answer","text":"It is a stopgap tool that lets old-style bundled Material/Cupertino imports and the new standalone material_ui and cupertino_ui packages coexist within the same dependency graph. It exists specifically to resolve version conflicts when some of your dependencies haven't migrated yet, but it is not meant for building new code against long-term. Developers untangling mixed dependency trees during framework transitions can find guidance like this on daily.dev."}}]}
```

