Flutter's Material and Cupertino code freeze
Article Summary
Justin McCandless from the Flutter team just announced a major architectural shift: Material and Cupertino libraries are being ripped out of the core framework. As of April 7th, the code is frozen.
Flutter is decoupling its UI component libraries from the main framework, moving them to standalone packages on pub.dev. This represents one of the biggest structural changes in Flutter's history, affecting how developers access iOS and Android design systems. The freeze marks the first milestone in a multi-release migration process.
Key Takeaways
- Material and Cupertino code frozen in flutter/flutter as of April 7th
- New material_ui and cupertino_ui packages launching after Flutter 3.44 stable
- Old libraries will be deprecated one release after 3.44, then deleted
- Open PRs will be ported to flutter/packages once new packages publish
- Community contributors migrated hundreds of tests to enable the decoupling
Flutter is extracting its design system libraries into separate packages to enable faster iteration and better modularity, with a carefully staged migration starting after version 3.44.
About This Article
Flutter's Material and Cupertino libraries had test dependencies that prevented the core framework from being decoupled. This meant hundreds of tests needed to be migrated before the architecture could change.
Justin McCandless opened an issue about the test dependencies, and community contributors stepped up to help. People at all experience levels worked together to migrate the tests throughout the codebase.
The migration effort let Flutter freeze Material and Cupertino code on April 7th. This created a one-release-cycle buffer between the frozen framework code and the new 1.0.0 packages, which reduced breaking changes when developers migrated.