Releases: onevcat/Kingfisher
Releases · onevcat/Kingfisher
8.8.1 - Fresh Cache
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
CancellationTokenis now used to properly short-circuit stale disk cache work at multiple checkpoints. #2497 #2495 @onevcat @FaizanDurrani
8.8.0 - Background Relief
Add
- Add
AnimatedImageView.purgeFrames(keepCurrentFrame:)and opt-inpurgeFramesOnBackgroundto 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
AnimatedImageViewdeinit compatibility for older Swift 6 toolchains without isolated deinit support. #2485 @onevcat - Apply
retryStrategyinImagePrefetcherload path so retry options also work during prefetching. #2487 @TastyHeadphones - Fix non-Sendable
RetryDecisioncapture warning in ImagePrefetcher retry flow under Swift 6 concurrency checks. #2488 @onevcat
8.7.0 - Async Expedition
Add
- Add opt-in async cache type check API
imageCachedTypeAsyncto avoid synchronous disk access on the calling thread. #2480 #2323 @onevcat @jotai-coder - Add optional
cacheKeyparameter forPhotosPickerItemImageDataProviderandPHPickerResultImageDataProviderfor better cache control. #2479 @onevcat - Support using an
OperationQueueor equivalent interface inCallbackQueuefor 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.handleCompletewhen iterating sources during concurrent mutation. #2465 @erichoracek - Fix GIF disk cache losing animation when original data is missing. Now
DefaultCacheSerializerprefers embedded GIF bytes over re-encoding to PNG. #2454 #2453 @onevcat @rztime - Fix a crash when accessing
KingfisherWrapper<UIApplication>.sharedin 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
ImagePrefetchercallback types as@Sendableto fix Swift 6 concurrency warnings. - Deprecate SwiftUI
.onFailureImagemodifier in favor of.onFailureView. #2451 #2449 @onevcat @sagarrai21802
8.6.2 - High Fidelity
Fix
- Improve macOS graphics context for high bit depth to support rendering 10-bit images. #2448 #2447 @onevcat @BobbyRohweder
8.6.1 - Atomic
Fix
- Fix non-atomic task creation for concurrent same-URL requests to prevent callback loss. #2444 @darkbrewx
8.6.0 - Retryfisher
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
Add
- Add SwiftUI native transition support for KFImage with
loadTransition(_:animation:)method. #2410 @darkbrewx @onevcat
Fix
- Fix documentation for
loadDiskFileSynchronouslyin SwiftUI components to clarify default synchronous behavior. #2411 @pinkjuice66 @onevcat - Fix BorderImageProcessor.identifier implementation. #2409 @teameh
8.4.0 - Failure Fisher
8.3.3 - Swift Harmony
Add
- Update Carthage support for both watchOS and iOS platforms for earlier versions of v8 temporarily #2399 @wolfcon
Fix
- Fix Swift Task Continuation Misuse issue with Swift 6 compatible solution #2398 @VladimirHorky @onevcat
- Fix ThumbnailImageDataProvider image orientation issue #2396 @gongzhang @onevcat
- Remove incorrect watchOS available declaration #2382 @wolfcon @onevcat
8.3.2 - Tariffisher
Fix
- Memory cache cleanning timer will now be correctly set when the cache configuration is set. #2376 @erincolkan
- Add
BUILD_LIBRARY_FOR_DISTRIBUTIONflag to podspec file. Now CocoaPods build can produce stabible module. #2372 @gquattromani - Refactoring on cache file name method in
DiskStorage. #2374 @NeoSelf1