SwiftyTask alternatives and similar libraries
Based on the "GCD" category.
Alternatively, view SwiftyTask alternatives based on common mentions on social networks and blogs.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SwiftyTask or a related project?
README
SwiftyTask
An extreme queuing system with high performance for managing all task in app with closure
Task
Method Tasking of queued closure on GCD (Grand Central Dispatch).
Requirements
- iOS 10.0+
- Swift 4.1+
- Xcode 9.2+
Installation
CocoaPods
Task is available through CocoaPods. To install it, simply add the following line to your Podfile:
use_frameworks!
pod "SwiftyTask"
or
use_frameworks!
pod 'SwiftyTask', git: 'https://github.com/Albinzr/SwiftyTask', :tag => '1.0.1'
Carthage
To integrate Task into your Xcode project using Carthage, specify it in your Cartfile:
github "CR-Creations/SwiftyTask"
Example
Basics
SwiftyTask.main {
// main thread queue
return "1"
}.background { result in
// background qos class thread queue
print(result)
return "2"
}.userInteractive { result in
// userInteractive qos class thread queue
print(result)
return "3"
}.userInitiated { result in
//userInitiated qos class thread queue
print(result)
return "4"
}.onDefault { result in
// default qos class thread queue
print(result)
return "5"
}.run(.Main) { result in
// called at main thread queue
print(result)
print("Process completion")
}
Custom queue
let queue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)
SwiftyTask.custom(queue) {
//customQueue
return nil
}.onDefault { result in
//default qos class thread queue
return result
}.main { result in
//main thread queue
return result
}.custom(customQueue) { result in
// customQueue
return result
}.run()
After
SwiftyTask.main {
// main thread queue
print("start after: \(Date().description)")
return "1"
}.after(seconds: 5) { result in
// 5 seconds after the previous block
//background qos class thread queue
print(result)
return "after 2: \(Date().description)"
}.userInteractive { result in
//userInteractive qos class thread queue
print(result)
return "after 3: \(Date().description)"
}.after(Queue.Utility, seconds: 5) { result in
//5 seconds after the previous block
// called at utility qos class thread queue
print(result)
return "after 4: \(Date().description)"
}.run(.Main) { result in
// last call main thread queue
print(result)
print("after completion: \(Date().description)")
}
Wait
SwiftyTask.main {
// main thread queue
print("start wait: \(Date().description)")
return "1"
}.wait(seconds: 5).background { result in
// 5 seconds after the previous block
// background qos class thread queue
print("wait 2: \(Date().description)")
return result
}.wait(seconds: 5).main { result in
// 5 seconds after the previous block
// main thread queue
print("wait 3: \(Date().description)")
return result
}.run()
License
MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the SwiftyTask README section above
are relevant to that project's source code only.