Nuke
Biblioteca Swift de código abierto para edición y procesamiento de imágenes
API Swift gratuita que permite personalizar la canalización de imágenes, cambiar el tamaño de las imágenes, usar un procesador personalizado, redondear las esquinas de las imágenes, descargar y cobrar imágenes, etc.
Nuke es una fuente abierta muy útil Marco Swift que permite a los desarrolladores de software cargar y mostrar fácilmente imágenes dentro de sus propias aplicaciones Swift. Requiere sólo una línea de código para descargar y mostrar imágenes en sus aplicaciones. La biblioteca también ha incluido apoyo a varias características avanzadas como la presentación de imágenes y la decodificación progresiva que pueden mejorar drásticamente el rendimiento de la aplicación y la experiencia del usuario.
Nuke API es muy fácil de usar y tiene una arquitectura muy avanzada que permite a los desarrolladores de software pensar en posibilidades prácticamente ilimitadas para el procesamiento y la personalización de imágenes. Ha incluido soporte incorporado para formatos de imagen básicos como JPEG, PNG, HEIF y muchos más. También admite la codificación y decodificación de imágenes mediante código Swift.
La biblioteca es muy rica en funciones y ha incluido varias características importantes para manejar sus imágenes utilizando comandos Swift, tales como imágenes de carga, personalización de imágenes, residiendo imágenes, aplicando filtros como blur ruso, usando un procesador personalizado
Primeros pasos con Nuke
La forma recomendada de instalar Nuke es usando CocoaPods. Agregue las siguientes líneas a su Podfile
Instale Nuke a través de CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Clona las últimas fuentes usando el siguiente comando.
Instale Nuke a través de GitHub.
$ git https://github.com/kean/Nuke.git
Descargar y usar imágenes usando Swift
La API Nuke de código abierto proporciona una forma eficaz y bien organizada de descargar y usar imágenes dentro de sus aplicaciones Swift. Para obtener las imágenes, debe pasar la URL de la imagen requerida y luego llamar al método de reanudación. Descargará la imagen solicitada en segundo plano e informará el cierre de la respuesta cuando haya terminado.
Ver imágenes en diferentes formas dentro de las aplicaciones 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"))
}
}
Imagen prefecta utilizando Swift API
La prefiguración es una característica muy útil que permite a los usuarios descargar la imagen u otros datos antes de tiempo en previsión de su uso. Las aplicaciones pueden descargarlo y almacenarlo en la caché de red de la aplicación. Más tarde, cuando tenga que ver la imagen, la respuesta a su solicitud volverá de la caché en lugar de la red. La fuente abierta API Nuke ha incluido soporte para una característica emocionante conocida como imágenes prefabricadas usando código Swift. Por favor, recuerde que Prefetching puede tomar los datos de los usuarios y poner presión adicional sobre la CPU así como la memoria. Para reducir esta presión sólo se puede elegir la caché de disco como destino preferente.
Prefecto Cache GitHub utilizando 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)
}
}
Cargar y cobrar imágenes a través de Swift
El almacenamiento en caché de imágenes es un método muy útil que mejora el rendimiento de la aplicación y la experiencia del usuario final. La API Nuke de código abierto permite que las aplicaciones de software almacenen en caché automáticamente las imágenes descargadas. Nuke se basa en dos capas de almacenamiento en caché integradas. El primero se utiliza para almacenar la imagen procesada, que está lista para su visualización. Utiliza el algoritmo LRU: las entradas utilizadas menos recientemente se eliminan primero durante el barrido. El 2nd usa caché de disco HTTP para almacenar los datos de imagen sin procesar. También es posible comprobar la existencia de la imagen solicitada en la memoria caché.
Read/Write Imágenes en memoria o dolor de disco a través de 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()