RxKingfisher
Reactive extension for the Kingfisher image downloading and caching library
**RxKingfisher** is a Reactive Extension for Kingfisher - a lightweight, pure-Swift library for downloading and caching images from the web. The project is written primarily in Swift, distributed under the MIT License license, first published in 2018. Key topics include: image-downloader, ios, kingfisher, reactivex, rxswift.
RxKingfisher is a Reactive Extension for <a href="https://github.com/onevcat/Kingfisher" target="_blank">Kingfisher</a> - a lightweight, pure-Swift library for downloading and caching images from the web.
<p align="center"><img src="https://raw.githubusercontent.com/RxSwiftCommunity/RxKingfisher/main/Images/example.gif" alt="RxKingfisher Example" title="RxKingfisher Example" /></a>It provides Reactive Extensions on top of Kingfisher's .kf namespace, via .kf.rx and introduces two main usages:
Bind URL to Image View by Resource or Source
Every Image view supports two different options for binding a URL to an Image view.
swiftoptionSelected // Observable<Resource> or Observable<Source> .bind(to: image.kf.rx.image(options: [.transition(.fade(0.2))]) .disposed(by: disposeBag)
OR
swiftoptionSelected // Observable<Resource> or Observable<Source> .flatMap { url in imageView.kf.rx.setImage(with: url, options: [.transition(.fade(0.2))]) } .subscribe(onNext: { image in print("Image successfully loaded and set on Image view: \(image)") }) .disposed(by: disposeBag)
Refer
URLis implementingResource(See Kingfisher.Resource.swift)
Retrieve an Image without an Image View
Every KingfisherManager supports fetching an image from a URL, returning a Single<Image>:
swifttappedButton .flatMapLatest { KingfisherManager.shared.rx.retrieveImage(with: urlToImage) } .subscribe(onNext: { image in print("Image successfully loaded: \(image)") }) .disposed(by: disposeBag)
License
RxKingfisher is released under the MIT license. See LICENSE for details.
Contributors
Showing top 8 contributors by commit count.
