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, приоритет запросов, режим данных и многое другое.
Начало работы с 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()