event_bus_plus

Creator: coderz1093

Last updated:

Add to Cart

Description:

event bus plus

EventBus: Events for Dart/Flutter #



EventBus is an open-source library for Dart and Flutter using the publisher/subscriber pattern for loose coupling. EventBus enables central communication to decoupled classes with just a few lines of code – simplifying the code, removing dependencies, and speeding up app development.

Your benefits using EventBus: It… #

simplifies the communication between components;
decouples event senders and receivers;
performs well with UI artifacts (e.g. Widgets, Controllers);
avoids complex and error-prone dependencies and life cycle issues.


Define the app's events #
// Initialize the Service Bus
IAppEventBus eventBus = AppEventBus();

// Define your app events
final event = FollowEvent('@devcraft.ninja');
final event = CommentEvent('Awesome package 😎');
copied to clipboard
Subscribe #
// listen the latest event
final sub = eventBus.last$
.listen((AppEvent event) { /*do something*/ });

// Listen particular event
final sub2 = eventBus.on<FollowAppEvent>()
.listen((e) { /*do something*/ });
copied to clipboard
Publish #
// fire the event
eventBus.fire(event);
copied to clipboard
Watch events in progress #
// start watch the event till its completion
eventBus.watch(event);

// and check the progress
eventBus.isInProgress<FollowAppEvent>();

// or listen stream to check the processing
eventBus.inProgress$.map((List<AppEvent> events) =>
events.whereType<FollowAppEvent>().isNotEmpty);

// complete
_eventBus.complete(event);

// or complete with completion event
_eventBus.complete(event, nextEvent: SomeAnotherEvent);
copied to clipboard
History #
final events = eventBus.history;
copied to clipboard
Mapping #
final eventBus = bus = EventBus(
map: {
SomeEvent: [
(e) => SomeAnotherEvent(),
],
},
);
copied to clipboard
Contributing #
We accept the following contributions:

Improving the documentation
Reporting issues
Fixing bugs

Maintainers #

Andrew Piterov

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.