SwiftUI.AsyncImageではダウンサンプリングができない問題について by Tanaka Fumiya

iOSDC Japan 2023
LT(5分)

SwiftUI.AsyncImageではダウンサンプリングができない問題について

fummicc1 Tanaka Fumiya fummicc1
3

iOS16時点ではSwiftUI.AsyncImageは非同期で画像を取得した後、SwiftUI.Imageを返却するためCGImageのような画像を加工できる形で返されません。
本LTではそのAsyncImageの欠点である「ダウンサンプリングができない」という問題に焦点を当て、それが引き起こす問題と改善案について紹介します。

ダウンサンプリングは大まかには画像の解像度を下げる手法と考えられます。ネットワーク越しに大きなサイズの画像を取得しても、表示する際には小さなImageに表示する場合に有効です。ダウンサンプリングをしない場合、場合によっては消費メモリが桁違いになってくるため大きな問題として捉えられます。
ダウンサンプリングを実装するにはiOS16時点では自前で実装することになり、LTの後半ではAsyncDownSamplingImageというライブラリの紹介をします。