Releases: kean/Nuke
Nuke 11.6.4
Nuke 12.0 (Beta 4)
- Remove the convenience
LazyImage(url:content:placeholder:)
init method that doesn't offer much compared to the main init and remove public_LazyImageContents
- Fix an issue where if you change the
LazyImage
'sprocessors
orpriority
without also changing the image source, the image wasn't being reloaded - Remove some of the typealises from
NukeUI
- Remove the deprecated APIs in NukeUI
- Add missing scale parameter to init with content
ImageDecoder
now defaults to scale1
for images- Remove
scale
parameter fromLazyImage
init: it's available viaImageRequest
userInfo
Nuke 11.6.3
- Fix warnings in Xcode 14.3
Nuke 12.0 (Beta 3)
ImageCache
uses 20% of available RAM which is quite aggressive. It's a good default on iOS because it clears 90% of the used RAM when entering the background to be a good citizen. But it's not a good default on a Mac where the app is constantly running, and the RAM usage is highly visible. Starting with Nuke 12, the default size is now strictly limited by 512 MB.- Move all video-related code to a separate module
NukeVideo
, so that the users who don't need it, which are the majority, don't need to pay the extra compile time / code size price. With this and other changes in Nuke 12, if you install NukeUI, you are now adding 25% less code to your project compared to Nuke 11. - Remove
ImageContainer.asset
. The asset is now added toImageContainer/userInfo
under the new.videoAssetKey
. - Make
_PlatformImageView
internal (was public) - Fix an issue with
FetchImage/progress
not delivering updates FetchImage/progress
is now created lazily- Remove callbacks from
FetchImage
FetchImage/image
now returnsImage
instead ofPlatformImage
Nuke 12.0 (Beta 2)
- Extract progress from
FetchImage
to a separate observable object and reduce a number ofbody
reloads - Disable animations by default
See also: Nuke 12.0 (Beta 1) changes
Nuke 12.0 (Beta 1)
Warning: This is an early preview. The documentation hasn't been updated yet.
NukeUI 2.0
NukeUI started as a separate repo, but the initial production version was released as part of Nuke 11. Let's call it NukeUI 1.0. The framework was designed before the AsyncImage
announcement and had a few discrepancies that made it harder to migrate from AsyncImage
. This release addresses the shortcomings of the original design.
NukeUI 2.0 was developed closely with the open-source Ice Cubes app for Mastodon, and every single line in LazyImage
was optimized to achieve the best performance possible.
Starting with NukeUI 2.0, LazyImage
uses SwiftUI.Image
to display images and eliminates any discrepancies between LazyImage
and AsyncImage
layout and self-sizing behavior. And the previously used NukeUI.Image
was removed so it no longer conflicts with SwiftUI.Image
.
NukeUI 1.0 tried to do too much in terms of rendering images which is not its primary responsibility β loading images is. The original design resulted in a convoluted and poorly composable API where LazyImage
would know too much about how the images are rendered. This is no longer the case.
LazyImage
now usesSwiftUI.Image
for rendering images and the layout/sizing behavior matchesAsyncImage
exactly- Remove
Image
,ImageView
,ImageResizingMode
- Add
LazyImage
initializer that acceptscontent
andplaceholder
closures (the same asAsyncImage
) - Add
scale
parameter toLazyImage
initializer - Fix #669:
redacted
not working forLazyImage
- GIF rendering is no longer included in the framework. To enable it, use one of the frameworks that support GIF directly, such as Gifu
- Video support is also disabled by default (this is subject to change)
Warning: GIF and video rendering are now disabled by default
Deprecations
This release also removes the APIs deprecated in the previous versions of the framework
Nuke 11.6.2
- Fix an issue with static GIFs not rendered correctly β #667 by @Havhingstor
Nuke 11.6.1
- Fix #653: ImageView wasn't calling
prepareForReuse
on itsanimatedImageView
Nuke 11.6.0
- Fix #579:
ImageEncoders.ImageIO
losing image orientation - #643 - Fully deprecate previously soft-deprecated
ImageRequestConvertible
- #642 - Add
isCompressionEnabled
option toDataCache
that enables compression using Appleβs lzfse algorithm - Add
ExpressibleByStringLiteral
conformance toImageRequest
- Make compatible with Swift 6 mode
- Now distributed with precompiled xcframeworks as an alternative installation option
Nuke 11.5.3
- Remove DocC files to address #609