flutter_state_migrator 2.1.0
flutter_state_migrator: ^2.1.0 copied to clipboard
Automated CLI tool to migrate Flutter apps from Provider, BLoC, GetX, and MobX to Riverpod.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'counter_model.dart';
import 'settings_screen.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() {
runApp(
ProviderScope(child: const MyApp()),
);
}
class MyApp extends ConsumerWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return MaterialApp(
title: 'Provider Migration Example',
theme: ThemeData(primarySwatch: Colors.blue),
home: const HomeScreen(),
);
}
}
class HomeScreen extends ConsumerWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
appBar: AppBar(
title: const Text('Home'),
actions: [
IconButton(
icon: const Icon(Icons.settings),
onPressed: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const SettingsScreen()),
),
),
],
),
body: Center(
child: Consumer(
builder: (context, ref, child) => ref.watch(countermodelProvider) Text(
'Count: ${counter.count}',
style: Theme.of(context).textTheme.headlineMedium,
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () =>
ref.read(countermodelProvider).increment(),
child: const Icon(Icons.add),
),
);
}
}
// TODO: Auto-migrated Riverpod Provider
final countermodelProvider = StateNotifierProvider<CounterModelNotifier, CounterModelState>((ref) {
return CounterModelNotifier();
});