flutter_cora_riverpod
flutter_cora_riverpod is a simple Flutter package for implementing the view-controller pattern, helping you separate UI and business logic to maintain cleaner and more organized code.
Note: If you are not using flutter_riverpod for state management, check out flutter_cora.
Features
- Separate UI (View) from business logic (State).
- Promote clean architecture for Flutter applications.
- Lightweight and easy to integrate into existing projects
Getting started
To use this package, add flutter_cora_riverpod
as a dependency in your pubspec.yaml file
dependencies:
flutter_cora_riverpod: ^0.0.1-dev.7
Usage
Here is a simple example of how to use flutter_cora_riverpod
.
/// Provider for the counter label.
final labelProvider = Provider.autoDispose((ref) => 'Count');
/// example_view.dart
class ExampleView extends CoraConsumerView<ExampleState> {
const ExampleView({
required this.name,
super.key,
});
final String name;
@override
Widget build(BuildContext context, ExampleState state) {
return Column(
children: [
Text(state.watch(labelProvider)), // same as ref.watch
Text(
'${state.count}',
style: Theme.of(context).textTheme.titleLarge,
),
],
);
}
@override
ExampleState createState() => ExampleState();
}
/// example_state.dart
class ExampleState extends CoraConsumerState<ExampleView> {
int count = 1;
@override
void initState() {
super.initState();
print('name: ${widget.name}');
print('label: ${read(labelProvider)}'); // same as ref.read
}
}