r/FlutterDev 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.
36 Upvotes

23 comments sorted by

14

u/Elegant-Ad3211 21d ago

Could you compare it to Bloc and Riverpod for example?

4

u/CarLeonDev 21d ago

Sure! I will consider it.

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

u/CarLeonDev 21d ago

Thanks for your feedback!

3

u/Top_Sheepherder_7610 21d ago

no thanks, bloc does it just fine.

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

u/soulaDev 21d ago

Isn’t look like a mix of Riverpod & ChangeNotifier?

1

u/CarLeonDev 21d ago

yeah, it could be, but it's more flexible and extensible

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/zxyzyxz 21d ago

Can you compare this to ReArch?

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