Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GetX 5 #2889

Open
jonataslaw opened this issue Aug 26, 2023 · 166 comments
Open

GetX 5 #2889

jonataslaw opened this issue Aug 26, 2023 · 166 comments
Assignees

Comments

@jonataslaw
Copy link
Owner

jonataslaw commented Aug 26, 2023

I think I have failed to be conservative.

GetX basically hasn't changed since its first version (only the RxTypes have changed due to Flutter updates), and I've been trying to keep breaks to a minimum for each update, after all, this is one of the things I like (or liked) the most in using a framework, not having to tinker with its code for a long time.

However, version 5 became a headache. We were migrating the api to navigator 2 completely without ANY break, this is insane. I had to keep a bunch of code I didn't want to maintain compatibility.

However, the truth is that Flutter has matured over the years, and so have I, and there are many things that I just don't see any sense in anymore.

GetWidget, for example, is a widget that prevented Flutter from updating a widget for performance. This was identical to React's PureComponent, not present in Flutter, however, it complicated the api, and brought more bugs than benefits, simply because it was impossible to modify it. With current applications that have dynamic themes, this has become useless.

Also, it seems that GetX users have come to demonize BuildContext, and well, that might have been my fault, after all, that was GetX's description. However, our role was to provide parallel dependency management approaches, not based on BuildContext, but that didn't mean we stopped using it. Today there are people who use Get.width within widgets, which is a headache, since it does not receive dynamic updates, for that there is context.width, however, despite this being in the documentation, this seems to be ignored by part of the users.

That way, I ended up pushing an update forward, just out of fear, fear of having to refactor my projects, fear of causing too many breakings, and the project went a long time without updates.

However, I think we can be better, I think we can have a solid, modern foundation (the current one was written 4 years ago), and so I think we're going to have some changes.

I created this issue to share all the changes I'm going to make in version 5, to serve as a guide in case something breaks.

This does NOT mean that GetX 5 will be full of breaking changes, just that it will have small breaking changes, like every major package update.

@jonataslaw jonataslaw self-assigned this Aug 26, 2023
@jonataslaw jonataslaw pinned this issue Aug 26, 2023
@jonataslaw
Copy link
Owner Author

  1. GetWidget.
    GetWidget will NOT prevent further widget updates.
    Perhaps it will be merged with GetView, and perhaps it will have one of the following functions:
  • Auto track of updates: Not sure yet, but maybe this will be added
  • Scopped Widget: It can create a scope to pass a copy of your controller to your children. This controller can be accessed through the BuildContext.
  1. Nested Navigation:
    Previously we used onGenerateRoute to use nested navigation. This won't work since version 5 uses Navigator 2. We'll use RouterOutlet instead.

  2. Whoever uses the "change" immutable api will have some breaks. RxStatus for example will cease to exist.

  3. Bindings will change, instead of an empty method you will have to return a List. This will allow you to inject the dependency with a scope. Why that? Well, if you have a "ProfileController" controller, and a feed where you can endlessly browse through countless profiles, you'll need something similar. I think the current approach is too "hacking", and you have to use tags to generate dependencies. This usually brings a headache, so let's change.

If you don't use any of the above, the chances that you don't have breaking are high.

Note: We will probably split the package into smaller packages for those who only want to use part of the package. The Get package will continue with all the code, but there will be other smaller packages with only part of the implementation. Each resource will communicate with the others through Middlewares. Ex:

Navigation will trigger events. Dependency injection can listen to these events to decide when to delete a controller.

State management and dependency injection cannot be separated, because the latter depends on the former at any time. However the routing, connection with the api (get_connect), and the animations api, may not be part of the scope of many projects, so let's insert it in GetX, but allow people to use GetX's state manager without they also. Obviously, everything will work better together (since the automatic deletion of controllers integrates well with the routes api), but if someone wants to use it in a different way, that's fine.

@micodev
Copy link

micodev commented Aug 26, 2023

all the best to you.

@laeo
Copy link

laeo commented Aug 27, 2023

Version management is very confusing, i can't even find the properly branch or tag or commit id of version 4.6.5.

@shehabhy1
Copy link

i appreciate your time and effort to provide significant solutions but i have a question for you are you working on this alone ??

