Repository navigation
Support Flutter 3.47 standalone material_ui package in GetMaterialApp #3469
Description
Is your feature request related to a problem? Please describe.
Flutter 3.47 introduced the official standalone material_ui 1.0 package and an opt-in migration from package:flutter/material.dart to package:material_ui/material_ui.dart:
GetX 4.7.3 still imports package:flutter/material.dart internally. As a result, applications that run the official migration:
dart fix --apply --code=migrate_design_widgetscannot pass the new Material types to GetMaterialApp. The old and new classes have the same names but are different Dart types.
Minimal example:
dependencies:
flutter:
sdk: flutter
get: ^4.7.3
material_ui: ^1.0.0import 'package:get/get.dart';
import 'package:material_ui/material_ui.dart';
void main() {
runApp(
GetMaterialApp(
theme: ThemeData(),
darkTheme: ThemeData.dark(),
themeMode: ThemeMode.system,
home: const Scaffold(),
),
);
}This produces errors such as:
The argument type 'ThemeData (material_ui)' can't be assigned to the parameter type 'ThemeData? (flutter/material.dart)'.
The argument type 'ThemeMode (material_ui)' can't be assigned to the parameter type 'ThemeMode (flutter/material.dart)'.
The same split affects GetX APIs and extensions that expose legacy Material types. For example, context.theme returns the legacy ThemeData, so extensions declared on material_ui.ThemeData are unavailable.
Describe the solution you'd like
Please add first-class support for the standalone material_ui package in GetX, including:
- migrating Material imports used by
GetMaterialAppand related navigation/UI APIs; - allowing
GetMaterialAppto acceptmaterial_ui.ThemeDataandmaterial_ui.ThemeMode; - updating context/theme extensions and other public APIs that currently expose legacy Material types;
- documenting the minimum Flutter version and migration path;
- considering this change for both the current stable line and GetX 5, as appropriate.
Because changing exported/public Material types is a breaking API change, a major release or a separately versioned compatibility release would be understandable.
Describe alternatives you've considered
- Continue using
package:flutter/material.dart. This works in Flutter 3.47, but the bundled design library is scheduled for formal deprecation in a future stable release. - Replace
GetMaterialAppwithmaterial_ui.MaterialApp/MaterialApp.routerand manually integrate GetX routing and dependency injection. - Use
MaterialUiCompatibilityBridgefor legacy widget subtrees. However, the bridge only maps inherited theme/localization data; it cannot solve compile-time type mismatches in theGetMaterialAppconstructor.
Environment where this was reproduced:
- Flutter 3.47
- Dart 3.13
- GetX 4.7.3
- material_ui 1.0.0
Thank you for considering support for Flutter's new independently versioned Material package.
Activity
wanwenfeng4798 commentedon Aug 18, 2026
Give it up, man. This package is effectively abandoned and no longer maintained. Whether for personal or corporate projects, I’ve completely removed it and switched to zenify/bloc or riverpod. It’s better to remove it early for the sake of maintainability; otherwise, as the project grows, migrating away from it becomes increasingly difficult.
jonataslaw commentedon Aug 18, 2026
I will update in pub dev tomorrow
jonataslaw commentedon Aug 19, 2026
Since the new version requires upgrading the Flutter version and forces a breaking change to the API, I would have to move the project to version 5 anyway. Therefore, I think it's time to release version 5 as stable and either create migration documentation or incorporate it into the CLI.
I’m just sharing this feedback because I initially thought it would take only a few hours, but I’ve set aside today and the next three days to work FULL-TIME on GetX.
mhdwaelanjo commentedon Aug 24, 2026
Is there any update on the release version? @jonataslaw
appdev-thermoworks commentedon Aug 25, 2026
How long time release 5.0 version? @jonataslaw
virdosdo commentedon Aug 25, 2026
Hello! We are waiting for version 5 adapted to Flutter 3.47, thank you.
jonataslaw commentedon Aug 25, 2026
It is almost there.
Empty-57 commentedon Aug 27, 2026
Is there any new information?
talhaamin999 commentedon Aug 29, 2026
@jonataslaw how is the migration coming along
NebiSarigul commentedon Aug 29, 2026
@jonataslaw Totally understand that things can take longer than expected. It would just be great to get a short update from time to time so we know where things stand.
Even a simple “still working on it” or “no ETA yet” would be enough. Thanks for your work on GetX.
talhaamin999 commentedon Aug 30, 2026
Just as @NebiSarigul said it will be greatly appreciated if we could get short responses or a general idea for the amount of work still remaining as most of us have production level apps that we maintain and some have entire structure built with getx
talhaamin999 commentedon Sep 3, 2026
@jonataslaw I know it must be difficult when everyone starts questioning but it will very helpful for everyone if you could provide the update status
keepwan4798 commentedon Sep 4, 2026
ProZhar commentedon Sep 5, 2026
Hi @jonataslaw, we need to talk.
First of all, I want to express my enormous gratitude for the wonderful GetX. Flutter and Dart taught me how to program, but GetX taught me how to actually build applications. It helped me understand state management, routing, dependency injection, internationalization, and so much more.
Over the years, whenever I came across packages such as BLoC, Provider, Riverpod, and others, I always had the same thought: “Why does this have to be so complicated when GetX exists?”
A few years ago, when Flutter 3.0.0 was released, I opened issue #2345 about a problem that affected many users. You fixed it in just one day. That was amazing.
This time, however, this issue has remained unresolved for three weeks, even though you have twice said that the update was almost ready. If you simply do not have enough time right now, we will understand—but please tell us. There is already a proposed solution in PR #3472, kindly prepared by @ashutosh2014 . Please review it and either merge it or let us know what is still missing. As for GetX 5 and #2966, we are prepared to wait another couple of years. ^)
The immediate problem is that GetX 4.7.3 is already blocking us from using parts of Flutter ecosystem. For example, packages such as
m3e_typographyandm3e_color_schemecannot be properly used untilGetMaterialAppsupports the newmaterial_uitypes.Many of us here have been extremely loyal - almost romantically faithful - to GetX, patiently waiting for you to find the time. But even the most loyal relationships can come to an end without communication 😁
I have now opened the same issue Open-Neom/sint#12 in SINT
So, a little confession: if they fix it first, I may finally have to say goodbye to GetX. Sorry.
And once again, thank you for everything GetX has taught me and for all the work you have put into it over the years.
talhaamin999 commentedon Sep 10, 2026
@jonataslaw any update
moinkhan780 commentedon Sep 14, 2026
Any update? at least you have that much time to answer just yes or no...
NebiSarigul commentedon Sep 15, 2026
GG
Empty-57 commentedon Sep 15, 2026
I had to move my project from GetX to signals...
NebiSarigul commentedon Sep 15, 2026
I think the author already moved his own projects away from GetX a long time ago. That would probably explain why he stopped updating it too 😄
Empty-57 commentedon Sep 15, 2026
My project integrates GetX's DI, router, and state management. Now I have to separate them one by one.😅
Empty-57 commentedon Sep 15, 2026
We know that life is not all about Github. Even if you say you need to take a break for a while, everyone will understand you, rather than being silent like this.
NebiSarigul commentedon Sep 15, 2026
Exactly. If the author simply told us, “I’m no longer maintaining this project,” we could accept that, start looking for alternatives, and move on. The frustrating part is being left in limbo, not knowing whether to wait or start tearing GetX out of our projects.
Empty-57 commentedon Sep 15, 2026
Don't hesitate any longer. The fastest migration solution at present is signals + go_router + get_it
ProZhar commentedon Sep 24, 2026
Hi everyone - I’ve found a working solution.
After reading “Haha, the author is just teasing you guys, right?” #3471, I started looking seriously for a GetX replacement.
After a deep comparison of five packages, Codex initially recommended SINT. Unfortunately, SINT did not support the standalone
material_uipackage either, so I opened Open-Neom/sint#12. A fix was promised about two weeks ago, but there has been no update.I then moved to the next candidate: GetXify.
GetXify already supported
material_ui, but it had one open bug that directly affected my application: Aniketkhote/getxify#9. I also reported another blocker: Aniketkhote/getxify#11.@Aniketkhote fixed both issues very quickly, so I migrated my real application to GetXify. The initial migration commit touched 120 files with 550 insertions and 383 deletions, but most of the work was predictable and mechanical:
material_uimigrationpackage:get/get.dartpackage:getxify/getxify.dartBindingsBindingGetPagedeclarations withbinding:bindings: [SomeBinding()]SnackPosition.BOTTOMSnackPosition.bottomRxnInt()/RxnString()constructorsnullRxStatususagesGetStatus, including the success payloadGet.width,Get.height, orGet.isDarkModeMediaQueryand theme brightnessGet.testModeget_storage 2.1.1(which depends on GetX)shared_preferencesA few migration notes that may save others time:
MaterialUiCompatibilityBridgein theGetMaterialApp.builderwhile third-party widgets still use Flutter SDK Material types. It carries the theme and localizations into those legacy subtrees.material_ui, e.g....GlobalMaterialLocalizations.delegates.extended_text_fieldor SDK-based date pickers, import only the required legacy types:Then wrap that package's widget in
legacy.Material(type: legacy.MaterialType.transparency, ...). If the package accepts SDKInputDecoration, includeInputDecorationandInputBorderin the same aliased import and uselegacy.InputDecorationexplicitly.get_storageif you want the oldgetpackage to disappear from the dependency graph. I usedshared_preferencesfor settings anddriftfor all other data.material_uitypes is where the confusing “same class name, different Dart type” errors come from.The current branch uses GetXify 5.0.5 and
material_ui1.4.0.flutter analyzereports No issues found, and the application is working well.This migration cost me about 16% of one five-hour GPT-6 Astra Medium limit and five minutes of waiting. 🤣
At the moment, I have only one specific, non-critical GetXify issue open: Aniketkhote/getxify#12. It concerns Flutter Inspector lifecycle behavior in a multi-route stack, has a small
GlobalKey/KeyedSubtreeapplication-side workaround, and does not block normal use. I expect the author will address it quickly as well.Everything is working great for me. I recommend migrating to GetXify on pub.dev, and many thanks to @Aniketkhote for taking this on and responding so quickly.
GetX, goodbye! 👋
fisforfaheem commentedon Sep 25, 2026
OMG @Aniketkhote, you’re the real deal! You keep contributing and responding to issues too. Really appreciate your efforts. We waited so long for a GetX update that it’s hard to keep building around it.