Quick Facts
- Category: Environment & Energy
- Published: 2026-05-04 00:04:00
- Mastering GitHub Copilot CLI: Interactive vs Non-Interactive Mode
- Unlocking AirPods Hearing Health: A Comprehensive Guide Based on Apple's Latest Study
- 5 Essential Strategies to Stay Professional When Your Personal Life Is in Crisis
- RAM Crisis Deepens: New Data Reveals Unprecedented Shortage Severity
- Weekly Cyber Threat Roundup: April 27 Edition – Key Incidents and Emerging Risks
Overview
Flutter's framework is undergoing a significant architectural shift: the Material and Cupertino design libraries are being extracted from the core flutter/flutter repository into dedicated packages—material_ui and cupertino_ui—hosted on pub.dev. As of April 7th, the Flutter team has frozen all contributions to these libraries within the main framework repository. This guide explains what the freeze means, how it affects different stakeholders (contributors, plugin authors, and app developers), and what steps you need to take now—and in the near future—to stay aligned with the upcoming changes.
If you write Flutter applications or plugins but never directly modify Material or Cupertino widgets, you can stop reading now; the freeze will not impact your daily work until the migration phase begins after the 3.44 stable release. However, if you are an active contributor or a developer who depends on internal APIs from these libraries, read on.
Prerequisites
To follow this guide effectively, you should:
- Be familiar with Flutter development and the framework's repository structure.
- Have experience opening and managing pull requests (PRs) in the
flutter/flutterrepository. - Understand the difference between the
flutter/fluttermonorepo and theflutter/packagesrepository. - Know how to use
gitand thefluttercommand-line tool. - Be aware of the Flutter release channels (stable, beta, dev, master).
Step-by-Step Instructions
Step 1: Understand What the Freeze Entails
The code freeze means that no new changes will be accepted into the Material and Cupertino libraries inside flutter/flutter. This includes bug fixes, enhancements, or new widgets. All future development will resume in the flutter/packages repository once the new packages (material_ui and cupertino_ui) are published. The goal is to ensure a seamless migration path: the frozen code in the framework will be copied verbatim to the packages, so developers from any Flutter channel will have a consistent starting point when they upgrade to version 3.44 or later.
Step 2: What to Do if You Have Open Pull Requests
If you have an open PR that modifies files in the flutter/lib/src/material/ or flutter/lib/src/cupertino/ directories, do not close it.
- Keep the PR open. Reviewers will continue to provide feedback and review your changes as usual.
- Wait for the package release. Once the
material_uiandcupertino_uipackages are published on pub.dev, the Flutter team will provide instructions on how to port your PR to theflutter/packagesrepository. - Port your changes. Follow the official porting guide (to be published) to move your modifications to the new packages. Your change will eventually ship as part of a new version of
material_uiorcupertino_ui.
If you need to test your changes locally, you can still build Flutter from source using the frozen code in flutter/flutter. Just be aware that your final solution will need to target the packages repository.
Step 3: Reporting or Working on Issues
Issues related to Material or Cupertino will remain in the flutter/flutter issue tracker. This unified approach is the same pattern used for other packages in the flutter/packages repo and a few other repositories. If you encounter a bug or have a feature request:
- File the issue as you normally would in the
flutter/flutterrepo. - Label it appropriately (e.g., "material", "cupertino").
- Do not expect fixes to land in the frozen framework code. Instead, fixes will be implemented in the new packages once they are released.
This means that for the short term, some issues may linger until the migration completes. The Flutter team will address them in the packages repository.
Step 4: For Plugin and App Developers (Not Yet Affected)
If you are not actively contributing to Material or Cupertino, the freeze has no immediate impact on your development workflow. You can continue using the existing Material and Cupertino widgets as before. The code freeze only affects contributions to the libraries themselves.
However, after the 3.44 stable release is published, the new packages will be available. At that point:
- The old Material and Cupertino code inside the framework will be deprecated in the stable release immediately following 3.44.
- Eventually, the deprecated code will be removed.
- You will need to migrate your projects to depend on the new packages. The Flutter team will provide detailed migration instructions when that time comes.
For now, you can stay tuned for announcements and continue using the standard Flutter SDK.
Step 5: Prepare for the Migration (Future Step)
Although the migration is not yet required, you can start preparing:
- Stay on the latest stable channel. Upgrade your Flutter SDK to the latest stable version (or at least to 3.44 once released). The migration will require you to be on 3.44 or later.
- Review your imports. Identify places where you directly import from
package:flutter/material.dartorpackage:flutter/cupertino.dart. These will eventually need to be replaced withpackage:material_ui/material_ui.dartorpackage:cupertino_ui/cupertino_ui.dart. - Watch for deprecation warnings. After the deprecation is introduced, your IDE or
flutter analyzewill flag deprecated imports. Address them promptly. - Test your app with the new packages. Once the packages are published, you can add them to your
pubspec.yamland runflutter pub getto start using them. Follow the official migration guide for any breaking changes.
Common Mistakes to Avoid
- Closing open PRs prematurely. Many contributors might think the freeze means their PRs are rejected. Do not close them; they will be ported to the new packages.
- Ignoring deprecation warnings. Once deprecation begins, putting off updates can lead to broken builds when the old code is deleted. Plan your migration early.
- Migrating too early. Do not attempt to switch to the new packages before they are officially released and the migration guide is published. You risk using unstable APIs.
- Filing issues in the wrong repository. Keep issues related to Material/Cupertino in
flutter/flutter; do not file them influtter/packagesunless they are about the new packages specifically. - Assuming the freeze affects app developers. If you do not contribute to the libraries themselves, you do not need to take any action yet—continue developing as usual.
Summary
The Flutter Material and Cupertino code freeze marks a pivotal step toward decoupling these design libraries from the core framework. Active contributors should keep their PRs open and await porting instructions. All developers should stay on the latest stable channel and prepare for the eventual migration to the material_ui and cupertino_ui packages. By understanding the freeze and following these steps, you can ensure a smooth transition when the time comes.