Releases: kean/Nuke
Releases Β· kean/Nuke
Nuke 12.7 (Beta 1)
π Call for Testing. This release contains some major internal changes to the core APIs. Please help with testing the newly introduced and the existing ImagePipeline
APIs, and report any issues before it gets shipped.
This release contains some major improvements to the Structured Concurrency support and introduced a re-engineered ImagePipeline
.
- Add
previews: AsyncStream<ImageResponse>
,progress: AsyncStream<Progress>
,image: PlatformImage async
andreponse: ImageResponse async
directly toImageTask
and deprecateAsyncImageTask
. These APIs have zero cost unless you use them. - Add
ImageTask.Event
and addevents: AsyncStream<Event>
toImageTask
for observing all events associated with the image loading. - Improve the support for
AsyncStream
: a new stream is created every time you access the respective property to make it easier to have multiple consumers. - Add
ImagePipelineDelegate/imageTask(:didReceiveEvent:pipeline:)
and deprecate the previous methods it replaced (context: these methods were introduced in Nuke 11.0 as the initial and misguided attempt at Structured Concurrency support that tried to borrow from theURLSession
API design) - (Internal) Rework
ImagePipeline
that accumulated a lot of cruft after the introduction of data tasks, Combine, Async/Await, and AsyncStream support in the previous releases. - Deprecate
ImagePipeline/loadData(with:)
andImagePipeline/data(with:)
methods that acceptURL
as parameters β use theImageRequest
variants instead (these are rarely used and low-level APIs that don't require convenience variants) - Remove
@discardableResult
fromImagePipeline/data(with:) async throws
β it was never meant to be there - Rename
ImageTask/progress
toImageTask/currentProgress
(warning: this is a small breaking change in the API) - Fix some of the Strict Concurrency Checking & Swift 6 warnings preparing for the upcoming Swift releases
- Fix documentation for
AsyncImageTask/previews
that was previously specifying that it was delivering the previews and the final image β it's only the previews.
Nuke 12.6
Fixes
- Fix an issue with an optimization that is supposed to skip decompression if one or more processors are applied
- Fix a
[Decompressor] Error -17102 decompressing image -- possibly corrupt
console error message when usingImagePipeline.Configuration.isUsingPrepareForDisplay
(disabled by default). The pipeline will now skip decompression for.png
. - Fix #705 with integration between thumbnail options (link) and original data caching: the original data is now stored without a thumbnail key
- Fix an issue where
.storeAll
and.automatic
cache policies would not store the thumbnail data - Fix #746 an issue with
ImageRequest.UserInfoKey.scaleKey
not interacting correctly with coalescing - Fix #763 SwiftUI Warning: Accessing StateObject's object without being installed on a View when using
onStart
Changes
- Add support for initializing
ImageProcessors.CoreImageFilter
withCIFilter
instances (fixes #758 ) - Add support for disk cache lookup for intermediate processed images (as opposed to only final and original as before)
- Add an optimization that loads local resources with
file
anddata
schemes quickly without usingDataLoader
andURLSession
. If you rely on the existing behavior, this optimization can be turned off using theisLocalResourcesSupportEnabled
configuration option. #779 - Update the infrastructure for coalescing image-processing tasks to use the task-dependency used for other operations
Deprecations
- Deprecate
ImagePipeline.Configuration.dataCachingQueue
and perform data cache lookups on the pipeline's queue, reducing the amount of context switching
Nuke 12.5
What's Changed
- Fix Xcode 15.3 concurrency warnings when using
Screen.scale
by @jszumski in #766 - Add
showPlaceholderOnFailure
parameter to show placeholder in case of image loading failure by @mlight3 in #764 - Fix image loading test on iOS 17 by @woxtu in #768
- Update thumbnail key value for
ImageRequest
by @woxtu in #769 - Remove trailing whitespaces by @woxtu in #767
- Apply
if let
shorthand syntax by @mlight3 in #762
New Contributors
- @AndrewSB made their first contribution in #755
- @mlight3 made their first contribution in #762
- @jszumski made their first contribution in #766
Full Changelog: 12.4.0...12.5.0
Nuke 12.4
Nuke 12.3
What's Changed
- Add support for visionOS by @bobek-balinek in #743
New Contributors
- @bobek-balinek made their first contribution in #743
Full Changelog: 12.2.0...12.3.0
Nuke 12.2
What's Changed
- Add another file type signature for
.m4v
files by @leonid-shevtsov in #735 - Added the
onStart
callback toLazyImage
by @urbaneewe in #736
New Contributors
- @leonid-shevtsov made their first contribution in #735
- @urbaneewe made their first contribution in #736
Full Changelog: 12.1.6...12.2.0
Nuke 12.1.6
- Improve
ImageCache
(memory cache) performance by 20% - Improve
NukeExtensions
performance by 5% - Update the code to support future visionOS releases by switching to
canImport
where possible
Nuke 12.2 (Beta 2)
- Fix compilation visionOS errors on Xcode 15 Beta 6
Warning
Swift Package Manager is not supported yet. There seem to be compilation errors when adding .visionOS(.v1)
to the list of the supported versions. More updates coming soon.
Nuke 12.1.5
Nuke 12.1.4
- Upgrade from
CommonCrypto
toCryptoKit
and slightly optimize how cryptographic hashes are converted to strings (used as filenames forDataCache
) - Deprecate
DataCache/isCompressionEnabled
. It was initially added as a general-purpose feature used in Pulse, but it's not recommended to be used with most image formats. DataCache
now performs sweeps less frequently- Minor docs correction β #715 by @tdkn