@pye52
Copy link

pye52 commented Aug 27, 2023

GetX has already saved a lot of time, and now it's time to use that time to embrace change.

@ramees-nuhman
Copy link

Thank you, for giving a update and wish you all the best

@loic-hamdi
Copy link

Thanks for the update and the effort to make this package evolve in the good direction.
Please prepare a migration documentation for the change() api, bindings and navigation.
Thank you @jonataslaw

@KorayLiman
Copy link

Thanks for trying to keep this great package up to date. We really appreciate your effort.

1 similar comment
@han1548772930
Copy link

Thanks for trying to keep this great package up to date. We really appreciate your effort.

@sannchesda
Copy link

Keep up the great work. Your package help me a lot

@skylastn
Copy link

you're rock bro

@the6nnoo
Copy link

go bro....fuck all haters
getx is the best in flutter world!
support getx forever!

@LoveHeiZhu
Copy link

getx is the best in flutter world!
support getx forever!
Thank you so much for all you do.

@synstin
Copy link

synstin commented Aug 28, 2023

I'm finally able to resolve this issue, thank you very much.
#2878

@ramees-nuhman
Copy link

I'm finally able to resolve this issue, thank you very much. #2878

Please tell how you managed that.

@zhangyutao12
Copy link

you're rock bro

@alok2811
Copy link

@jonataslaw you are the very good and intelligent programmer in the Flutter world
I support getx forever ❤️
All the best @jonataslaw

@nugrahaz
Copy link

I don't see the update on pub.dev. Is the update not available yet?

@zhangruiyu
Copy link

separating multiple packages is a really good decision

@Linkadi98
Copy link

Great to hear that GetX 5 is now on track, our applications are using GetX from start, and it's so easy to new members to catch and understand our codebase because of the simple of this framework, that's why we use GetX over Riverpod, BloC, Provider,...

@seljad
Copy link

seljad commented Aug 30, 2023

when will the new version be published?

@gauravmehta13
Copy link

when will the new version be published?

Next year i guess

@jonataslaw
Copy link
Owner Author

Hahaha
It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

@Linkadi98
Copy link

Hahaha

It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

Noice 🥳

@alok2811
Copy link

Hahaha It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

Waiting for new challanges ✌️

@acquytrenthienduong
Copy link

Hahaha It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

great

@han1548772930
Copy link

哈哈哈 它几乎准备好了,但我确保它在我的生产项目中完美运行。如果1-3天内没有出现任何问题,它将被推送到pub.dev。

我宁愿当小白鼠,也不愿推送更新,你们就是我的,如果出现问题我可以快速修复。

Excited for the update.

@zhangyutao12
Copy link

Hahaha It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

Hahaha It's almost ready to go, but I'm making sure it works perfectly in my projects in production. If it doesn't get any problems within 1-3 days, it will be pushed to pub.dev.

I'd rather be the guinea pig than push an update and you guys be mine, if something breaks I can fix it quickly.

go go go

@giantss
Copy link

giantss commented Feb 28, 2024

looking forward to new version of your awesome work.

@laterdayi
Copy link

image
https://pub.dev/packages/refreshed

@fisforfaheem
Copy link

Dear Please ask community to help you out and release the next beta verison

@asterd
Copy link

asterd commented Mar 22, 2024

Use https://pub.dev/packages/refreshed
Is getx5 based, the migration Is pretty simple and the progress are awesome.

@hayatbangash55
Copy link

hayatbangash55 commented May 6, 2024

Awesome package! I've been using it for three years, but it seems like the support for this package hasn't been very good for the last five to six months. Additionally, in the developer community, many developers spread rumors as if it's going to end badly. @jonataslaw should interact with the users of this package as soon as possible. If not, we can migrate to another state management timely.

@fisforfaheem
Copy link

refreshed is good, but i want official GETX to update atleast just update some dependencies so we feel secure and stable.

@fisforfaheem
Copy link

image https://pub.dev/packages/refreshed

kindly contribute to GETX as well

@fisforfaheem
Copy link

Dear Dev, I know i am asking too much, but my whole project is stuck for months due to GETX no updating... kindly upgrade some dependencies atleast and give a minor update

