Nuke
Libreria Swift open source per la modifica e l'elaborazione delle immagini
API Swift gratuita che consente di personalizzare la pipeline di immagini, ridimensionare le immagini, utilizzare un processore personalizzato, angoli arrotondati delle immagini, download e immagini in contanti e così via.
Nuke è una sorgente aperta molto utile Swift framework che consente agli sviluppatori di software di caricare e visualizzare facilmente le immagini all'interno delle proprie applicazioni Swift. Richiede una sola riga di codice per scaricare e visualizzare le immagini nelle app. La libreria ha anche incluso il supporto per diverse funzioni avanzate come la presentazione dell'immagine e la decodifica progressiva che possono notevolmente migliorare le prestazioni dell'applicazione e l'esperienza utente.
Nuke API è molto facile da usare e ha un'architettura molto avanzata che consente agli sviluppatori di software di pensare a possibilità virtualmente illimitate per l'elaborazione e la personalizzazione delle immagini. Ha incluso il supporto integrato per i formati di immagine di base come JPEG, PNG, HEIF e molti altri. Supporta anche la codifica e la decodifica delle immagini utilizzando il codice Swift.
La libreria è molto ricca di funzionalità e ha incluso diverse caratteristiche importanti per la gestione delle immagini utilizzando comandi Swift, come immagini di carico, pipeline di immagine personalizzazione, immagini residenziali, applicando filtri come la sfocatura russa
Iniziare con Nuke
Il modo consigliato per installare Nuke è usare CocoaPods. Aggiungi le seguenti righe al tuo Podfile
Installa Nuke tramite CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Clona le ultime fonti usando il comando seguente.
Installa Nuke tramite GitHub.
$ git https://github.com/kean/Nuke.git
Scarica e usa le immagini usando Swift
L'API Nuke open source fornisce un modo ben organizzato ed efficace per scaricare e utilizzare le immagini all'interno delle tue app Swift. Per recuperare le immagini è necessario passare l'URL dell'immagine richiesta e quindi chiamare il metodo resume. Scaricherà l'immagine richiesta in background e informerà la chiusura della risposta al termine.
Visualizza immagini in modi diversi all'interno di applicazioni 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"))
}
}
Prefetto immagine utilizzando Swift API
Prefetching è una caratteristica molto utile che consente agli utenti di scaricare l'immagine o altri dati in anticipo in previsione del suo utilizzo. Le applicazioni possono scaricarlo e memorizzarlo nella cache di rete dell'applicazione. Più tardi quando è necessario visualizzare l'immagine la risposta alla vostra richiesta tornerà dalla cache invece della rete. L'open source API Nuke ha incluso il supporto per una caratteristica emozionante conosciuta come Prefetching immagini utilizzando il codice Swift. Si prega di ricordare che Prefetching può prendere i dati degli utenti e mettere una pressione supplementare sulla CPU e la memoria. Per ridurre questa pressione è possibile scegliere solo la cache disco come destinazione prefetching.
Prefetto & Cache GitHub utilizzando 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)
}
}
Carica e incassa immagini tramite Swift
La memorizzazione nella cache delle immagini è un metodo molto utile che migliora le prestazioni delle applicazioni e l'esperienza dell'utente finale. L'API Nuke open source consente alle app software di memorizzare automaticamente nella cache le immagini scaricate. Nuke si basa su due livelli di memorizzazione nella cache integrati. Il primo viene utilizzato per memorizzare l'immagine elaborata, che è pronta per la visualizzazione. Utilizza l'algoritmo LRU: le voci utilizzate meno di recente vengono rimosse per prime durante lo sweep. Il 2nd utilizza HTTP Disk Cache per memorizzare i dati dell'immagine non elaborati. È inoltre possibile verificare l'esistenza dell'immagine richiesta nella cache.
Read/Write Immagini in memoria o cache disco tramite 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()