Nuke
Bibliotecă Swift cu sursă deschisă pentru editarea și procesarea imaginilor
API-ul Swift gratuit care permite personalizarea canalului de imagini, redimensionarea imaginilor, utilizarea unui procesor personalizat, rotunjirea colțurilor imaginilor, descărcarea și încasarea imaginilor și așa mai departe.
Nuke este un cadru Swift open source foarte util care le permite dezvoltatorilor de software să încarce și să afișeze cu ușurință imagini în propriile aplicații Swift. Este nevoie de o singură linie de cod pentru a descărca și afișa imagini în aplicațiile dvs. Biblioteca a inclus, de asemenea, suport pentru mai multe funcții avansate, cum ar fi preîncălzirea imaginii și decodarea progresivă, care pot îmbunătăți în mod dramatic performanța aplicației, precum și experiența utilizatorului.
Nuke API este foarte ușor de utilizat și are o arhitectură foarte avansată care permite dezvoltatorilor de software să se gândească la posibilități practic nelimitate de procesare și personalizare a imaginilor. Acesta a inclus suport încorporat pentru formate de imagine de bază, cum ar fi JPEG, PNG, HEIF și multe altele. De asemenea, acceptă codificarea și decodarea imaginilor folosind codul Swift.
Biblioteca este foarte bogată în funcții și a inclus câteva caracteristici importante pentru gestionarea imaginilor lor folosind comenzi Swift, cum ar fi încărcarea imaginilor, personalizarea canalului de imagini, redimensionarea imaginilor, aplicarea de filtre precum estomparea gaussiană, utilizarea unui procesor personalizat, colțuri rotunjite de imagine, memorie LRU Cache, HTTP Disk Cache, Agressive LRU Disk Cache, Reîncărcare imagini, animație de imagine, Decomprimare inteligentă a fundalului, Reluare a descărcărilor, Cerere de prioritizare, Modul de date scăzute și multe altele.
Noțiuni introductive cu Nuke
Modul recomandat de a instala Nuke este utilizarea CocoaPods. Vă rugăm să adăugați următoarele rânduri la Podfile
Instalați Nuke prin CocoaPods.
pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional
Clonează cele mai recente surse utilizând următoarea comandă.
Instalați Nuke prin GitHub.
$ git https://github.com/kean/Nuke.git
Descărcați și utilizați imagini folosind Swift
API-ul Nuke open source oferă o modalitate bine organizată și eficientă de descărcare și utilizare a imaginilor în aplicațiile dvs. Swift. Pentru a prelua imaginile, trebuie să transmiteți adresa URL a imaginii necesare și apoi să apelați metoda de reluare. Acesta va descărca imaginea solicitată în fundal și va informa închiderea răspunsului când se va termina.
Vizualizați imagini în diferite moduri în aplicațiile 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"))
}
}
Sursă foto: Swift API
Prefetching este o caracteristică foarte utilă care permite utilizatorilor să descarce imaginea sau alte date înainte de timp în anticiparea utilizării sale. Aplicațiile îl pot descărca și stoca în memoria cache a aplicației. Mai târziu, când trebuie să vizualizați imaginea, răspunsul la cererea dvs. va reveni de la cache în loc de rețea. Sursa deschisă API Nuke a inclus suport pentru o caracteristică interesantă cunoscută sub numele de imagini Prefetching folosind codul Swift. Vă rugăm să rețineți că Prefetching poate prelua datele utilizatorilor și poate pune o presiune suplimentară asupra CPU, precum și asupra memoriei. Pentru a reduce această presiune, puteți alege doar cache-ul de disc ca destinație de prefetching.
Cache GitHub cu 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)
}
}
Încărcați și încasați imagini prin Swift
Memorarea în cache a imaginilor este o metodă foarte utilă care îmbunătățește performanța aplicației și experiența utilizatorului final. API-ul Nuke cu sursă deschisă permite aplicațiilor software să memoreze automat în cache imaginile descărcate. Nuke se bazează pe două straturi de cache încorporate. Primul este folosit pentru a stoca imaginea procesată, care este gata pentru afișare. Utilizează algoritmul LRU – intrările cele mai puțin utilizate recent sunt eliminate mai întâi în timpul scanării. Al doileaal doilea folosește HTTP Disk Cache pentru a stoca datele de imagine neprocesate. De asemenea, este posibil să se verifice existența imaginii solicitate în cache.
Read/Write imagini din Memory or Disk Cache via 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()