// the find
jonataslaw/getx
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.
GetX is an all-in-one Flutter package that bundles state management, routing, and dependency injection into a single import. It targets developers who find Flutter's default Provider/Navigator/InheritedWidget stack verbose and want a flatter API surface. At 11k stars it's one of the most-used Flutter packages, though its community is as much a liability as an asset.
The context-free navigation API (Get.to(), Get.back()) is genuinely useful and removes a real pain point from Flutter development. The reactive state system with .obs is minimal boilerplate compared to writing StreamControllers by hand. Lazy dependency injection with automatic cleanup on route disposal means you don't manually manage controller lifecycles. The package is split into independent modules at the compiler level — using only routing doesn't pull in the state management code.
Bundling routing, state, DI, HTTP, i18n, and responsive utils into one package means any of those subsystems going stale drags the whole thing. The project has a long history of the maintainer going quiet for months then doing big breaking releases — check the issues before committing to it on a long-lived project. GetX encourages putting business logic directly in controllers with static global access (Get.find()), which makes testing harder than advertised despite the README claims. The custom HTTP client (GetConnect) is redundant if you're already using dio or http, and mixing two HTTP abstractions in one project is a common GetX trap.