
GetX
A Flutter package for state management, navigation, and dependency injection, all through one Get API.
- Stars
- 11.2k
- Forks
- 1.8k
- Licence
- MIT
- Language
- Dart
- Last update
- 5 days ago
- Type
- Library
What it is
GetX is a Dart package for Flutter apps that bundles three things: state management, route (screen) navigation, and dependency injection. It also offers helpers for showing snackbars, dialogs and bottom sheets without passing a BuildContext, plus translations and theme switching. Developers use it to keep UI code, business logic and service setup separated in one consistent style.
- Navigate between screens without passing a BuildContext
- Hold app state in a controller and rebuild only the widgets that depend on it
- Register services with dependency injection and retrieve them anywhere in the app
- Show snackbars, dialogs and bottom sheets from business logic code
- Support multiple languages with its internationalization utilities
Great for
- Flutter developers who want state management, routing and dependency injection from a single package
- Beginners building their first Flutter app who want fewer packages to learn
- Teams that want a consistent structure for screens, controllers and services
- Projects that need built-in translations or theme switching alongside routing
Not ideal for
- Developers who prefer minimal, explicit architecture or a well-known standard pattern such as Provider or BLoC, since GetX uses its own conventions
- Projects that cannot accept a third-party package that couples many features together, because the README stresses one library covering many concerns
- Non-Flutter projects, since the README describes it as a Flutter solution
How to get it
- 1
Install with a package manager
You'll need: Flutter SDK · Dart SDK
Add the package to your Flutter project
flutter pub add get - 2
Run it
- Add the get package to your pubspec.yaml as shown above
- Import package:get/get.dart in your Dart file
- Use GetMaterialApp in place of MaterialApp in your main app widget
- Create a controller and use Get to navigate or access it from a screen
- 3
Get the most out of it
- Use the README's Counter App example as a first working project
- Read the three pillars section (state, routes, dependencies) before building a larger app
- Mark services as permanent only when they must stay in memory, since the default removes unused resources
- Explore the GetConnect section for HTTP calls if you need networking built in
- Use the internationalization section to add translations without another package
Downloads
Strengths
- Covers state management, routing and dependency injection in one package
- Lets you navigate and access controllers without a BuildContext, per the README
- Dependencies are lazily loaded and removed from memory when unused by default, unless marked permanent
Trade-offs
- Its own conventions differ from the Flutter default, so skills may not transfer as directly to other projects
- The README is long and covers many features, which can make it hard to know which parts you need
- Some of the README's claims, such as performance and not using Streams, are self-described and not independently verified here
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| getx (this) | 11.2k | Library | beginner | 5 days ago | Flutter developers who want state management, routing and dependency injection from a single package |
| bloc | 12.5k | Library | intermediate | 4 days ago | Flutter developers who want to separate UI code from business logic |
| ionic-framework | 52.7k | Library | intermediate | 4 days ago | Web developers who want to build mobile apps using existing web skills |
| dio | 12.8k | Library | beginner | 12 days ago | Flutter app developers who need to call web APIs |
| elysia | 19.3k | Framework | intermediate | 8 days ago | TypeScript developers building HTTP APIs or web servers |
| framework | 11.7k | Framework | intermediate | 3.8 years ago | Developers who want a framework that stays close to web platform standards |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.