Last updated:
0 purchases
riverpod
A reactive caching and data-binding framework. https://riverpod.dev
Riverpod makes working with asynchronous code a breeze by:
handling errors/loading states by default. No need to manually catch errors
natively supporting advanced scenarios, such as pull-to-refresh
separating the logic from your UI
ensuring your code is testable, scalable and reusable
riverpod
flutter_riverpod
hooks_riverpod
Welcome to Riverpod (anagram of Provider)!
For learning how to use Riverpod, see its documentation:
>>> https://riverpod.dev <<<
Long story short:
Define network requests by writing a function annotated with @riverpod:
@riverpod
Future<String> boredSuggestion(BoredSuggestionRef ref) async {
final response = await http.get(
Uri.https('https://boredapi.com/api/activity'),
);
final json = jsonDecode(response.body);
return json['activity']! as String;
}
copied to clipboard
Listen to the network request in your UI and gracefully handle loading/error states.
class Home extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final boredSuggestion = ref.watch(boredSuggestionProvider);
// Perform a switch-case on the result to handle loading/error states
return boredSuggestion.when(
loading: () => Text('loading'),
error: (error, stackTrace) => Text('error: $error'),
data: (data) => Text(data),
);
}
}
copied to clipboard
Contributing #
Contributions are welcome!
Here is a curated list of how you can help:
Report bugs and scenarios that are difficult to implement
Report parts of the documentation that are unclear
Fix typos/grammar mistakes
Update the documentation or add examples
Implement new features by making a pull-request
Sponsors #
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.