Skip to content

Releases: onevcat/Kingfisher

8.0.0-alpha.3

10 Jul 15:36
8.0.0-alpha.3
89c2f8f
Compare
Choose a tag to compare
8.0.0-alpha.3 Pre-release
Pre-release

Kingfisher 8 is a major upgrade and contains breaking changes to previous versions. Check this for more information.

Fix

  • Fix a compiling error for Xcode 16 beta 3 caused by the new compiler. @onevcat #2270

8.0.0-alpha.2

26 Jun 12:37
8.0.0-alpha.2
e1fbcd2
Compare
Choose a tag to compare
8.0.0-alpha.2 Pre-release
Pre-release

Kingfisher 8 is a major upgrade and contains breaking changes to previous versions. Check this for more information.

Fix

  • Change language version to Swift 5.0 for main target. This ensures compatibility with Xcode 15 while retaining strict concurrency checks.
  • Update the pre-built binaries with Xcode 16 beta 2.

8.0.0-alpha.1

13 Jun 14:42
8.0.0-alpha.1
bb4e6ec
Compare
Choose a tag to compare
8.0.0-alpha.1 Pre-release
Pre-release

Major Update Notice

We are excited to announce Kingfisher 8, a major update that brings several important enhancements and features to our library:

  • Full Support for Swift Concurrency: Kingfisher 8 now fully supports Swift concurrency under strict mode, allowing for more efficient and simplified asynchronous programming.
  • Compatibility with Swift 6: This update includes support for Swift 6, aligning Kingfisher with the latest advancements in the Swift programming language.
  • Language Backward Compatibility: Despite the new updates, Kingfisher 8 continues to support Swift 5, ensuring that your existing projects remain compatible.

Warning

This version introduces breaking changes. If you are planning to upgrade, please review the migration guide to ensure a smooth transition. The migration guide is available here: Migration to Kingfisher 8.

Kingfisher v8 is currently in an early alpha release. While most of the development work has been completed, the library may undergo further changes to adapt to any updates in future versions of Xcode 16.

We warmly invite you to try out this version to take full advantage of the new Swift language features and improvements. Should you encounter any issues or have feedback, please do not hesitate to open an issue. Your feedback and support are crucial in helping evolve the library.

Happy coding!

Add

  • Full Swift 6 support. Now Kingfisher compiles with both Swift 5 and Swift 6 language mode. #2259 @onevcat
  • Strict Swift Concurrency prepared. All necessary public APIs in Kingfisher are now async compatible. Kingfisher is also now built under strict concurrency mode. #2239 @onevcat
  • Xcode 16 support. Explicitly built modules option is enabled and now Kingfisher can get better build performance under Xcode 16. #2260 @onevcat
  • Refined documentation and beautified tutorials with DocC. Check it out here! #2160 @onevcat

Fix

  • MD5 is deprecated by the system. Now the hash method for file URL is replaced with SHA256. #2117 @kmaschke85
  • Now the view extension methods are created in a more generic way, which provides better compatibility and extensibility. #2244 @Mx-Iris @onevcat

Prebuilt Frameworks

To accommodate users of both Xcode 15 and Xcode 16, Kingfisher will offer two variants of the prebuilt framework on the release page:

  • Kingfisher-${version}.zip: Built with the Swift 5 compiler in Xcode 15, this framework is compatible with both Xcode 15 and 16. It does not include optimizations from Swift 6 and Xcode 16.
  • Kingfisher-swift6-${version}.zip: Built with the Swift 6 compiler in Xcode 16, this binary is exclusively for use with Xcode 16. As we eventually phase out support for Xcode 15, the Swift 5 variant will be discontinued in future releases.

This information pertains only to users who prefer to install Kingfisher with the xcframework bundle. If you are building Kingfisher from source, such as through Swift Package Manager or CocoaPods, you have the flexibility to choose the Xcode version and the language version you prefer. Kingfisher v8 is compatible with both Swift 5 (Xcode 15 and Xcode 16 with Swift 5 language version) and Swift 6 (Xcode 16).

7.12.0 - Lucky Seven

10 Jun 13:31
7.12.0
Compare
Choose a tag to compare

