Kingfisher
Bezpłatna biblioteka Swift do pobierania i buforowania obrazów
Open source Swift API, który umożliwia programistom pracę ze zdalnymi obrazami w ich aplikacjach internetowych. Umożliwia pobieranie i buforowanie obrazów, stosowanie procesorów obrazu i filtrów.
Kingfisher to lekka czysta implementacja Swift, która zapewnia pełną funkcjonalność do pracy z wieloma formatami plików graficznych przy użyciu kodu Swift. Biblioteka pomaga programistom w tworzeniu aplikacji, które z łatwością mogą zdalnie obsługiwać obrazy. Biblioteka asynchronicznie pobiera i buforuje obrazy we własnych aplikacjach. Biblioteka obsługuje wielowarstwową pamięć podręczną dla pobranych obrazów, co znacznie zwiększa wydajność aplikacji. Oznacza to, że obrazy będą buforowane zarówno w pamięci, jak i na dysku, więc nie trzeba ich ponownie pobierać.
Biblioteka jest bardzo łatwa w obsłudze i zapewnia możliwość zarządzania pamięcią podręczną. Użytkownicy mogą łatwo ustawić rozmiar, a także czas trwania pamięci podręcznej. Zapewni również funkcję automatycznego czyszczenia pamięci podręcznej, która pomoże użytkownikom zapobiegać wykorzystywaniu przez bibliotekę zbyt wielu zasobów. Dołączona jest jeszcze jedna świetna funkcja umożliwiająca anulowanie zadań. Użytkownicy mogą łatwo anulować proces pobierania lub odzyskiwania obrazu, jeśli nie jest już potrzebny.
Biblioteka Kingfisher ułatwia programistom używanie komponentów pobierania i buforowania obrazów oddzielnie, zgodnie z ich potrzebami. Możesz nawet stworzyć własną pamięć podręczną zgodnie z własnymi potrzebami za pomocą kodu Swift. Poprawia wydajność pamięci podręcznej dysku, unikając niepotrzebnych operacji dyskowych. Biblioteka jest open source i jest dostępna na licencji MIT.
Pierwsze kroki z Kingfisher
Sklonuj najnowsze źródła za pomocą następującego polecenia
Zainstaluj Kingfisher przez GitHub.
$ git submodule add https://github.com/onevcat/Kingfisher.git
Pobierz i bufor Zdjęcia za pośrednictwem biblioteki Swift
Jest to bardzo trudne zadanie do programowania pobrać obraz i przechowywać go do pamięci podręcznej przy użyciu URL. Otwarte źródło Biblioteka Swift Kingfisher ułatwia programistom efektywne pobieranie i buforowanie obrazów wewnątrz własnych aplikacji. Biblioteka obsługuje buforowanie obrazów zarówno w pamięci, jak i na dysku. Domyślnie ilość AM, która będzie używana, nie jest nawet ograniczona, a użytkownicy mogą sami ustawić wartość.
Pobierz i bufor Zdjęcia za pośrednictwem biblioteki Swift
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])
Przegląd obrazu wewnątrz aplikacji Swift
Biblioteka Kingfisher pozwala programistom oprogramowania na włączenie możliwości przeglądania obrazu wewnątrz ich aplikacji z łatwością. Najprostszym sposobem na ustawienie widoku obrazu jest użycie rozszerzenia UIImageView. Biblioteka ściągnie obraz z URL i doprowadzi go zarówno do pamięci podręcznej, jak i pamięci podręcznej, i wyświetla go w imageView. Gdy inni użytkownicy nazywają to samo URL, szybko odzyska i wyświetla obraz z pamięci podręcznej. Obsługuje również kilka funkcji związanych z obrazami, takimi jak blady obraz do pobrania, pokazując lokatora, okrągły obraz rogu i tak dalej.
Zobacz zdjęcia wewnątrz aplikacji Swift
import Kingfisher
let url = URL(string: "https://example.com/image.png")
imageView.kf.setImage(with: url)
Ręczne przechowywanie lub usuwanie pamięci podręcznej
Otwarta biblioteka Swift Kingfisher umożliwia programistom przechowywanie i usuwanie obrazów z pamięci podręcznej z łatwością. Domyślnie, metody rozszerzenia widoku mogą być używane do przechowywania odzyskanego obrazu do pamięci podręcznej automatycznie. Ale można to zrobić ręcznie za pomocą metody cache.store(). Możesz również podać oryginalne dane obrazu, które pomagają bibliotece określić w jakim formacie obraz powinien być przechowywany. Zapewnia również wsparcie do ręcznego usuwania określonego obrazu z pamięci podręcznej. Wspiera również rozliczanie wszystkich danych cache, raportowanie rozmiaru dysku i tworzenie własnych pamięci.
Zobacz zdjęcia wewnątrz aplikacji Swift
//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)
}
}