Asynchronous image downloader and cache for iOS.
Vinci is an asynchronous image downloader and cache for iOS.
Note: Vinci is early in development and, although stable, is missing some important features.
UIImageView
binding.You can use the shared Vinci
singleton and the request
factory method to fetch an image like so:
Vinci.shared.request(with: url) { (image, isCached) in
imageView.image = image
}
A Vinci
instance can also initialized with custom URLSession
and VinciCache
instances:
let session = URLSession.shared
let cache = VinciCache()
let vinci = Vinci(session: session, cache: cache)
You can pass an optional array of Modifiers
to change the image before it’s passed to the completion hander:
let modifiers: [Modifier] = [
MonoModifier(color: UIColor.gray, intensity: 1.0),
ScaleModifier(size: imageView.frame.size)
]
Vinci.shared.request(with: url, modifiers: modifiers) { (image, isCached) in
imageView.image = image
}
Vinci includes a number of modifiers by default:
ScaleModifier
scales an image to a specific size.MonoModifier
uses CIColorMonochrome
to color tint an image.ClosureModifier
accepts a closure which applies a custom modification.Additional modifiers can be created by implementing the Modifier
protocol.
To run the example project, clone the repo, and run pod install
from the Example directory first.
Vinci is available through CocoaPods. To install it, add the following line to your Podfile:
pod 'Vinci'
Conor Mulligan, conmulligan@gmail.com
Vinci is available under the MIT license. See the LICENSE file for more info.