raw_state 1.0.1 copy "raw_state: ^1.0.1" to clipboard
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
1
likes
130
points
12
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A super simple state management solution

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on raw_state