flute library

flute is the simplest state management solution ever, at least I think so.

It depends on nothing, works really fast with minimum code usage.

With flute, you don't need to wrap your material app for state, you don't need any complex libraries and most importantly your don't need context to have a state or update state.

Classes

ChangeNotifierProvider<T extends ChangeNotifier?>
Listens to a ChangeNotifier, expose it to its descendants and rebuilds dependents whenever ChangeNotifier.notifyListeners is called.
ChangeNotifierProxyProvider<T, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider0<R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider2<T, T2, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider3<T, T2, T3, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider4<T, T2, T3, T4, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider5<T, T2, T3, T4, T5, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider6<T, T2, T3, T4, T5, T6, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
Consumer<T>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer2<A, B>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer3<A, B, C>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer4<A, B, C, D>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer5<A, B, C, D, E>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer6<A, B, C, D, E, F>
Obtains Provider<T> from its ancestors and passes its value to builder.
DeferredInheritedProvider<T, R>
An InheritedProvider where the object listened is not the object emitted.
FluteApiProvider
FluteLanguageBase
FluteLocalizationProvider<T extends FluteLanguageBase>
Example
FluteProvider<T>
FluteProviderBase
Base of Flute state management.
FluteProviderWidget<T extends FluteProviderBase>
You can use this widget with MultiProvider or alone.
FluteThemeProvider
FutureProvider<T>
Listens to a Future and exposes its result to child and its descendants.
InheritedContext<T>
A BuildContext associated to an InheritedProvider.
InheritedProvider<T>
A generic implementation of an InheritedWidget.
ListenableProvider<T extends Listenable?>
Listens to a Listenable, expose it to its descendants and rebuilds dependents whenever the listener emits an event.
ListenableProxyProvider<T, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider0<R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider2<T, T2, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider3<T, T2, T3, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider4<T, T2, T3, T4, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider5<T, T2, T3, T4, T5, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider6<T, T2, T3, T4, T5, T6, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
MultiProvider
A provider that merges multiple providers into a single linear widget tree. It is used to improve readability and reduce boilerplate code of having to nest multiple layers of providers.
Provider<T>
A Provider that manages the lifecycle of the value it provides by delegating to a pair of Create and Dispose.
ProviderBinding
ProxyProvider<T, R>
A provider that builds a value based on other providers.
ProxyProvider0<R>
A provider that builds a value based on other providers.
ProxyProvider2<T, T2, R>
A provider that builds a value based on other providers.
ProxyProvider3<T, T2, T3, R>
A provider that builds a value based on other providers.
ProxyProvider4<T, T2, T3, T4, R>
A provider that builds a value based on other providers.
ProxyProvider5<T, T2, T3, T4, T5, R>
A provider that builds a value based on other providers.
ProxyProvider6<T, T2, T3, T4, T5, T6, R>
A provider that builds a value based on other providers.
ReassembleHandler
If you need your provider to be notified when 'Hot Reload' occurs, use this class
Selector<A, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector0<T>
A base class for custom Selector.
Selector2<A, B, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector3<A, B, C, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector4<A, B, C, D, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector5<A, B, C, D, E, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector6<A, B, C, D, E, F, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
StreamProvider<T>
Listens to a Stream and exposes its content to child and descendants.
ValueListenableProvider<T>
Listens to a ValueListenable and exposes its current value.

Mixins

FluteDependencyInjection
The base of Flute dependency injection.
FluteFunctions
Flute provides easier ways to use utility functions.

Extensions

ContextDeviceExtensions on BuildContext
Device extensions of BuildContext
ContextRoutingExtensions on BuildContext
Routing extensions of BuildContext
ContextWidgetExtensions on BuildContext
Widget extensions of BuildContext
ReadContext on BuildContext
Exposes the read method.
SelectContext on BuildContext
Adds a select method on BuildContext.
StringExtensions on String
These extensions are both for utility and localization.
WatchContext on BuildContext
Exposes the watch method.

Constants

kTokenKey → const String

Properties

Flute → _Flute
The root of Flute library's utilities.
final
FluteStorage → _FluteStorage
FluteStorage is a local storage implementation for Flute.
final

Typedefs

Create<T> = T Function(BuildContext context)
A function that creates an object of type T.
DeferredStartListening<T, R> = VoidCallback Function(InheritedContext<R?> context, void setState(R value), T controller, R? value)
A callback used to handle the subscription of controller.
Dispose<T> = void Function(BuildContext context, T value)
A function that disposes an object of type T.
ErrorBuilder<T> = T Function(BuildContext context, Object? error)
A callback used to build a valid value from an error.
Locator = T Function<T>()
A generic function that can be called to read providers, without having a reference on BuildContext.
ProviderBuilder<R> = Widget Function(BuildContext context, R value, Widget child)
ProxyProviderBuilder<T, R> = R Function(BuildContext context, T value, R? previous)
ProxyProviderBuilder2<T, T2, R> = R Function(BuildContext context, T value, T2 value2, R? previous)
ProxyProviderBuilder3<T, T2, T3, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, R? previous)
ProxyProviderBuilder4<T, T2, T3, T4, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, R? previous)
ProxyProviderBuilder5<T, T2, T3, T4, T5, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, T5 value5, R? previous)
ProxyProviderBuilder6<T, T2, T3, T4, T5, T6, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, R? previous)
ShouldRebuild<T> = bool Function(T previous, T next)
Used by providers to determine whether dependents needs to be updated when the value exposed changes
StartListening<T> = VoidCallback Function(InheritedContext<T?> element, T value)
A callback used to start the listening of an object and return a function that cancels the subscription.
UpdateShouldNotify<T> = bool Function(T previous, T current)
A function that returns true when the update from previous to current should notify listeners, if any.

Exceptions / Errors

ProviderNotFoundException
The error that will be thrown if Provider.of fails to find a Provider as an ancestor of the BuildContext used.
ProviderNullException
Called Provider.of<T> instead of Provider.of<T?> but the provider returned null.