getx_plus library

GetX is an extra-light and powerful multi-platform framework. It combines high performance state management, intelligent dependency injection, and route management in a quick and practical way.

Classes

Bind<T>
Deprecated. Use Get.put, Get.lazyPut, Get.find, or GetBinding instead. This class is kept for backward compatibility only.
Binding
Route-level dependency injection contract.
Binds
Deprecated. The Binds widget is no longer used by route Bindings. Use MultiBinding or nest GetBinding widgets instead.
CircularRevealClipper
CircularRevealTransition
CustomStatus<T>
CustomTransition
EmptyStatus<T>
ErrorStatus<T, S>
FadeInTransition
FastList<T>
FullLifeCycleController
GetBackGestureController<T>
GetBackGestureDetector<T>
GetBackGestureDetectorState<T>
GetBinding<T>
Scopes a single dependency to a widget subtree.
GetBuilder<T extends GetController>
Listens to a GetController and rebuilds whenever it calls update().
GetBuilderState<T extends GetController>
GetController
A reactive controller that integrates with GetBuilder and the DI system.
GetCupertinoApp
GetInterface
GetInterface is the base class of the Get singleton. Extensions on this class add navigation, dependency injection, and reactive state capabilities — all accessible via the single Get object.
GetListenable<T>
GetMaterialApp
GetMiddleware
GetNotifier<T>
GetNotifier has a native status and state implementation, with the Get Lifecycle
GetObserver
GetPage<T>
GetPageRoute<T>
GetResponsiveView<T>
Extend this widget to build responsive view. this widget contains the screen property that have all information about the screen size and type. You have two options to build it. 1- with builder method you return the widget to build. 2- with methods desktop, tablet,phone, watch. the specific method will be built when the screen type matches the method when the screen is ScreenType.Tablet the tablet method will be exuded and so on. Note if you use this method please set the property alwaysUseBuilder to false With settings property you can set the width limit for the screen types.
GetResponsiveWidget<T extends GetLifeCycleMixin>
GetStatus<T>
GetView<T>
A convenient base for views that need a single GetController.
GetWidget<S extends GetLifeCycleMixin>
GetWidgetCache
GetWidgetCacheElement
GetWidgetCacheImpl<S extends GetLifeCycleMixin>
GetxService
Unlike GetxController, which serves to control events on each of its pages, GetxService is not automatically disposed (nor can be removed with Get.delete()). It is ideal for situations where, once started, that service will remain in memory, such as Auth control for example. Only way to remove it is Get.reset().
InstanceInfo
Metadata about a registered dependency.
LeftToRightFadeTransition
ListNotifier
ListNotifierGroup
A notifier with group of listeners identified by id
ListNotifierSingle
A Notifier with single listeners
LoadingStatus<T>
MiddlewareRunner
MiniStream<T>
MiniSubscription<T>
MixinBuilder<T extends GetController>
Combines GetBuilder and Obx so the widget responds to both controller.update() calls and changes to Rx observables inside the builder function.
MultiBinding
Scopes multiple dependencies to a widget subtree.
Node<T>
Notifier
NotifyData
Observer
Obx
ObxElement
ObxError
ObxStatelessWidget
ObxValue<T extends RxInterface>
ObxWidget
PageSettings
PathDecoded
ResponsiveScreen
ResponsiveScreenSettings
RightToLeftFadeTransition
RouterReportManager<T>
Routing
Rx<T>
Foundation class used for custom Types outside the common native Dart types. For example, any custom "Model" class, like User().obs will use Rx as wrapper.
RxBool
RxController
RxDouble
RxInt
RxInterface<T>
This class is the foundation for all reactive (Rx) classes that makes Get so powerful. This interface is the contract that _RxImpl<T> uses in all it's subclass.
RxList<E>
Create a list similar to List<T>
RxMap<K, V>
Rxn<T>
RxnBool
RxnDouble
RxnInt
RxnNum
RxnString
Rx class for String Type.
RxNum
RxSet<E>
RxString
Rx class for String Type.
SizeTransitions
SlideDownTransition
SlideLeftTransition
SlideRightTransition
SlideTopTransition
StateController<T>
SuccessStatus<T>
SuperController<T>
Value<T>
WidgetCache<T extends GetWidgetCache>
Worker
Workers
ZoomInTransition

Enums

PreventDuplicateHandlingMode
Enables the user to customize the behavior when pushing multiple routes that shouldn't be duplicates
ScreenType
SmartManagement
GetX by default disposes unused controllers from memory, Through different behaviors. SmartManagement.full SmartManagement.full is the default one. Dispose classes that are not being used and were not set to be permanent. In the majority of the cases you will want to keep this config untouched. If you new to GetX then don't change this. SmartManagement.onlyBuilder only controllers started in init: or loaded into a Binding with Get.lazyPut() will be disposed. If you use Get.put() or Get.putAsync() or any other approach, SmartManagement will not have permissions to exclude this dependency. With the default behavior, even widgets instantiated with "Get.put" will be removed, unlike SmartManagement.onlyBuilders. SmartManagement.keepFactoryJust like SmartManagement.full, it will remove it's dependencies when it's not being used anymore. However, it will keep their factory, which means it will recreate the dependency if you need that instance again.
Transition

