A lightweight, high-performance Flutter framework for state management, dependency injection, and navigation without context.
GetX is a lightweight, all-in-one Flutter framework that provides state management, dependency injection, and navigation solutions without requiring a BuildContext. It solves the problem of Flutter boilerplate by offering a simple syntax for managing app state, routes, and dependencies while maintaining high performance and organization. The framework is designed to be easy for beginners yet powerful enough for complex applications.
Flutter developers looking to reduce boilerplate code, improve app performance, and streamline state management, navigation, and dependency injection in their projects. It's suitable for both small apps and large-scale enterprise applications.
Developers choose GetX for its simplicity, performance, and comprehensive feature set—all in a single package. It eliminates the need for multiple libraries, reduces code verbosity, and offers smart memory management, making it a productive alternative to other state management and routing solutions in Flutter.
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
GetX uses .obs observables and Obx widgets for reactive state management, reducing code lines significantly compared to StatefulWidget or StreamBuilder, as shown in the 26-line counter app example.
Route management with Get.to() and Get.back() works without BuildContext, simplifying navigation and decoupling it from the UI layer, eliminating the need for Navigator.push.
Dependency injection via Get.put() and Get.find() is automatic with smart memory management, removing unused controllers by default unless marked permanent, as emphasized in the README.
Includes internationalization, HTTP client (GetConnect), theme management, and platform utilities out-of-the-box, reducing reliance on multiple external packages.
GetX's all-in-one nature ties you to its ecosystem, making it harder to switch to other libraries or integrate with non-GetX Flutter packages, potentially limiting flexibility.
The README documents breaking changes from version 2.0, such as Rx type renames and route API shifts, indicating potential instability or migration efforts during updates.
Features like .obs and reactive operators can obscure underlying logic, leading to debugging challenges in large apps, especially when tracking state updates or dependency cycles.