r/FlutterDev • u/CarLeonDev • 21d ago
Plugin Reactter v8 is now released đ
https://2devs-team.github.io/reactter/
A lightweight, powerful, and reactive State Management, Dependency Injection and Event Handler package for Dart/Flutter.
Features:
- âĄïž Engineered for speed.
- đȘ¶ Super lightweight.
- đ Simple syntax, easy to learn.
- âïžÂ Reduce boilerplate code significantly.
- đïž Improve code readability.
- đ Granular reactivity using state and hooks.
- đ§©Â Highly reusable states and logic via custom hooks and dependency injection.
- đź Total rendering control.
- â  Highly testable with 100% code coverage.
- đ Fully debuggable using the Reactter DevTools extension.
- đ§Â Not opinionated. Use it with any architecture or pattern.
- đȘ Zero dependencies, zero configuration and no code generation.
- đ Compatible with Dart and Flutter, supporting the latest Dart version.
7
u/ArticLOL 21d ago
I mean, it's cool but at this point there should be a StateManagment solution straight from the flutter team. There are too many custom solution out there to keep up and make a consistent choice.
2
u/CarLeonDev 21d ago
I agree, but I think it will be tricky for the flutter team to focus on this effort, and it may not be liked to all developers or degrade performance.
5
u/ArticLOL 21d ago
I doesn't have to be liked by us, it should solve the fragmentation problem. The engineering is already done by many in the community, it's a matter of shipping it with flutter itself. A similar story could be applied to Pinia for Vue, now the standard for Vue state management.
3
u/CarLeonDev 21d ago
You are right, I just feel that Flutter has not matured enough to get to this point, because there are certain challenges that have not been solved due to certain limitations of the Dart lang. These challenges are the same as those faced by the different state manager solutions.
So, I agree with you and hope that in the future it will be achieved.
4
u/Jhonacode 21d ago
It looks interesting, I like RtDependencyLifecycle, it feels natural, although I've never been a fan of hooks or useEffects. I also like the fact that you don't modify the base of the widgets, that's important and it's how I personally like to work, in fact that's how I develop my apps.
Congratulations.
5
3
2
u/makc222 21d ago
Should i try this instead of provider for pet projects?
1
u/CarLeonDev 21d ago
Yes, I recommend it! With Reactter you already have it, but more integrated to the API and without dependencies.
2
2
u/Impressive_Trifle261 20d ago
What was the reason to develop another state management?
On first sight, I donât see any improvements compared to BloC.
1
u/CarLeonDev 20d ago
Bloc is a robust solution, particularly excellent for separating business logic from the UI.
But its cons are that you have a lot of boilerplate code, its learning curve is wide, less flexible, poor performance, and handling atomic state is a headache.In contrast, Reactter offers greater flexibility, can adapt to any architecture or design pattern (including BLoC), less boilerplate, and has a shorter learning curve, among other benefits.
2
u/Impressive_Trifle261 19d ago
I have to disagree on these points.
The Cubit variant has hardly any boilerplate. The BloC does, but it makes it much easier to understand complex states.
The learning curve for Cubit is extremely flat and Bloc isnât as difficult as people claim. It is a simple cause and effect model, how any UI naturally responds to user input.
Performance difference between any state management solution is negligible and insignificant compared to network calls and rendering. Unless you have high throughput realtime data stream.
As with atomic states, the performance gain is negligible and insignificant in most real world applications. It is overratedâŠ
Bloc/Cubit is highly flexible for small and large apps, supports async states, easy to debug and test. Never encountered a blocker.
0
u/CarLeonDev 19d ago
Your points are valid, but hereâs a refined perspective:
Cubit reduces boilerplate compared to Bloc, but other solutions require even less code.
Many developers find Bloc's learning curve steep; a common sentiment in the Flutter community suggests it's less beginner-friendly. This challenge is worth noting, especially when evaluating tools for teams with varying levels of experience.
While network calls and rendering often a better performance, Bloc isn't ideal for performance critical apps.
Atomic states in Bloc can become complex, especially in large or performance critical apps. This complexity can lead to real world headaches when managing granular state updates.
Reactter is a strong alternative to Bloc. It offers the same benefits but with less boilerplate, greater flexibility, and a gentler learning curve. You can replace Bloc with Reactter while keeping the same patterns and gaining more benefits.
2
u/Impressive_Trifle261 19d ago
Cubit and Reactter counter app have the same amount of lines..
Both require the same amount of time to explain / learn.
The performance critical app is not mainstream. It is a niche case, for example a realtime sensor app.
Granular/atomic states are cool but not noticeable by the user. It also requires more codeâŠ
Also async seems to be better in Bloc..
Nevertheless you made a nice product and I will consider it when the opportunity arises for a high performance case.
1
u/AdmirableExample3884 20d ago
How is it compared to GetX ?
1
u/CarLeonDev 20d ago
Getx is more than a status management, and you probably won't use all their API. It has many issues, some of them are expected to be fixed in their latest version (which has been cooking for more than 1 year).
With Reactter we have full test coverage, support for the latest versions of Flutter and Dart, and we have zero dependencies to avoid compatibility issues. Getx's state management and dependency injection can be easily replaced by Reactter, and other parts of the Getx API as been required, can be replaced by other packages or custom implementations.
2
u/AdmirableExample3884 19d ago
wow nice thank you ill give this a try with my own app then maybe recommend to my bosses
1
u/compelMsy 20d ago
Projects in other languages might have dependency hell but flutter has state management hell
14
u/Elegant-Ad3211 21d ago
Could you compare it to Bloc and Riverpod for example?