Latest 0.1.1
Homepage https://github.com/robertmogos/RMImageLoader
License MIT
Platforms ios 9.0
Authors

RMImageLoader is a library for background image-loading.

Features

  • Background image-loading
  • Download cancelation
  • Caching in memory and on disk
  • Extension for UIImageView

Description

RMImageLoader allows you to download asynchronously images. In order to improve and avoid the number of connection, each image that it is being downloaded can have multiple subscribers. A subscriber is an AnyObject that is interested in the image. This way, you avoid downloading the same image several times. The download can’t be canceled unless all the subcribers decided not to download it anymore. Otherwise, any subscriber that cancels it, will just be ignored when the download is ready.

Usage

Add to your Podfile

pod 'RMImageLoader' 

In your class

import RMImageLoader

Loading images

Requesting an image for a UIImageView

RMImageLoader.default.loadImage(url: yourUrl, subscriber: imageView, success: { image in
  imageView.image = image
}, failure: { _ in
  print("ouch")
})

or even faster

imageView.load(url: yourUrl)

Cancel a request

imageView.cancel(url: yourUrl)

or

RMImageLoader.default.cancel(url: yourUrl, forSubscriber: imageView)

Custom usage

RMImageLoader

The default configuration can be used which will use the Retriever to download the images but any can be initialized with any class that implements the Retrieve protocol

Retriever

The default implementation is using an NSCache to store the processed data:

  • 100 MB disk space
  • 20 MB memory space

You can inject your own URLSessionConfiguration

Latest podspec

{
    "name": "RMImageLoader",
    "module_name": "RMImageLoader",
    "version": "0.1.1",
    "license": "MIT",
    "summary": "Async image loading",
    "homepage": "https://github.com/robertmogos/RMImageLoader",
    "authors": {
        "Robert D. Mogos": "[email protected]"
    },
    "source": {
        "git": "https://github.com/robertmogos/RMImageLoader.git",
        "tag": "0.1.1"
    },
    "platforms": {
        "ios": "9.0"
    },
    "source_files": [
        "RMImageLoader/RMImageLoader/*.swift"
    ],
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This