Kingfisher
Gratis Swift Library til at downloade og cache billeder
Open source Swift API, der gør det muligt for softwareudviklere at arbejde med fjernbilleder i deres webapps. Det giver mulighed for at downloade og cache billeder, anvende billedprocessorer og filtre.
Kingfisher er en letvægts ren Swift-implementering, der gav komplet funktionalitet til at arbejde med flere billedfilformater ved hjælp af Swift-kode. Biblioteket hjælper udviklere med at skabe applikationer, der nemt kan fjernhåndtere billeder. Biblioteket downloader og cacherer asynkront billeder i deres egne applikationer. Biblioteket understøtter en flerlags cache til de downloadede billeder, der forbedrer appsnes ydeevne enormt. Det betyder, at billeder bliver cachelagret i hukommelsen såvel som på disken, så det er ikke nødvendigt at downloade det igen.
Biblioteket er meget nemt at håndtere og giver mulighed for cachehåndtering. Brugere kan nemt indstille størrelsen samt varigheden af cachen. Det vil også give en automatisk cache-rensningsfacilitet, der hjælper brugere med at forhindre biblioteket i at bruge for mange ressourcer. En anden fantastisk funktion er inkluderet til opgaveannullering. Brugere kan nemt annullere download- eller billedhentningsprocessen, hvis det ikke er nødvendigt længere.
Kingfisher-biblioteket gør det lettere for udviklere at bruge komponenter til billeddownload og billedcache separat i henhold til deres behov. Du kan endda oprette din egen cache efter dine egne behov ved hjælp af Swift-kode. Det forbedrer diskcachens ydeevne ved at undgå unødvendige diskoperationer. Biblioteket er open source og er tilgængeligt under MIT-licensen.
Kom godt i gang med Kingfisher
Klon de seneste kilder med følgende kommando
Installer Kingfisher via GitHub.
$ git submodule add https://github.com/onevcat/Kingfisher.git
Download og cache billeder via Swift Library
Det er en meget vanskelig opgave programmatisk at downloade et billede og gemme det i cache ved hjælp af en URL. Open source Swift-biblioteket Kingfisher gør det nemt for softwareudviklere effektivt at downloade og cache billeder i deres egne applikationer. Biblioteket understøtter caching af billeder både i hukommelsen og på disken. Som standard er mængden af RAM, der vil blive brugt, ikke engang begrænset, og brugerne kan selv indstille værdien.
Download og cache billeder via Swift Library
let urls = ["https://example.com/image1.jpg", "https://example.com/image2.jpg"]
.map { URL(string: $0)! }
let prefetcher = ImagePrefetcher(urls: urls) {
skippedResources, failedResources, completedResources in
print("These resources are prefetched: \(completedResources)")
}
prefetcher.start()
// Later when you need to display these images:
imageView.kf.setImage(with: urls[0])
anotherImageView.kf.setImage(with: urls[1])
Billedvisning i Swift Apps
Kingfisher-biblioteket giver softwareprogrammører mulighed for nemt at inkludere billedvisningsmuligheder i deres applikation. Den nemmeste måde at indstille en billedvisning på er at bruge UIImageView-udvidelsen. Biblioteket vil downloade billedet fra URL og føre det til både hukommelsescache og diskcache og vise det i imageView. Når sidstnævnte brugere kalder den samme URL, vil den straks hente og vise billedet fra cachen. Det understøtter også flere funktioner relateret til billeder, såsom falmende downloadbillede, visning af pladsholder, runde hjørnebillede og så videre.
Se billeder i Swift Apps
import Kingfisher
let url = URL(string: "https://example.com/image.png")
imageView.kf.setImage(with: url)
Gem eller fjern cachebilleder manuelt
Open source Swift-biblioteket Kingfisher gør det muligt for programmører at gemme samt fjerne billeder fra cache med lethed. Som standard kan visningsudvidelsesmetoder bruges til at gemme det hentede billede til automatisk cache. Men du kan gøre det manuelt med metoden cache.store(). Du kan også videregive de originale data for billedet, som hjælper biblioteket med at bestemme, i hvilket format billedet skal gemmes. Det giver også støtte til manuel fjernelse af et bestemt billede fra cachen. Det understøtter også rydning af alle cachedata, rapporter om disklagerstørrelse og oprettelse af din egen cache.
Se billeder i Swift Apps
//Check whether an image in the cache
let cache = ImageCache.default
let cached = cache.isCached(forKey: cacheKey)
// To know where the cached image is:
let cacheType = cache.imageCachedType(forKey: cacheKey)
// `.memory`, `.disk` or `.none`.
// Store Image in the cache
let processor = RoundCornerImageProcessor(cornerRadius: 20)
imageView.kf.setImage(with: url, options: [.processor(processor)])
// Later
cache.isCached(forKey: cacheKey, processorIdentifier: processor.identifier)
// Retrieve image from cache
cache.retrieveImage(forKey: "cacheKey") { result in
switch result {
case .success(let value):
print(value.cacheType)
// If the `cacheType is `.none`, `image` will be `nil`.
print(value.image)
case .failure(let error):
print(error)
}
}