Skip to content

Releases: onevcat/Kingfisher

8.8.1 - Fresh Cache

01 Apr 14:56
8.8.1

Choose a tag to compare

Fix

  • Fix stale disk cache retrieval for cancelled or superseded tasks. When rapidly scrolling through large collections, cancelled requests still performed expensive disk cache deserialization and memory promotion, causing excessive memory usage. A CancellationToken is now used to properly short-circuit stale disk cache work at multiple checkpoints. #2497 #2495 @onevcat @FaizanDurrani

8.8.0 - Background Relief

04 Mar 14:46
8.8.0

Choose a tag to compare

Add

  • Add AnimatedImageView.purgeFrames(keepCurrentFrame:) and opt-in purgeFramesOnBackground to reduce animated frame memory while app is backgrounded. #2482 #2445 @onevcat @Ceylo
  • Add KFAnimatedImage.purgeFramesOnBackground(_:) to expose background frame purging in SwiftUI. #2484 @WZBbiao

Fix

  • Fix missing completion callback when original cache reports cached but returns no image. #2481 #2472 @onevcat @hotngui
  • Fix AnimatedImageView deinit compatibility for older Swift 6 toolchains without isolated deinit support. #2485 @onevcat
  • Apply retryStrategy in ImagePrefetcher load path so retry options also work during prefetching. #2487 @TastyHeadphones
  • Fix non-Sendable RetryDecision capture warning in ImagePrefetcher retry flow under Swift 6 concurrency checks. #2488 @onevcat

8.7.0 - Async Expedition

18 Feb 00:24
8.7.0

Choose a tag to compare

Add

  • Add opt-in async cache type check API imageCachedTypeAsync to avoid synchronous disk access on the calling thread. #2480 #2323 @onevcat @jotai-coder
  • Add optional cacheKey parameter for PhotosPickerItemImageDataProvider and PHPickerResultImageDataProvider for better cache control. #2479 @onevcat
  • Support using an OperationQueue or equivalent interface in CallbackQueue for custom processing queue control. #2474 @onevcat

Fix

  • {"Fix"=>"stabilize cacheKey for PhotosPicker/PHPicker data providers. Now uses stored property with picker-provided identifier or falls back to a per-instance UUID. #2478 @onevcat"}
  • Fix a race condition crash in ImagePrefetcher.handleComplete when iterating sources during concurrent mutation. #2465 @erichoracek
  • Fix GIF disk cache losing animation when original data is missing. Now DefaultCacheSerializer prefers embedded GIF bytes over re-encoding to PNG. #2454 #2453 @onevcat @rztime
  • Fix a crash when accessing KingfisherWrapper<UIApplication>.shared in unit tests. #2450 @maxchuquimia
  • Call async modifier start callback before resume to ensure proper callback timing. #2462 @onevcat
  • Remove ActorBox and harden background task cleanup to fix Sendable/main actor issues. #2459 @onevcat
  • Mark ImagePrefetcher callback types as @Sendable to fix Swift 6 concurrency warnings.
  • Deprecate SwiftUI .onFailureImage modifier in favor of .onFailureView. #2451 #2449 @onevcat @sagarrai21802

8.6.2 - High Fidelity

17 Nov 07:00
8.6.2

Choose a tag to compare

Fix

8.6.1 - Atomic

27 Oct 13:32
8.6.1

Choose a tag to compare

Fix

  • Fix non-atomic task creation for concurrent same-URL requests to prevent callback loss. #2444 @darkbrewx

8.6.0 - Retryfisher

05 Oct 13:28
8.6.0

Choose a tag to compare

Add

  • Add network retry strategy with configurable retry logic for failed downloads. #2439 @komkovla
  • Add network metrics collection for download tasks with download speed measurement and timestamp handling. #2416 @darkbrewx

Fix

  • Fix crash on setting indicator on macOS 26 by changing default indicator style. #2442 @onevcat
  • Fix retain cycle in ImageDownloader when transferring network metrics. #2419 @darkbrewx
  • Upgrade to the latest Xcode recommended settings for improved build configuration. #2417 @onevcat
  • Update CI script to make it work with Xcode 26. #2442 @onevcat

8.5.0 - Transition Dancer

14 Jul 16:26
8.5.0

Choose a tag to compare

Add

  • Add SwiftUI native transition support for KFImage with loadTransition(_:animation:) method. #2410 @darkbrewx @onevcat

Fix

  • Fix documentation for loadDiskFileSynchronously in SwiftUI components to clarify default synchronous behavior. #2411 @pinkjuice66 @onevcat
  • Fix BorderImageProcessor.identifier implementation. #2409 @teameh

8.4.0 - Failure Fisher

03 Jul 13:18
8.4.0

Choose a tag to compare

Add

Fix

  • Fix Sendable warnings in Xcode 26 with stricter concurrency checking. #2400 @onevcat
  • Fix test timing issue in ImageCacheTests for CI stability. #2401 @onevcat
  • Optimize CI workflow to avoid duplicate runs on pull requests. #2402 @onevcat

8.3.3 - Swift Harmony

22 Jun 01:56
8.3.3

Choose a tag to compare

Add

  • Update Carthage support for both watchOS and iOS platforms for earlier versions of v8 temporarily #2399 @wolfcon

Fix

8.3.2 - Tariffisher

10 Apr 14:06
8.3.2

Choose a tag to compare

Fix

  • Memory cache cleanning timer will now be correctly set when the cache configuration is set. #2376 @erincolkan
  • Add BUILD_LIBRARY_FOR_DISTRIBUTION flag to podspec file. Now CocoaPods build can produce stabible module. #2372 @gquattromani
  • Refactoring on cache file name method in DiskStorage. #2374 @NeoSelf1