Avg Release Cycle
12 days ago
- Two error cases under
KingfisherError.CacheErrorReasonto give out the detail error information and reason when a failure happens when caching the file on disk. Check
.cannotSetCacheFileAttributeif you need to handle these errors. #1365
- A 32-bit
Intoverflow when calculating expiration duration when a large
daysvalue is set for
- 🏗 The build config for SwiftUI sub-pod now only applies to the KingfisherSwiftUI scheme. #1368
- Two error cases under
.alternativeSourcesoption to provide a list of alternative image loading
Sources act as a fallback when the original
Sourcedownloading fails where Kingfisher will try to load images from. #1343
.waitForCacheoption now also waits for caching for original image if the
.cacheOriginalImageis also set. #1344
- 0️⃣ Now the
.mainCurrentOrAsyncby default instead of
.untouch. It aligns the behavior of other parts in the framework. #1338
- An issue that causes customize indicator not being placed with correct size. #1345
- 🐎 Performance improvement for loading progressive images. #1332
- 🛠 Fix broken semantic versioning introduced by 5.8.0. #1304
- ✂ Remove implicit animations in SwiftUI when a
.fadeanimation applied in the option. Now Kingfisher respect all animations set by users instead of overwriting it internally. #1301
- 📦 Now project uses KingfisherSwiftUI with Swift Package Manager can be archived correctly. #1300
- ➕ Add support for Swift Package Manager. Now you can build and use Kingfisher with SPM under Xcode 11 and use it in all targets.
- ➕ Add support for iPad Apps for Mac. You can use Kingfisher's UIKit extensions (like
UIImageView) on a catalyst project.
- ➕ Add support for SwiftUI. Build and import KingfisherSwiftUI.framework or contain the "Kingfisher/SwiftUI" subpod, then you can use
KFImageto load image asynchronously.
KFImageprovides a similar interface as
- ➕ Add support for building as a binary framework. A zipped file containing
xcframeworkand related dSYMs is provided in the release page.
diskCacheAccessExtendingExpirationoption to give more control of disk cache extending behavior. #1287
- 🏗 Combine all targets into one. Now Kingfisher is a cross-platform target and you need to specify an SDK to build it.
- 📇 Rename too generic typealias names in Kingfisher, to avoid conflicting with SwiftUI types. Original
Kingfisher.KFCrossPlatformImage. The similar rules are applied to other cross-platform typealias too, such as
- A potential thread issue in
taskIdentifierwhich might cause a crash when using data provider. #1276
- An issue that causes memory shortage when a large number of network images are loaded in a short time. #1270