Add

  • Mark the removeSizeExceededValues method in DiskStorage as public. Now it is possible to call this method to trigger a cleanup of the disk cache manually. #2214 @nickruddeni
  • A new PHPickerResultImageDataProvider for loading and caching images from PHPickerResult. #2233 @nuomi1
  • An option of reducePriorityOnDisappear for SwiftUI. It sets a lower priority for the image download task when the view disappears, and restore it when re-appears. #2211 @Aelx-Vaiman

Fix

  • Some improvements for documentation grammar and typos. #2236 @FlyingCaiChong
  • Use .process for the PrivacyInfo.xcprivacy in SPM to follow the practice suggested by Apple. #2243 @BorysKhl @onevcat
  • An issue that the file extension was not correctly retrieved for calculating hash file name when autoExtAfterHashedFileName is set to true. #2250 @freezy7

7.11.0 - visionOS for CocoaPods

12 Feb 13:51
7.11.0
Compare
Choose a tag to compare

Add

  • Add visionOS as a supported platform when being used in CocoaPods. For other dependency managers, it was already supported from previous versions. #2205 @onevcat @grachyov
  • A name for background task started for image cache cleanup. #2201 @antohisorin

7.10.2 - GIF crash fix

11 Jan 14:05
7.10.2
Compare
Choose a tag to compare

Fix

  • An issue that loading the same GIF image in differnet image views may crash the app. #2194
  • A build script issue that exported the xcframeworks does not have the correct cert signing. #2179
  • In iOS 13 and earlier, the new Swift runtime fails to convert Any? to a protocol value. #2182

7.10.1 - Compilation & Infinity

09 Dec 12:51
7.10.1
Compare
Choose a tag to compare

Fix

  • Now the CarPlay support (CPListItem) compiles again for iOS SDK 14.0 to 14.4. It was because an undocumented API change in the CPListItem property. #2172 @brendonjkding
  • Fix an infinite View refreshing loop when KFImage is set with startLoadingBeforeViewAppear to true and the loading keeping fails. #2169 @onevcat @sisoje @mirkokg

7.10.0 - Privacy Manifest

29 Oct 14:07
7.10.0
Compare
Choose a tag to compare

Add

Fix

  • Use the trait collection to determine animated image scale, instead of the deprecated UIScreen API. #2157 @hyun99999
  • An issue that a local AV asset creates multiple disk caches when connected to Xcode during Debug phase. #2158 @onevcat @elijahdou
  • The disk cache now is still availiable when the whole cache folder is removed by external operations instead of the methods in Kingfisher. #2162 @onevcat @uclort
  • Some documentation and CI impro/vements.

7.9.1 - Lastest Xcode 15 beta

26 Aug 04:51
7.9.1
Compare
Choose a tag to compare

Fix

  • Update to the terminology for the latest Xcode 15 beta. It prevents building failing and warnings from previous beta versions. #2123 @simonbs
  • A misused reason in the privacy manifest file. Now Kingfisher should declare the reason of using file creation and access time correctly. (However, the manifest file mechanism of SDK seems not working yet in Xcode 15 beta 7) #2135 @CloudosaurusRex @onevcat
  • Some warnings which happens when building xcframework. This prevents them from becoming errors in the coming Swift 6. #2136

7.9.0 - visionOS & Xcode 15

29 Jul 01:33
7.9.0
Compare
Choose a tag to compare

Add

  • Add visionOS as support target. Now Kingfisher can run natively on visionOS, in both UIKit or SwiftUI mode. #2103
  • Add private manifest file (PrivacyInfo.xcprivacy) to the project to meet Apple's requirement of describing data collected and use of required reason API. #2104
  • Support digital signature in xcframework. Now the xcframework of Kingfisher is signed with the Apple Developer ID of the maintainer team. #2106
  • A public initializer of ImageDownloadResult. This allows overriding side to construct and return a valid download result. #2107 @kmaschke85

Fix

  • Some documentation fixes.

In this version, visionOS support is not yet available when integrating with CocoaPods. It requires the new version of CocoaPods 1.13.0 and not yet released. (CocoaPods/CocoaPods#11965)