Nuke

 
 

Библиотека Swift с открытым исходным кодом для редактирования и обработки изображений

Бесплатный Swift API, который позволяет настраивать конвейер изображений, изменять размер изображений, использовать пользовательский процессор, скруглять углы изображений, загружать изображения и получать их и т. д.

Nuke - это очень полезная платформа Swift с открытым исходным кодом, которая позволяет разработчикам программного обеспечения легко загружать и отображать изображения в своих собственных приложениях Swift. Это требует только одной строки кода для загрузки и отображения изображений в ваших приложениях. Библиотека также включила в себя поддержку нескольких расширенных функций, таких как представление изображений и прогрессивное декодирование, которые могут значительно повысить производительность приложения, а также пользовательский опыт.

Nuke API очень прост в использовании и имеет очень продвинутую архитектуру, которая позволяет разработчикам программного обеспечения думать о практически неограниченных возможностях обработки и настройки изображений. Он включает встроенную поддержку основных форматов изображений, таких как JPEG, PNG, HEIF и многих других. Он также поддерживает кодирование и декодирование изображений с использованием кода Swift.

Библиотека очень богата и включает в себя несколько важных функций для обработки своих изображений с помощью команд Swift, таких как изображения загрузки, настройка конвейера изображений, живые изображения, применение фильтров, таких как русский blur, с использованием пользовательского процессора, круглых углов изображений, RU Memory Cache, HTTP Disk Cache, Aggressive RU Disk Cache, Reloading Images, анимация изображений, декомпрессия Smart background, загрузка Resuming, приоритет запросов, режим данных и многое другое.

Previous Next

Начало работы с Nuke 

Рекомендуемый способ установки Nuke — использование CocoaPods. Пожалуйста, добавьте следующие строки в ваш подфайл

Установите Nuke через CocoaPods.

pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional

Клонируйте последние исходники с помощью следующей команды.

Установите Nuke через GitHub.

$ git https://github.com/kean/Nuke.git 

Загрузка и использование изображений с помощью Swift

Nuke API с открытым исходным кодом предоставляет хорошо организованный и эффективный способ загрузки и использования изображений в ваших приложениях Swift. Чтобы получить изображения, вам нужно передать URL-адрес требуемого изображения, а затем вызвать метод возобновления. Он загрузит запрошенное изображение в фоновом режиме и сообщит о закрытии ответа, когда это будет сделано.

Просмотр изображений в различных способах внутри приложений Swift

// Load images directly using Async/Await
func loadImage() async throws {
    let response = try await pipeline.image(for: url, delegate: self)
}
// Use UI components provided by NukeUI mode
struct ContainerView: View {
    var body: some View {
        LazyImage(url: URL(string: "https://example.com/image.jpeg"))
    }
} 

Prefect Image using Swift API

Prefetching - очень полезная функция, которая позволяет пользователям загружать изображение или другие данные заранее в ожидании его использования. Приложения могут скачать его и хранить в кэше сети приложений’s. Позже, когда вам нужно просмотреть изображение, ответ на ваш запрос вернется из кэша вместо сети. Открытый источник API Nuke включил поддержку захватывающей функции, известной как Prefetching изображений с использованием Swift-кода. Пожалуйста, помните, что Prefetching может принимать данные пользователей и оказывать дополнительное давление на процессор, а также на память. Чтобы уменьшить это давление, вы можете выбрать только кэш диска в качестве пункта назначения.

Prefect & Cache GitHub с использованием Swift API

inal class PrefetchingDemoViewController: UICollectionViewController {
    private let prefetcher = ImagePrefetcher()
    private var photos: [URL] = []
    override func viewDidLoad() {
        super.viewDidLoad()
        collectionView?.isPrefetchingEnabled = true
        collectionView?.prefetchDataSource = self
    }
}
extension PrefetchingDemoViewController: UICollectionViewDataSourcePrefetching {
    func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.startPrefetching(with: urls)
    }
    func collectionView(_ collectionView: UICollectionView, cancelPrefetchingForItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.stopPrefetching(with: urls)
    }
} 

Загрузка и кэширование изображений через Swift

Кэширование изображений — очень полезный метод, повышающий производительность приложений и удобство работы конечных пользователей. API Nuke с открытым исходным кодом позволяет программным приложениям автоматически кэшировать загруженные изображения. Nuke использует два встроенных уровня кэширования. Первый используется для хранения обработанного изображения, готового к показу. Он использует алгоритм LRU — наименее использовавшиеся записи удаляются первыми во время очистки. Второйnd использует HTTP Disk Cache для хранения необработанных данных изображения. Также есть возможность проверить наличие запрошенного изображения в кеше.

Read/Write изображений в памяти или Disk Cache через Swift API

let cache = pipeline.cache
let request = ImageRequest(url: URL(string: "https://example.com/image.jpeg")!)
cache.cachedImage(for: request) // From any cache layer
cache.cachedImage(for: request, caches: [.memory]) // Only memory
cache.cachedImage(for: request, caches: [.disk]) // Only disk (decodes data)
let data = cache.cachedData(for: request)
cache.containsData(for: request) // Fast contains check 
// Stores image in the memory cache and stores an encoded
// image in the disk cache
cache.storeCachedImage(ImageContainer(image: image), for: request)
cache.removeCachedImage(for: request)
cache.removeAll() 
 Русский