Riverpod

flutter
v2.6.1 6.2k stars 2.5M/month Updated 2024-10-28

A reactive caching and data-binding framework for Flutter. Riverpod is a complete rewrite of Provider to make improvements that would be otherwise impossible.

state-management reactive provider dependency-injection

Installation

flutter pub add flutter_riverpod

Key Features

Compile-time safety
No BuildContext required
Supports async operations
Easy testing
DevTools integration
Code generation support

Usage Example

import 'package:flutter_riverpod/flutter_riverpod.dart';

// Define a provider
final counterProvider = StateProvider<int>((ref) => 0);

// Use in widget
class CounterWidget extends ConsumerWidget {
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final count = ref.watch(counterProvider);
    
    return Column(
      children: [
        Text('Count: $count'),
        ElevatedButton(
          onPressed: () => ref.read(counterProvider.notifier).state++,
          child: Text('Increment'),
        ),
      ],
    );
  }
}