Skip to content

Reactive extension for the Kingfisher image downloading and caching library

License

Notifications You must be signed in to change notification settings

ppth0608/RxKingfisher

 
 

Repository files navigation

RxKingfisher

RxKingfisher is a Reactive Extension for Kingfisher - a lightweight, pure-Swift library for downloading and caching images from the web.

RxKingfisher Example

It provides Reactive Extensions on top of Kingfisher's .kf namespace, via .kf.rx and introduces two main usages:

Bind URL to Image View

Every Image view supports two different options for binding a URL to an Image view.

optionSelected // Observable<URL>
    .bind(to: image.kf.rx.image(options: [.transition(.fade(0.2))])
    .disposed(by: disposeBag)

OR

optionSelected
    .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)

Retrieve an Image without an Image View

Every KingfisherManager supports fetching an image from a URL, returning a Single<Image>:

tappedButton
    .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.

About

Reactive extension for the Kingfisher image downloading and caching library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 81.1%
  • Ruby 14.4%
  • Shell 4.5%