Skip to content

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
Step-by-step guide: how to use GetXInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
getx (this)11.2kLibrarybeginner5 days agoFlutter developers who want state management, routing and dependency injection from a single package
bloc12.5kLibraryintermediate4 days agoFlutter developers who want to separate UI code from business logic
ionic-framework52.7kLibraryintermediate4 days agoWeb developers who want to build mobile apps using existing web skills
dio12.8kLibrarybeginner12 days agoFlutter app developers who need to call web APIs
elysia19.3kFrameworkintermediate8 days agoTypeScript developers building HTTP APIs or web servers
framework11.7kFrameworkintermediate3.8 years agoDevelopers 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.