Migration Overview
Guides for migrating to Reacton from other Flutter state management libraries. Each guide provides side-by-side comparisons of concepts, APIs, and code patterns.
Available Guides
| From | Guide | Key Differences |
|---|---|---|
| Riverpod | From Riverpod | Providers become top-level reacton() calls; ref.watch becomes context.watch(); no provider wrappers needed |
| BLoC | From BLoC | Bloc classes become stateMachine() or reacton() + computed(); events become direct set()/update() calls; BlocBuilder becomes context.watch() |
| Provider | From Provider | ChangeNotifier is replaced by immutable reacton values; Provider.of becomes context.watch()/context.read(); MultiProvider becomes a single ReactonScope |
| GetX | From GetX | Rx* observables become reacton(); Obx() becomes context.watch(); controllers become modules; Get.put/Get.find become ReactonScope + context reads |
General Migration Strategy
- Start small -- Pick one feature or screen to migrate first
- Keep both running -- Reacton can coexist with other state management libraries during migration
- Top-level declarations -- Reacton state is declared at the top level, not inside classes or provider scopes
- Immutable values -- Reacton works with plain Dart values, not mutable objects
- Test as you go -- Reacton's testing tools make it easy to verify each migrated piece
What's Next
- From Riverpod -- If you are coming from Riverpod
- From BLoC -- If you are coming from BLoC
- From Provider -- If you are coming from Provider
- From GetX -- If you are coming from GetX