Mixins

FullLifeCycleMixin
GetLifeCycleMixin
The GetLifeCycle
GetPageRouteTransitionMixin<T>
GetResponsiveMixin
GetSingleTickerProviderStateMixin
Used like SingleTickerProviderMixin but only with Get Controllers. Simplifies AnimationController creation inside GetxController.
GetTickerProviderStateMixin
Used like TickerProviderMixin but only with Get Controllers. Simplifies multiple AnimationController creation inside GetxController.
GetxServiceMixin
Allow track difference between GetxServices and GetxControllers
ListNotifierGroupMixin
ListNotifierSingleMixin
This mixin add to Listenable the addListener, removerListener and containsListener implementation
PageRouteReportMixin<T>
RxObjectMixin<T>
global object that registers against GetX and Obx, and allows the reactivity of those Widgets and Rx values.
ScrollMixin
StatelessObserverComponent
StateMixin<T>

Extensions

BoolExtension on bool
DoubleExtension on double
GetNavigationExt on GetInterface
Inst on GetInterface
IntExtension on int
ListExtension on List<E>
MapExtension on Map<K, V>
PageArgExt on BuildContext
ResetInstance on GetInterface
RxBoolExt on Rx<bool>
RxDoubleExt on Rx<double>
RxIntExt on Rx<int>
RxnBoolExt on Rx<bool?>
RxnDoubleExt on Rx<double?>
RxnIntExt on Rx<int?>
RxnNumExt on Rx<T?>
RxnStringExt on Rx<String?>
RxNumExt on Rx<T>
RxStringExt on Rx<String>
RxT on T
RxTnew on Object
This method will replace the old .obs method. It's a breaking change, but it is essential to avoid conflicts with the new dart 3 features. T will be inferred by contextual type inference rather than the extension type.
SetExtension on Set<E>
StateExt on StateMixin<T>
StatusDataExt on GetStatus<T>
StringExtension on String

Properties

Get GetInterface
The central Get singleton — your one-stop-shop for:
final
It replaces the Flutter Navigator, but needs no context. You can to use navigator.push(YourRoute()) rather Navigator.push(context, YourRoute());
no setter

Functions

debounce<T>(GetListenable<T> listener, WorkerCallback<T> callback, {Duration? time, Function? onError, void onDone()?, bool? cancelOnError}) Worker
debounce is similar to interval, but sends the last value. Useful for Anti DDos, every time the user stops typing for 1 second, for instance. When listener emits the last "value", when time hits, it calls callback with the last "value" emitted.
defaultLogWriterCallback(String value, {bool isError = false}) → void
default logger from GetX
ever<T>(GetListenable<T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Called every time listener changes. As long as the condition returns true.
everAll(List<RxInterface> listeners, WorkerCallback callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Similar to ever, but takes a list of listeners, the condition for the callback is common to all listeners, and the callback is executed to each one of them. The Worker is common to all, so worker.dispose() will cancel all streams.
interval<T>(GetListenable<T> listener, WorkerCallback<T> callback, {Duration time = const Duration(seconds: 1), dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Ignore all changes in listener during time (1 sec by default) or until condition is met (can be a bool expression or a bool Function()), It brings the 1st "value" since the period of time, so if you click a counter button 3 times in 1 sec, it will show you "1" (after 1 sec of the first press) click counter 3 times in 1 sec, it will show you "4" (after 1 sec) click counter 2 times in 1 sec, it will show you "7" (after 1 sec).
once<T>(GetListenable<T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
once() will execute only 1 time when condition is met and cancel the subscription to the listener stream right after that. condition defines when callback is called, and can be a bool or a bool Function().

Typedefs

AsyncInstanceBuilderCallback<S> = Future<S> Function()
Callback = void Function()
Condition = bool Function()
Disposer = void Function()
GetControllerBuilder<T extends GetLifeCycleMixin> = Widget Function(T controller)
GetPageBuilder = Widget Function()
GetRouteAwarePageBuilder<T> = Widget Function([GetPageRoute<T>? route])
GetService = GetxService
Clean alias for GetxService.
GetServiceMixin = GetxServiceMixin
Marker mixin alias for GetxServiceMixin.
GetStateUpdate = void Function()
GetxController = GetController
Backward-compatible alias for GetController.
InitBuilder<T> = T Function()
InstanceBuilderCallback<S> = S Function()
InstanceCreateBuilderCallback<S> = S Function(BuildContext _)
LogWriterCallback = void Function(String text, {bool isError})
VoidCallback from logs
NotifierBuilder<T> = Widget Function(T state)
OnData<T> = void Function(T data)
ValueBuilderBuilder<T> = Widget Function(T snapshot, ValueBuilderUpdateCallback<T> updater)
ValueBuilderUpdateCallback<T> = void Function(T snapshot)
WidgetCallback = Widget Function()
WorkerCallback<T> = dynamic Function(T callback)

Exceptions / Errors

BindError<T>