🐝

KingFisherについて

2022/06/21に公開

Kingfisher

どんなライブラリ?

  • KingfisherのGitHubから引用
    • Kingfisherは、Webから画像をダウンロードしてキャッシュするための強力で純粋なSwiftライブラリです。それはあなたの次のアプリでリモート画像を操作するために純粋なSwiftの方法を使用する機会を提供します。

https://github.com/onevcat/Kingfisher

画像キャッシュライブラリについて

https://qiita.com/hcrane/items/422811dfc18ae919f8a4

  • 画像キャッシュライブラリをする時、そのライブラリが何の言語で書かれているか確認する。
    • Kingfisherは主にSwiftで書かれているが、SDWebImageはObjective-Cで書かれている。KingfisherとSDWebImageは使用する時のコードの書き方が似ているのは、SDWebImageをSwiftに書き換えたライブラリがKingfisherだからだと思います。
  • 画像のファイル形式で何を扱っているのかも確認する。
    • 最近だとGoogleが開発したWebP形式の画像が使われるようになってきている。WebP画像を使う場合、WebPに対応しているライブラリなのかどうか確認する必要がある。iOS端末はまだWebPの画像を表示できないが、WebP対応済みのライブラリだと自動で表示できる状態に変更してくれる。
    • Kingfisherは現在(2021-11-8)WebP形式のには対応されていない。KingfisherでWebPを使いたい場合、KingfisherでWebPを使えるようにするライブラリがあります。

キャッシュについて

  • IT用語辞典 e-Wordsから引用

キャッシュとは、低速な記憶装置や伝送路から読み出したデータのうち、直近に読み込んだものや使用頻度が高いものを高速な記憶装置に複製しておくこと。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。データの読み込みを高速化したり、伝送量を削減することができる。

便利ポイント

  • UITableViewなどのセルが再利用される場合かつそのセルの画像をデータベースとの通信でとってくる場合に画像をキャッシュする必要がある。その時に簡単に画像キャッシュを実装できる。
  • WebP画像でもiOS端末が表示できる状態に変更してくれる。

画像キャッシュでの注意点

  • 画像キャッシュは一意のURLを認識して画像を保持している。そのため、URLを変更せずに画像だけを変更した場合、端末はキャッシュを利用して画像を表示するため、以前の画像が表示されてしまう。なので、画像を変更した場合はキャッシュを削除する必要がある。また、キャッシュを行うとアプリの容量がだんだん大きくなる。その際にも容量を空けるためにキャッシュを削除する必要がある。

qiita記事以下より参照

https://qiita.com/Imamura-k/items/ccd63ab87b9efbb94705

Discussion