@fisforfaheem
Copy link

fisforfaheem commented May 14, 2024 via email

@jgirardet
Copy link

image

please read the the licence, let the author in quiet and stop spamming

@fisforfaheem
Copy link

[5.0.0-release-candidate-6] can it be released given the pull requests are tested and working for flutter 3.22

@nugrahazzz
Copy link

In the meantime, it's better to use the previous version of Flutter than the latest version that brings problems

@fisforfaheem
Copy link

In the meantime, it's better to use the previous version of Flutter than the latest version that brings problems

No, u can use latest: get:
git:
url: https://github.com/Aniketkhote/getx.git
ref: master

@mohsinnaqvi606
Copy link

Is it time to finally stop using GetX since it seems like GetX is not properly maintained anymore and GetX 5 is never going to be released? To be on the safe side, it seems like a fair step. @jonataslaw You have committed the last two times; @Aniketkhote what is your opinion on this?

@nugrahazzz
Copy link

@fisforfaheem how about get_storage? get_storage dependency on getx

@fisforfaheem
Copy link

@mohsinnaqvi606 brother the dev seems to be active, just not reluctant to release updates..

However our best bet is to depend on the solution i provided and if everyone uses it, and then find issues it would help a lot for further development.

@mohsinnaqvi606
Copy link

mohsinnaqvi606 commented May 18, 2024

@fisforfaheem what is your solution?

@fisforfaheem
Copy link

In the meantime, it's better to use the previous version of Flutter than the latest version that brings problems

No, u can use latest: get:
git:
url: https://github.com/Aniketkhote/getx.git
ref: master

Us this instead of fixed getX in pubspec.yaml

@giantss
Copy link

giantss commented May 20, 2024

Don't pay too much attention to some people's gossip, concentrate on doing what you like and think is right. Come on, brother, I support you.
@jonataslaw

@tariqarbi03
Copy link

@jonataslaw any update on package?????

@wxqqh
Copy link

wxqqh commented Sep 12, 2024

Getx is one of the most niubibility Flutter tool libraries, and hope Getx can stay true to its original intentions, continuously improve, and do what is right and beneficial to the Flutter ecosystem

@WMOH-DEV
Copy link

I'm very, very disappointed with this package. It's the simplest and easiest one, with great helpers, tools, and everything you need. But unfortunately, its future is very ambiguous, and you can't rely on it. No updates, no contributors, and no clear versioning

@fisforfaheem
Copy link

@jonataslaw kindly clear his doubts

@giantss
Copy link

giantss commented Sep 20, 2024

I believe everyone shouldn't be so quick to jump to conclusions. The author just needs more time to complete his plan. In fact, the author hasn't abandoned GetX; he is working hard on another direction, but some people just haven't noticed. Encouragement from the community is what motivates the author to keep going, whereas criticism will only have a negative effect.

image image

@shehabhy1
Copy link

i appreciate your clarification @giantss so please don't have a look on the other because there is here a wave of criticism and clueless of the package and there is a lot of developers here have raised some claims and demands to not use GetX as it is not a reliable package and use another state management our developers here and to be precise most of them think that getX is a statemanagement only😂 so for that no worries i trust in the creator of the package and very soon will be considered as flutter favorite🤗

@ibhanu
Copy link

ibhanu commented Nov 5, 2024

GetX will remain the most liked package on pub.dev

IMHO: Let him cook

@fisforfaheem
Copy link

I believe everyone shouldn't be so quick to jump to conclusions. The author just needs more time to complete his plan. In fact, the author hasn't abandoned GetX; he is working hard on another direction, but some people just haven' t noticed. Encouragement from the community is what motivates the author to keep going, whereas criticism will only have a negative effect.

image image

what about last 1 month

@raghavendra-k-j
Copy link

Can't you focus primary on state management and build it as a separate package, we have a better solution than getx for all other features you provide. rx widgets is the only need so we are free to use any package for any purpose

@supermnemonic
Copy link

Yeah i agree. Getx better focus state management. Thats it. Plus their rx is so simple and thats good.

Storage? Network? Localization? I dont need it. I like native or other libs for that.

@fisforfaheem
Copy link

Yes agree with u we just need next getX no other useless stuff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests