Swift Event Center to create custom events and respond to them.
The idea was to build a simple event center from scratch to:
- better understand how a notification/event center would work
 - have simple event manager for simple tasks
 - in pure Swift
 - and not use Apple's Notification Center
 
The interesting thing about the process is that while building it, I got a deeper understanding of how Notification Center.
To make it easier for new comers, I decided to keep Apple's way of naming things.
Note: EventCenter is not meant to be a full replacement of Notification Center. It is a simpler alternative (as in "simpler to use, but also simpler in terms of functionalities") that should be good enough for simple projects.
EventCenter allows you to:
-  - add observer for 
Event.Name(a.k.a.Notification.Name) - - specify a name for added observers so that they can be removed independently
 -  - remove all observers for a specific 
Event.Name -  - remove one observer with a specific 
namefor a specificEvent.Name -  - post events and pass 
object:Any?&userInfo:[AnyHashable:Any]? - - specify priority for each observer (not implemented yet)
 
With SPM, add the following to the dependencies of your Package.swift
.package(url: "https://github.com/ladislas/SwiftEventCenter", from: "1.1.1")Event is just a typealias for Notification.
See docs, Examples & Tests for more information.
import EventCenter
let ec = EventCenter()
...
ec.addObserver(forEvent: Event.Name("event1"), name: "obs1", callback: { event: Event in 
	if let obj = event.object {
		print("Hello, \(obj)!")	
	}
})
...
ec.post(event: Event.Name("event1"), object: "World")Made with ❤️ by:
- Ladislas de Toldi - ladislas
 
Apache 2.0 @ Ladislas de Toldi
Original Work
This project is based on great people's ideas. The original idea was created by Stephen Haney. It was then improved by Robin Walter's Swift-Events. First I wanted to fork Robin's repo but after spending a couple of hours on it, I decided to rewrite most of it. Original work from Stephen Haney & Robin Walter is under MIT.