flutter_cora_riverpod

deploy codecov Pub Version GitHub License GitHub last commit Pub Points

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
  }
}