跪拜 Guibai
← All articles
Frontend · Android · Flutter

Flutter's Material/Cupertino Decoupling Hits 100% Code Migration, M3 Expressive Begins

By 恋猫de小郭 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

The decoupling untangles UI libraries from the Flutter SDK release cycle, allowing Material and Cupertino widgets to ship fixes and new styles independently. For teams stuck on older Flutter versions, this means UI updates without a full SDK upgrade—but the August release risks shipping with zero UI changes if the packages aren't published in time.

Summary

Flutter's massive effort to decouple its Material and Cupertino design libraries from the core framework has reached a major milestone. All source code, tests, and examples have been successfully moved into independent `material_ui` and `cupertino_ui` packages within `flutter/packages`. The original code in `flutter/flutter` is now frozen and awaits final deletion once the new packages stabilize.

With the code migration at 100%, the remaining tasks are wrapping up localization support and re-enabling the full test suite. The first pull requests for Material 3 Expressive styling—including a new IconButton and a global style variant switching mechanism—are also open, signaling the start of next-generation widget support.

A full release to pub.dev is unlikely to land in the August Flutter version, though a preview is possible. iOS 26's Liquid Glass style remains untouched, with no significant progress expected until at least 2027 unless Apple forces the issue.

Takeaways
All Material and Cupertino source code, tests, and examples now live in standalone packages inside `flutter/packages`.
The original code in `flutter/flutter` is frozen and will be removed once the new packages are stable.
Localization migration is the final decoupling module, currently in progress under PR #12119.
Material 3 Expressive development has started with an IconButton, a style variant mechanism, and AppBar template migration.
iOS 26 Liquid Glass support has not started and is unlikely to appear before 2027.
The packages depend on Flutter >=3.44.0 and are not yet published to pub.dev.
If the packages miss the August release, that Flutter version will ship with no UI updates or fixes.
Conclusions

The 600,000-line 'recopy' succeeded after multiple failed attempts, suggesting the migration's complexity was in preserving git history and test integrity, not just moving files.

Freezing the original code while the packages stabilize creates a risky interim state where two copies of the same widgets exist, but only one receives updates.

Liquid Glass's low priority across both Flutter and Compose Multiplatform points to a real technical tension: custom rendering engines struggle with the heavy translucency and blur effects the style demands.

Concepts & terms
Material/Cupertino Decoupling
The process of extracting Flutter's Material Design and Cupertino widget libraries from the core `flutter/flutter` repository into separate, independently versioned packages, allowing UI updates to ship without a full SDK release.
Material 3 Expressive
A new variant of Material Design 3 with larger, more playful components, distinct spacing, and rounded shapes, intended for personal and lifestyle apps rather than productivity tools.
Liquid Glass
The visual style introduced in iOS 26 featuring heavy translucency, depth effects, and glass-like materials, which poses significant rendering challenges for cross-platform frameworks that draw their own pixels.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