Kommander-iOS

Kommander is a Swift library to manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.

View project on GitHub

Kommander

Twitter Version License Platform Carthage compatible Swift Package Manager Compatible Docs Build Status Downloads

Kommander is a Swift library to manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.

Inspired on the Java library Kommander from Wokdsem.

Kommander

Features

  • [x] Make kommand or multiple kommands
  • [x] Execute kommand or multiple kommands
  • [x] Cancel kommand or multiple kommands
  • [x] Set kommand success block
  • [x] Set kommand error block
  • [x] Main thread dispatcher
  • [x] Current thread dispatcher
  • [x] Custom OperationQueue dispatcher
  • [x] Custom DispatchQueue dispatcher
  • [x] Execute single or multiple Operation
  • [x] Execute sequential or concurrent blocks
  • [x] Execute DispatchWorkItem
  • [x] Kommand state
  • [x] watchOS compatible
  • [x] tvOS compatible
  • [x] Swift 2 version
  • [x] Objective-C version

Installation

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

pod 'Kommander'

For Swift 2 compatibility use:

pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.3.0-swift2'

For Objective-C compatibility use:

pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.2.3-objc'

Or you can install it with Carthage:

github "intelygenz/Kommander-iOS"

Or install it with Swift Package Manager:

dependencies: [
    .Package(url: "https://github.com/intelygenz/Kommander-iOS.git")
]

Usage

Kommander().makeKommand {
    // Your code here
}.execute()
Kommander().makeKommand { () -> String in
    return "Your string"
}.onSuccess { yourString in
    print(yourString)
}.execute()
Kommander().makeKommand {
    throw CocoaError(.featureUnsupported)
}.onError({ error in
    print(String(describing: error!))
}).execute()
let kommand = Kommander().makeKommand { () -> Any? in
    // Your code here
}.onSuccess { result in
    // Your success handling here
}.onError({ error in
    // Your error handling here
}).execute()

kommand.cancel()

Etc.

  • Contributions are very welcome.
  • Attribution is appreciated (let’s spread the word!), but not mandatory.

Authors

alexruperez, alejandro.ruperez@intelygenz.com

juantrias, juan.trias@intelygenz.com

RobertoEstrada, roberto.estrada@intelygenz.com

License

Kommander is available under the MIT license. See the LICENSE file for more info.