Skip to content

Releases: kean/Nuke

Nuke 11.6.4

20 Feb 02:40
Compare
Choose a tag to compare
  • Fix #671: ImagePipeline/image(for:) hangs if you cancel the async Task before it is started. Thanks @muukii for reporting and providing a sample.

Nuke 12.0 (Beta 4)

19 Feb 04:46
Compare
Choose a tag to compare
Nuke 12.0 (Beta 4) Pre-release
Pre-release
  • 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's processors or priority 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 scale 1 for images
  • Remove scale parameter from LazyImage init: it's available via ImageRequest userInfo

Nuke 11.6.3

19 Feb 04:06
Compare
Choose a tag to compare
  • Fix warnings in Xcode 14.3

Nuke 12.0 (Beta 3)

18 Feb 22:53
Compare
Choose a tag to compare
Nuke 12.0 (Beta 3) Pre-release
Pre-release
  • 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 to ImageContainer/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 returns Image instead of PlatformImage

Nuke 12.0 (Beta 2)

18 Feb 02:00
Compare
Choose a tag to compare
Nuke 12.0 (Beta 2) Pre-release
Pre-release
  • Extract progress from FetchImage to a separate observable object and reduce a number of body reloads
  • Disable animations by default

See also: Nuke 12.0 (Beta 1) changes

Nuke 12.0 (Beta 1)

10 Feb 00:00
Compare
Choose a tag to compare
Nuke 12.0 (Beta 1) Pre-release
Pre-release

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 uses SwiftUI.Image for rendering images and the layout/sizing behavior matches AsyncImage exactly
  • Remove Image, ImageView, ImageResizingMode
  • Add LazyImage initializer that accepts content and placeholder closures (the same as AsyncImage)
  • Add scale parameter to LazyImage initializer
  • Fix #669: redacted not working for LazyImage
  • 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

09 Feb 22:30
Compare
Choose a tag to compare
  • Fix an issue with static GIFs not rendered correctly – #667 by @Havhingstor

Nuke 11.6.1

05 Feb 23:32
Compare
Choose a tag to compare
  • Fix #653: ImageView wasn't calling prepareForReuse on its animatedImageView

Nuke 11.6.0

27 Jan 21:56
Compare
Choose a tag to compare
  • Fix #579: ImageEncoders.ImageIO losing image orientation - #643
  • Fully deprecate previously soft-deprecated ImageRequestConvertible - #642
  • Add isCompressionEnabled option to DataCache that enables compression using Apple’s lzfse algorithm
  • Add ExpressibleByStringLiteral conformance to ImageRequest
  • Make compatible with Swift 6 mode
  • Now distributed with precompiled xcframeworks as an alternative installation option

Nuke 11.5.3

04 Jan 20:30
Compare
Choose a tag to compare
  • Remove DocC files to address #609