ネットワーク上の画像はswiftUIでプレビューできない

自分で作ってるSwiftUIアプリでKingfisherSwiftUIを使ってるのだが、HTTPスキームで表現される画像ファイルがプレビュー時にプレースホルダーになってしまってイメージ付きづらかったので、プレビュー時も画像を安定的に表示させるちょっとしたTIPSを紹介。

やり方としては至極単純で、共通で使うImageViewとしてラップしてあげてプレビュー用のURLを渡し、プロジェクト内のassetを表示するだけ。
モックデータをpreview://から始まるURLで渡すイメージで。もうちょっとちゃんとURLパースしてプロジェクトのassetを柔軟に切り替えれるようにしても良さそう。

import SwiftUI
import KingfisherSwiftUI

struct ImageView: View {
    let url: URL?
    init(_ url: URL?) {
        self.url = url
    }

    var body: some View {
        if let url = url, url.scheme == "preview" {
            Image("sample")
                .resizable()
                .aspectRatio(contentMode: .fit)
        } else {
            KFImage(url)
                .resizable()
                .aspectRatio(contentMode: .fit)
        }
    }
}
struct ImageView_Previews: PreviewProvider {
    static var previews: some View {
        // Mock表示
        ImageView(URL(string: "preview://sample"))
        // ネットワーク上の画像を参照
        ImageView(URL(string: "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"))
    }
}