use_state_utils 1.0.0+1 use_state_utils: ^1.0.0+1 copied to clipboard
The UseStateMixin is a mixin for Flutter StatefulWidget classes that simplifies the management and lifecycle of resources and auto dispose
UseStateMixin for Flutter #
UseStateMixin
simplifies the management of Flutter resources such as AnimationController
, StreamSubscription
, Timer
, and ValueNotifier
in your StatefulWidget
. It helps reduce boilerplate code by managing the lifecycle of these resources automatically. This plugin is inspired from flutter_hooks
and obx
from get
Features #
- Lifecycle Management: Ensures proper creation and disposal of resources.
- Reduced Boilerplate: Less code to manage animations, streams, timers, and value notifiers.
- Ease of Use: Simplifies common tasks into single method calls.
- Customizable: Easy to integrate your custom disposable components to mixin life-cycle
- Less code: Write less code, more efficiency. Let us dispose the resources for you.
Visual Example #
useNotifier
usePeriodicTimer #
useStreamSubscription #
useAnimationController #
Getting Started #
To use this mixin in your Flutter application, follow these steps:
Installation #
Add use_state_utils
to your Flutter project by adding the following line to your pubspec.yaml
:
dependencies:
use_state_utils:
Then, run flutter pub get
to install the package.
Usage Example #
Here is a quick example of using UseStateMixin
with an AnimationController
:
class _MyAnimatedWidgetState extends State<MyAnimatedWidget> with TickerProviderStateMixin, UseStateMixin<MyAnimatedWidget> {
late AnimationController _controller;
@override void initState() { super.initState(); _controller = useAnimationController(key: 'anim1', duration: const Duration(seconds: 2), vsync: this); _controller.forward(); }
@override Widget build(BuildContext context) { return FadeTransition( opacity: _controller, child: const Center(child: Text('Hello, World!')), ); }}
API #
useNotifier<V>
#
- Description: Creates an
AnimationController
with specifiedduration
andvsync
. - Parameters:
key
:String
key of UseStateScene.initialValue
:V
of the animation.
useAnimationController
#
- Description: Creates an
AnimationController
with specifiedduration
andvsync
. - Parameters:
key
:String
key of UseStateScene.duration
:Duration
of the animation.vsync
:TickerProvider
for the controller.
useStreamSubscription
#
- Description: Manages a
StreamSubscription
. - Parameters:
key
:String
key of UseStateScene.stream
: The stream to subscribe to.onData
: Callback for data events.
useTextEditingController
#
- Description: Manages a
StreamSubscription
. - Parameters:
key
:String
key of UseStateScene.text
:String?
initial value.
useTimer
and usePeriodicTimer
#
- Description: Manages a single-shot or periodic timer.
- Parameters:
key
:String
key of UseStateScene.duration
:Duration
between timer ticks or until the timer fires.callback
: Function to execute when the timer ticks or fires.
useCustomScene<R>
#
- Description: Manages a
Custom Disposable Components
. - Parameters:
key
:String
key of UseStateScene.createHandler
: The R object creation function.disposeHandler
: Callback to dispose the object inside this UseStateScene.
Contributing #
Contributions are welcome! Feel free to submit pull requests or open issues to discuss potential improvements.