215111 Stack

2026-05-04 11:43:34

7 Key Insights into Flutter's Material and Cupertino Code Freeze

Flutter freezes Material and Cupertino libraries for migration to separate packages. Learn what this means for developers and contributors, plus key milestones.

Introduction

Flutter's Material and Cupertino libraries are undergoing a major transformation. As of April 7th, code contributions to these libraries within the main Flutter framework have been frozen. This bold move paves the way for their transition into standalone packages on pub.dev: material_ui and cupertino_ui. If you're a Flutter developer or contributor, understanding this freeze is crucial for a smooth migration and future development. Here are the 7 essential things you need to know.

7 Key Insights into Flutter's Material and Cupertino Code Freeze

1. What the Freeze Actually Means

The freeze halts all new changes to the Material and Cupertino libraries inside the flutter/flutter repository. Starting April 7th, no pull requests that modify these libraries will be merged into the main Flutter framework. However, the libraries remain functional for existing apps. This is not a shutdown but a strategic pause—the code is being copied exactly as-is into the new packages, ensuring continuity. Think of it as a snapshot for a future, more flexible home.

2. Why Decouple Material and Cupertino from the Framework?

Separating these design language libraries allows for faster, independent evolution. As part of the flutter/packages repository, they can release updates without requiring a full Flutter SDK update. This decoupling reduces the framework's bloat and lets the community contribute more directly. It also aligns with Flutter’s goal of a modular architecture, where packages can be versioned and maintained separately. For Flutter developers, this ultimately means more targeted updates and less waiting for major framework releases.

3. Immediate Impact on Regular App Developers

If you only write Flutter apps or plugins without modifying Material or Cupertino source code, the freeze has zero immediate effect on your work. Your existing apps will continue to compile and run. You can safely ignore this change—until the migration phase begins after the 3.44 stable release. At that point, you'll need to update dependencies, but detailed migration guides will be provided. For now, keep building as usual. The freeze is primarily a backend reorganization.

4. What Happens to Open Pull Requests?

Contributors with open PRs touching Material or Cupertino need not worry. Reviewers will continue to provide feedback, and PRs will remain open in flutter/flutter. Once the new packages are published on pub.dev, instructions will be shared on porting these PRs to the flutter/packages repository. Your change will still ship—just as part of a material_ui or cupertino_ui release. This approach minimizes disruption while ensuring the new packages benefit from existing contributions.

5. Issues: One Unified Tracker

Existing and new issues related to Material and Cupertino will stay in the flutter/flutter issue tracker. You don’t need to create duplicates elsewhere. This unified tracking mirrors the pattern used for other packages in the flutter/packages repository. It simplifies bug reporting and feature requests, keeping everything in one familiar location. So, continue filing issues as before—the freeze doesn’t change where you report problems or suggest enhancements.

6. Timeline: From Freeze to Release to Deprecation

The current freeze is the first milestone. Next, the frozen code will be re-released as material_ui and cupertino_ui packages, likely after the Flutter 3.44 stable release. Following that, the old libraries in flutter/flutter will be deprecated in the subsequent stable release, and eventually deleted. The exact dates will be announced, but the sequence is clear: freeze → package launch → deprecation → removal. Developers should plan to migrate within this window.

7. Preparing for a Seamless Migration

To ensure a smooth transition, the freeze ensures that the code in the framework and the new packages is identical. When you upgrade your Flutter SDK to version 3.44 or later, you'll have the frozen version. The new packages will be published as 1.0.0 with the same API. When migration time arrives, simply add material_ui and cupertino_ui as dependencies and remove the old imports. Detailed instructions will follow. In the meantime, keep an eye on the #1 freeze status and #6 timeline updates.

Conclusion

The Material and Cupertino free of charge is a forward-looking move that sets the stage for more agile, decoupled development in Flutter. While it introduces some short-term constraints for contributors, the long-term benefits—faster updates, cleaner architecture, and easier maintenance—are significant. By understanding these 7 key insights, you’re well prepared to navigate this change. Stay tuned to the Flutter blog and flutter/packages for launch announcements and detailed migration guides. The future of your Flutter UI just got more flexible.