All Versions
Latest Version
Avg Release Cycle
21 days
Latest Release
42 days ago

Changelog History
Page 6

  • v5.0.1 Changes

    December 17, 2018

    ๐Ÿ›  Fix

    • Retrieving images from cache now respect options callbackQueue setting. #1066
    • A crash when passing zero or negative size to DownsamplingImageProcessor. #1073

  • v5.0.0 Changes

    December 08, 2018

    โž• Add

    • โž• Add Result type to Kingfisher. Now all callbacks in Kingfisher are using Result instead of tuples. This is more future-friendly and provides a modern way to make error handling better.
    • ๐Ÿ‘‰ Make KingfisherError much more elaborate and accurate. Instead of simply provides the error code, now KingfisherError contains error reason and necessary associated values. It will help to understand and track the errors easier.
    • ๐Ÿ‘ Better cache management by separating memory cache and disk cache to their own storages. Now you can use MemoryStorage and DiskStorage as the ImageCache backend.
    • Image cache of memory storage would be purged automatically in a certain time interval. This reduce memory pressure for other parts of your app.
    • The ImageCache is rewritten from scratch, to get benefit from new created MemoryStorage and DiskStorage. At the same time, this hybrid cache abstract keeps most API compatibility from the earlier versions.
    • Now the ImageCache can receive only raw Data object and cache it as needed.
    • ๐ŸŽ A KingfisherParsedOptionsInfo type to parse KingfisherOptionsInfoItems in related API. This improves reusability and performance when handling options in Kingfisher.
    • An option to specify whether an image should also prefetched to memory cache or not.
    • ๐Ÿ”€ An option to make the disk file loading synchronously instead of in its own I/O queue.
    • Options to specify cache expiration for either memory cache or disk cache. This gives you a chance to control cache lifetime in a per-task grain size.
    • โž• Add a default maximum size for memory cache. Now only at most 25% of your device memory will be used to kept images in memory. You can also change this value if needed.
    • An option to specify a processing queue for image processors. This gives your flexibility if you want to use main queue or if you want to dispatch the processing to a different queue.
    • A DownsamplingImageProcessor for downsampling an image to a given size before loading it to memory.
    • โž• Add ImageDataProvider protocol to make it possible to provide image data locally instead of downloading from network. Several concrete types are provided to load images from data format. Use LocalFileImageDataProvider to load an image from a local disk path, Base64ImageDataProvider to load image from a Base64 string representation and RawImageDataProvider to provide a raw Data object.
    • ๐Ÿ‘ A general Source protocol to define from where the image should be loaded. Currently, we support to load an image from ImageDataProvider or from network now.

    ๐Ÿ›  Fix

    • Now CommonCrypto from system is used to calculate file name from cache key, instead of using a customized hash algorithm.
    • An issue which causes ImageDownloader crashing when a lot of downloading tasks running at the same time.
    • ๐Ÿ’ป All operations like image pretching and data receiving should now be performed in non-UI threads correctly.
    • ๐ŸŽ Now KingfisherCompatible uses struct for kf namespacing for better performance.

  • v4.10.1 Changes

    November 03, 2018

    ๐Ÿ›  Fix

    • โž• Add Swift 4 compatibility back.
    • Increase watchOS target to 3.0 in podspec.

  • v4.10.0 Changes

    September 20, 2018

    โž• Add

    • ๐Ÿ‘Œ Support for building with Xcode 10 and Swift 4.2. This version requires Xcode 10 or later with Swift 4.2 compiler.

    ๐Ÿ›  Fix

    • ๐Ÿ‘Œ Improve performance when an invalide HTTP status code received. #985

  • v4.9.0 Changes

    September 04, 2018

    โž• Add

    • โž• Add a waitForCache option to allowing cache callback called after cache operation finishes. #963

    ๐Ÿ›  Fix

    • Animated image now will recognize .once and .finite(1) the same thing. #982
    • Replace class-only protocol keyword with AnyObject as Swift convention. #983
    • A wrong cache callback parameter when storing cache with background decoding. #986
    • Access downloadHolder in a serial queue to avoid racing. #984

  • v4.8.1 Changes

    July 26, 2018

    ๐Ÿ›  Fix

    • ๐Ÿ›  Fix a performance issue when prefetching images by moving related operation away from main queue. #957
    • ๐Ÿ‘Œ Improvement on stability of some test cases.

  • v4.8.0 Changes

    May 15, 2018

    โž• Add

    • WKInterfaceImage setting image interface for watchOS. #913
    • A new delegate method for watching ImageDownloader object completes a downloading request with success or failure. #901

    ๐Ÿ›  Fix

    • ๐Ÿ‘‰ Use newly created operation queue for downloader.
    • Filter.init(tranform:) is renamed to Filter.init(transform:)
    • Some internal minor fix on constant and typo, etc.

  • v4.7.0 Changes

    April 06, 2018

    โž• Add

    • ImageDownloader now contains a method cancelAll to cancel all downloading tasks. #894
    • ๐Ÿ‘Œ Supports Swift 4.1 and Xcode 9.3. #889

  • v4.6.4 Changes

    March 20, 2018

    ๐Ÿ›  Fix

    • An issue caused customize activity indicator not working for Swift 4. #872
    • Specify Swift compiler version explicity in pod spec file for CocoaPods 1.4. #875

  • v4.6.3 Changes

    March 01, 2018

    ๐Ÿ›  Fix

    • ๐Ÿšš Move demo project out from Kingfisher framework project. #867
    • An issue that caused stack overflow when prefetching too many images, while they are already cached. #866