Flutter Unbundles Material and Cupertino: What the Code Freeze Means for Developers
Introduction
In a significant step toward a more modular Flutter framework, the team has officially frozen all contributions to the Material and Cupertino libraries within the main flutter/flutter repository as of April 7th. This freeze marks the first major milestone in a long-planned decoupling effort. These beloved design libraries will soon be re-released as standalone packages on pub.dev: material_ui and cupertino_ui.
What Is Happening?
For years, Material and Cupertino have been tightly integrated into the Flutter framework itself. While convenient, this monolithic approach made it harder to ship updates independently and added unnecessary weight for developers who only use one design language. The new plan extracts both libraries into their own packages, managed under the flutter/packages repository. Once the code freeze is in effect, no further changes will be accepted in flutter/flutter for these libraries. All future development will happen exclusively in the new package repositories after they are published.
The first major release of these packages will be version 1.0.0, and they will be accompanied by a seamless migration path for all Flutter users.
Impact on Flutter Developers
The freeze and subsequent transition affect different groups of developers in different ways. If you only write apps or plugins and never touch the Material or Cupertino source code directly, you can breathe easy—for now. If you are an active contributor to these libraries or have open issues or pull requests, read on.
For App and Plugin Developers
If you simply use Material or Cupertino in your Flutter apps and have no need to modify the libraries themselves, you do not need to take any action at this moment. The freeze does not affect your existing code. However, after the Flutter 3.44 stable release, the new packages will be published, and you will eventually need to migrate. The old code inside the framework will be deprecated in the stable release following 3.44 and deleted some time after that. When the time comes, the Flutter team will provide detailed migration instructions and tooling to make the process as smooth as possible.
For Active Contributors to Material/Cupertino
If you have open pull requests (PRs) touching Material or Cupertino in flutter/flutter, don't worry—your PRs will remain open, and reviewers will continue to provide feedback as usual. Once the new packages are published, you will receive guidance on how to port your changes to the flutter/packages repository. Your contribution will then be released as part of a future material_ui or cupertino_ui update.
For new and existing issues related to these libraries, they will stay in the flutter/flutter issue tracker. The Flutter team prefers a unified issue tracker for all packages, even those hosted in separate repositories, to keep things simple and centralized. So you can continue filing issues there as usual.
Timeline and Migration Path
- April 7th – Code Freeze: All contributions to Material and Cupertino in
flutter/flutterare frozen. - After Flutter 3.44 stable release: The
material_uiandcupertino_uipackages are published on pub.dev. - Following stable release after 3.44: The old Material and Cupertino code inside the framework is deprecated.
- Some time later: The legacy code is removed entirely.
Developers who wish to migrate will first need to update their Flutter SDK to version 3.44 or higher on any release channel (stable, beta, or dev). Once they have done that, they will have a frozen copy of the libraries that matches the initial package release. This ensures that even if they upgrade the SDK further, the API they rely on remains stable.
Why the Freeze Is Necessary
The decision to freeze the code now might seem abrupt, but it serves a critical purpose. When the 1.0.0 versions of material_ui and cupertino_ui launch, the team wants every Flutter developer—regardless of which release channel they come from—to be able to migrate with minimal friction. To achieve that, the code in the framework and the code in the new packages must be identical at the moment of migration. By freezing the framework libraries one stable release cycle ahead, the team can copy that exact code to the new packages, eliminating any risk of breaking changes between the two locations.
This approach also means that developers who upgrade their Flutter SDK to 3.44+ will always have a compatible version of the libraries, even if they later update to a newer SDK that still contains the deprecated code. The frozen copy inside the SDK will match the first package release exactly.
Next Steps and What to Expect
As the process unfolds, the Flutter team will provide:
- Detailed migration guides for app and plugin developers.
- Instructions for PR authors on moving changes to
flutter/packages. - Regular updates on the deprecation and deletion timeline.
For now, if you have any open issues or PRs related to Material or Cupertino, keep them open. The team is still committed to reviewing and eventually landing those contributions through the new package system. The decoupling of these libraries is a major architectural improvement for Flutter, promising faster iteration cycles, smaller framework bundles, and clearer separation of concerns.
Stay tuned for the announcement of the new packages on pub.dev, and watch the impact section above if you want to know exactly how this affects you. The Flutter ecosystem is evolving, and this freeze is the first step toward a more flexible and sustainable future.
Related Articles
- Tesla Ordered to Pay $10,600 Over Misleading FSD Claims — But Automaker Refuses to Settle
- Massachusetts Secures $1.4 Billion in Customer Savings with Landmark Offshore Wind Deal
- 7 Insights into V8's Mutable Heap Numbers Optimization
- From Proposal to Pause: How Wind Farm Approvals Can Be Stalled by National Security
- Tesla Semi Reaches Production Milestone: High-Volume Manufacturing Begins at Gigafactory Nevada
- Volkswagen ID. Polo Electric Car: Pre-Orders Open at €33,795, Affordable €25,000 Version on Horizon
- Southern California Ports Go Electric: MDB Transportation Tests Tesla Semi in Real-World Freight Operations
- A Fleet Operator’s Guide to Tesla Semi Charging Infrastructure: Basecharger and Megacharger