state_manager library

Get State Manager is a light, modern and powerful state manager to Flutter

Classes

Bind<T>
BindElement<T>
The BindElement is responsible for injecting dependencies into the widget tree so that they can be observed
Binder<T>
Binding
Binding should be extended. When using GetMaterialApp, all GetPages and navigation methods (like Get.to()) have a binding property that takes an instance of Bindings to manage the dependencies() (via Get.put()) for the Route you are opening.
Binds
CustomStatus<T>
Represents a custom status.
EmptyStatus<T>
Represents an empty status.
Engine
ErrorStatus<T, S>
Represents an error status with an error object.
FullLifeCycleController
A controller that can observe the full app lifecycle.
GetBuilder<T extends GetxController>
GetInterface
GetInterface allows any auxiliary package to be merged into the "Get" class through extensions
GetListenable<T>
A listenable that implements RxInterface for reactive programming.
GetNotifier<T>
A notifier with status, state, and GetX lifecycle support.
GetResponsiveView<T>
A responsive view that extends GetView with responsive capabilities.
GetResponsiveWidget<T extends GetLifeCycleMixin>
A responsive widget that extends GetWidget with responsive capabilities.
GetStatus<T>
Sealed class representing different states of a notifier.
GetView<T>
GetView is a great way of quickly access your Controller without having to call Get.find<AwesomeController>() yourself.
GetWidget<S extends GetLifeCycleMixin>
GetWidget is a great way of quickly access your individual Controller without having to call Get.find<AwesomeController>() yourself. Get save you controller on cache, so, you can to use Get.create() safely GetWidget is perfect to multiples instance of a same controller. Each GetWidget will have your own controller, and will be call events as onInit and onClose when the controller get in/get out on memory.
GetX<T extends GetLifeCycleMixin>
A StatefulWidget that provides reactive state management.
GetxController
A base controller class that provides state management functionality.
GetXState<T extends GetLifeCycleMixin>
The state for a GetX widget.
LoadingStatus<T>
Represents a loading status.
Observer
An experimental widget that observes reactive changes.
Obx
The simplest reactive widget in GetX.
ObxElement
Element for Obx widgets that tracks reactive dependencies.
ObxStatelessWidget
A StatelessWidget that can listen to reactive changes.
ObxValue<T extends RxInterface>
Similar to Obx, but manages a local state. Pass the initial data in constructor. Useful for simple local states, like toggles, visibility, themes, button states, etc. Sample: ObxValue((data) => Switch( value: data.value, onChanged: (flag) => data.value = flag, ), false.obs, ),
ObxWidget
The ObxWidget is the base for all GetX reactive widgets
ResponsiveScreen
Provides information about the current screen.
ResponsiveScreenSettings
Settings for responsive screen breakpoints.
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
A base controller class for reactive state management using Rx variables.
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.
StateController<T>
A controller that manages state for asynchronous operations.
SuccessStatus<T>
Represents a success status with data.
SuperController<T>
A controller that combines full lifecycle management with state management.
Value<T>
A value that can be listened to and has status tracking.
ValueBuilder<T>
Manages a local state like ObxValue, but uses a callback instead of a Rx value.
ValueBuilderState<T>
The state for ValueBuilder.
Worker
Workers

Enums

ScreenType
Enum representing different screen types.
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.

Mixins

FullLifeCycleMixin
A mixin that provides full lifecycle callbacks for the controller.
GetResponsiveMixin
Mixin that provides responsive building capabilities.
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.
RxObjectMixin<T>
global object that registers against GetX and Obx, and allows the reactivity of those Widgets and Rx values.
ScrollMixin
A mixin that provides scroll-based data fetching capabilities.
StatelessObserverComponent
Mixin that adds reactive tracking to StatelessElement.
StateMixin<T>
Mixin that adds state management with status tracking.

Extensions

BoolExtension on bool
DoubleExtension on double
IntExtension on int
ListExtension on List<E>
MapExtension on Map<K, V>
ReadExt on BuildContext
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>
Extension on StateMixin that provides a widget builder.
StatusDataExt on GetStatus<T>
Extension on GetStatus providing convenience getters.
StringExtension on String
WatchExt on BuildContext

Properties

Get → _GetImpl
final

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, {Object? 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, {Object? 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), Object? 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, {Object? 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

FuturizeCallback<T> = Future<T> Function(VoidCallback fn)
GetControllerBuilder<T extends GetLifeCycleMixin> = Widget Function(T controller)
GetXControllerBuilder<T extends GetLifeCycleMixin> = Widget Function(T controller)
Builder function for GetX widgets.
InitBuilder<T> = T Function()
LogWriterCallback = void Function(String text, {bool isError})
VoidCallback from logs
NotifierBuilder<T> = Widget Function(T state)
Builder function for notifier widgets.
ValueBuilderBuilder<T> = Widget Function(T snapshot, ValueBuilderUpdateCallback<T> updater)
Builder function for ValueBuilder.
ValueBuilderUpdateCallback<T> = void Function(T snapshot)
Callback function to update the value in ValueBuilder.
ValueUpdater<T> = T Function()
VoidCallback = void Function()
WidgetCallback = Widget Function()
WorkerCallback<T> = dynamic Function(T callback)

Exceptions / Errors

BindError<T>