Обслуживание изображений с 2015 года.
Загружайте изображения из разных источников и отображайте их в своем приложении с помощью простых и гибких API. Воспользуйтесь преимуществами мощных возможностей обработки изображений и надежной системы кэширования.
Фреймворк прост и компилируется менее чем за 2 секунды¹. Он имеет набор автоматизированных тестов, в два раза превышающий размер кодовой базы, что обеспечивает превосходную надежность. Nuke оптимизирован по производительности, а его передовая архитектура обеспечивает практически неограниченные возможности настройки.
Память и дисковый кеш · Обработка и декомпрессия изображений · Объединение и приоритет запросов · Предварительная выборка · Возобновляемые загрузки · Прогрессивный JPEG · HEIF, WebP, SVG, GIF · SwiftUI · Async/Await
Ошибка : друзья , а не последователи .
Nuke также поддерживается:
Проксимен | Путешествие в прошлое |
Nuke поддерживает Swift Package Manager, который является рекомендуемым вариантом. Если вам это не подходит, вы можете использовать бинарные фреймворки, прилагаемые к выпускам.
В комплект поставки входят четыре модуля, которые вы можете установить в зависимости от ваших потребностей:
Модуль | Описание |
---|---|
Ядерное оружие | Экономичная базовая структура с ImagePipeline , ImageRequest и т. д. |
NukeUI | Компоненты пользовательского интерфейса: LazyImage (SwiftUI) и ImageView (UIKit, AppKit). |
NukeРасширения | Расширения для UIImageView (UIKit, AppKit) |
NukeВидео | Компоненты для декодирования и воспроизведения коротких видеороликов |
Nuke прост в освоении и использовании благодаря обширной документации и современному API.
Вы можете загружать изображения с помощью ImagePipeline
из модуля Lean Core Nuke :
func loadImage() async throws { let imageTask = ImagePipeline.shared.imageTask(with: url) для ожидания прогресса в imageTask.progress { // Обновление прогресса } imageView.image = попробуйте подождать imageTask.image}
Или вы можете использовать встроенные компоненты пользовательского интерфейса из модуля NukeUI :
struct ContentView: View { var body: some View { LazyImage(url: URL(string: "https://example.com/image.jpeg")) }}
Руководство по началу работы — лучшее место для начала изучения этих и многих других API, предоставляемых платформой. Посмотрите Nuke Demo, чтобы увидеть больше примеров использования.
Конвейер изображений легко настроить и расширить. Ознакомьтесь со следующими первоклассными расширениями и пакетами, созданными сообществом.
Имя | Описание |
---|---|
Плагин Alamofire | Замените сетевой уровень на Alamofire. |
NukeWebP | Сообщество . Поддержка WebP, созданная Максимом Колесником. |
Веб-плагин | Сообщество . Поддержка WebP, созданная Ре Косуге. |
Плагин AVIF | Сообщество . Поддержка AVIF, созданная Денисом |
RxNuke | Расширения RxSwift для Nuke с примерами |
Ищете способ регистрации сетевых запросов, включая запросы изображений? Посмотрите Пульс .
Обновление с предыдущей версии? Используйте Руководство по миграции .
Ядерное оружие | Дата | Быстрый | Xcode | Платформы |
---|---|---|---|---|
Ядерное оружие 12.0 | 4 марта 2023 г. | Свифт 5.7 | Хкод 15.0 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Ядерное оружие 11.0 | 20 июля 2022 г. | Свифт 5.6 | Хкод 13.3 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Ядерное оружие 10.0 | 1 июня 2021 г. | Свифт 5.3 | Хкод 12.0 | iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0 |
Начиная с версии 12.3, Nuke также поставляется с поддержкой VisionOS (в бета-версии).
Nuke доступен по лицензии MIT. Дополнительную информацию смотрите в файле ЛИЦЕНЗИИ.
¹ Измерено на MacBook Pro 14 дюймов 2021 г. (10-ядерный M1 Pro)