Repository Stream Pattern: a Reactive Way to Keep Your UI in Sync ⚡️
One reactive source of truth. The repository streams data, and each feature listens and derives its own state independently. Clean, decoupled, and easy to scale.
Read More
9 posts
One reactive source of truth. The repository streams data, and each feature listens and derives its own state independently. Clean, decoupled, and easy to scale.
Read MoreDon't make one single BLoC for the whole page. Follow the Single Responsibility Principle and split UI components into small features with their own BLoCs.
Read MoreProp drilling happens when data travels through widgets that do not need it. In this post I show how I removed it in my project and made the code cleaner using a provider.
Read MoreLearn how to keep your Flutter imports clean and scalable using the barrel file pattern, and see how my new VS Code extension Barrel Me automates the process with one click.
Read MoreEver needed to display a widget above all other content? Flutter's Overlay widget is your secret weapon for custom notifications, persistent tooltips, and truly floating elements.
Read MoreExtension methods offer a powerful way to encapsulate common UI patterns, making your widget trees much cleaner and more readable. Instead of wrapping every widget, you can chain these extensions for a more fluent API.
Read MoreSometimes your BLoC looks fine, but part of its logic lives outside the state hidden in private fields that never get emitted. That's ghost state. In this post, I show a real example of how it happens, and how to fix it so your state tells the whole story.
Read MoreA quick tip on how to make your Flutter UI transitions feel smoother using AnimatedSwitcher.
Read More(and how the Mediator Pattern can save you) Sometimes in a Flutter app, one BLoC starts depending on another. Maybe the profile screen needs the current user ID from the AuthBloc. So we inject one BLoC into the other. It works. Until it doesn't.
Read More