Nuke
Nuke 12.8
自 2015 年起提供图像
使用简单灵活的 API 加载来自不同来源的图像并在您的应用程序中显示它们。利用强大的图像处理功能和强大的缓存系统。
该框架很精简,编译时间不到 2 秒。它拥有两倍于代码库大小的自动化测试套件,确保卓越的可靠性。 Nuke 针对性能进行了优化,其先进的架构几乎实现了无限的定制可能性。
内存和磁盘缓存·图像处理和解压缩·请求合并和优先级·预取·可恢复下载·渐进式 JPEG · HEIF、WebP、SVG、GIF · SwiftUI ·异步/等待
失误:朋友而不是追随者。
Nuke 还受到以下支持:
代理人 | 退格旅行 |
Nuke 支持 Swift Package Manager,这是推荐的选项。如果这对您不起作用,您可以使用版本附带的二进制框架。
该软件包附带四个模块,您可以根据需要安装:
模块 | 描述 |
---|---|
核弹 | 包含ImagePipeline 、 ImageRequest 等的精益核心框架 |
核弹用户界面 | UI 组件: LazyImage (SwiftUI) 和ImageView (UIKit、AppKit) |
Nuke扩展 | UIImageView 的扩展(UIKit、AppKit) |
核视频 | 短视频解码播放组件 |
Nuke 凭借其丰富的文档和现代化的 API,易于学习和使用。
您可以使用精益核心Nuke模块中的ImagePipeline
加载图像:
func loadImage() async throws { let imageTask = ImagePipeline.shared.imageTask(with: url) for 在 imageTask.progress 中等待进度 { // 更新进度 } imageView.image = 尝试等待 imageTask.image}
或者您可以使用NukeUI模块中的内置 UI 组件:
struct ContentView: View { var body: some View { LazyImage(url: URL(string: "https://example.com/image.jpeg")) }}
入门指南是开始了解框架提供的这些 API 和许多其他 API 的最佳位置。查看Nuke 演示以获取更多使用示例。
图像管道易于定制和扩展。查看以下由社区构建的一流扩展和包。
姓名 | 描述 |
---|---|
阿拉莫火插件 | 用 Alamofire 替换网络层 |
NukeWebP | 社区。 WebP 支持,由 Maxim Kolesnik 构建 |
WebP 插件 | 社区。 WebP 支持,由 Ryo Kosuge 构建 |
AVIF 插件 | 社区。 AVIF 支持,由 Denis 构建 |
接收核弹 | Nuke 的 RxSwift 扩展及示例 |
正在寻找一种记录网络请求(包括图像请求)的方法?查看脉冲。
从以前的版本升级?使用迁移指南。
核弹 | 日期 | 迅速 | Xcode | 平台 |
---|---|---|---|---|
核弹12.0 | 2023 年 3 月 4 日 | 斯威夫特 5.7 | Xcode 15.0 | iOS 13.0、watchOS 6.0、macOS 10.15、tvOS 13.0 |
核弹11.0 | 2022 年 7 月 20 日 | 斯威夫特 5.6 | Xcode 13.3 | iOS 13.0、watchOS 6.0、macOS 10.15、tvOS 13.0 |
核弹10.0 | 2021 年 6 月 1 日 | 斯威夫特 5.3 | Xcode 12.0 | iOS 11.0、watchOS 4.0、macOS 10.13、tvOS 11.0 |
从版本 12.3 开始,Nuke 还附带了 VisionOS 支持(测试版)
Nuke 可在 MIT 许可下使用。有关详细信息,请参阅许可证文件。
1 在 MacBook Pro 14" 2021(10 核 M1 Pro)上测量