dis

Dispatch

Just a tiny library to make using GCD easier and intuitive

Showing:

Popularity

Downloads/wk

0

GitHub Stars

179

Maintenance

Last Commit

4yrs ago

Contributors

5

Package

Dependencies

0

License

MIT

Categories

Readme

Dispatch ## Build Status
BranchStatus
masterBunch Status
developBunch Status

Dispatch

Swift 3.0 Platforms License

Carthage compatible Podspec

codebeat badge codecov

Note:

Dispatch requires swift 3.0. Use version 1.0.0 for swift 2.3 or version 0.9.8 for swift 2.2.

Installation

CocoaPods

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

pod 'Dispatch'

Carthage


Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate Dispatch into your Xcode project using Carthage, specify it in your Cartfile:

github "Swiftification/Dispatch"

Run carthage update to fetch the Dispatch library and drag into your Xcode project.

And then simply

import DispatchFramework

And your good to go!

Manually

  1. Download and drop Dispatch.swift anywhere you like in your project.
  2. That's it.

Usage

Basic

Dispatch.async(dispatch_get_main_queue()) {
  //Code to be run on the main thread
}
Or using the helpers provided by Dispatch.Queue enum
Dispatch.async(Queue.main) {
  //Code to be run on the main thread
}
Or using the overloaded method to run on the main thread
Dispatch.async {
  //Code to be run on the main thread
}

Types of Dispatch

Async

Dispatch.async(Queue.main) {
  //Code to be run on the main thread
}

Sync

let someCustomQueue = dispatch_queue_create("custom.queue.dispatch", DISPATCH_QUEUE_CONCURRENT)
Dispatch.sync(someCustomQueue) {
  //Code to be synchronously on someCustomQueue
}

After

Dispatch.after(1.0, queue: Queue.main) {
  //Code to be run on the main thread after 1 second
}
Or using the overloaded method to run on the main thread
Dispatch.after(1.0) {
  //Code to be run on the main thread after 1 second
}

Once

let token : dispatch_once_t
Dispatch.once(&token) {
  //Code to be run only once in App lifetime
}

Queue Helpers

Main queue

let mainQueue = Queue.main 

Custom queue

let customConcurrentQueue = Queue.custom("custom.concurrent.queue.dispatch", Queue.Atribute.concurrent)
let customSerialQueue = Queue.custom("custom.serial.queue.dispatch", Queue.Atribute.serial)

Global queues

let priority = 0 // or you use one of the Global priorities (ex: Queue.Priority.UserInteractive)
let globalQueue = Queue.global(priority)

// For comodity there are helpers for getting the Global queues

let globalUserInteractiveQueue = Queue.globalUserInteractive
let globalUserInitiatedQueue = Queue.globalUserInitiated
let globalUtilityQueue = Queue.globalUtility
let globalBackgroundQueue = Queue.globalBackground

TODO

  • Carthage compatible
  • Chainable methods
  • Travis CI
  • Unit Tests
  • More examples

Communication

  • If you find a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Authors

License

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100