raw_state 1.0.1
raw_state: ^1.0.1 copied to clipboard
A super simple state management solution
RawState is a super simple state container for your Dart and Flutter apps
Features #
Flutter widgets are encapsulated. It is, on purpose, difficult to share data between widgets. To help manage that, many state management packages like flutter_riverpod, provider, flutter_bloc, getx, and mobx have been written. And they are really good, but they're also really complicated. This is a barrier to entry for many Flutter developers.
RawState makes it incredibly easy to set state in one widget and read it in another.
Getting started #
After pub add raw_state or flutter pub add raw_state, just import it at the top of every file that needs to read or write state:
import 'package:raw_state/raw_state.dart';
This exposes a new global variable called rawState.
Usage #
To set a value in any file #
rawState.set('someInt', 77);
rawState.set('someMap', {"foo":"bar","baz":"qux"});
rawState.set('someString', "Can it really be this simple?");
To read a value in any file #
This could be the same file/widget or a completely different one.
int i = rawState.get<int>('someInt');
Map m = rawState.get<Map>('someMap');
String s = rawState.get<String>('someString');
Note: .get() throws if the the key is non-existent or contains a null. For nullables, use .maybeGet()
To read a nullable value or one that hasn't been set #
int? i = rawState.maybeGet<int>('someInt');
Map? m = rawState.maybeGet<Map>('someMap');
String? s = rawState.maybeGet<String>('someString');
That's really all you have to do.
Additional information #
The other state management packages are much more robust with protections built in. This package is focused on simplicity and rapid development. If your app is a MVP (minimum viable product) or a prototype, rawState will get you up and running incredibly quickly. Even if it is a simple app and you're rigorous in your coding, it is perfectly fine. But if your app is huge and built by a large team, you may want to bite the bullet and learn one of those other state managers.
Contributing #
- Propose an enhancement
- Report a bug
- Fix a bug
- Send in a Pull Request