Popularity
0.6
Stable
Activity
0.0
Stable
9
2
2

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Latest version: v2.2.0

Listenable alternatives and similar libraries

Based on the "Reactive Programming" category.
Alternatively, view Listenable alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Listenable or a related project?

Add another 'Reactive Programming' Library

README

Listenable

Build Status Swift 4 CocoaPods Carthage compatible codecov GitHub release

Swift object that provides an observable platform for multiple listeners.

Requirements

  • iOS 9.0+
  • Xcode 9.x+
  • Swift 4

Installation

Listenable is available through CocoaPods. To install it, simply add the following line to your Podfile:

    pod 'Listenable'

And run pod install.

Usage

Create a Listenable object either by inheriting or initializing a Listenable typed with a protocol:

    class ListenableObject: Listenable<ListenableDelegate> {
      // Class
    }

You can then add and remove listeners, and update them as required...

Add Listener(s):

    add(listener: Listener, priority: ListenerPriority) -> Bool
    add(listeners: [Listener], priority: ListenerPriority) -> Void

Remove Listener(s):

    remove(listener: Listener) -> Bool
    remove(listeners: [Listener]) -> Void
    removeAllListeners()

Enumerate & Update Listeners:

    updateListeners(update: (listener: Listener, index: Int) -> Void)

Prioritisation

ListenerPriority allows for definition of enumeration priority for a listener; by default the priority parameter is set to .low. The following values can be assigned:

    .low        (Raw: 0)
    .high       (Raw: 1000)
    .custom     (Valid range: 0-1000)

Listeners can also be updated exclusively relative to their priority:

    updateListeners(withPriority: ListenerPriority?, 
                          update: (listener: Listener, index: Int) -> Void)

    updateListeners(withPriorities: ClosedRange<Int>?, 
                            update: (listener: Listener, index: Int) -> Void)

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/MerrickSapsford/Listenable.

License

The library is available as open source under the terms of the MIT License.


*Note that all licence references and agreements mentioned in the Listenable README section above are relevant to that project's source code only.