如何在 SwiftUI 项目中包装像 SDWebimageSwiftUI 或 Kingfisher 这样的图像缓存库或我自己的实现?

How to wrap an Image caching library like SDWebimageSwiftUI or Kingfisher or my own implementation in a SwiftUI project?

提问人:user3745635 提问时间:11/16/2023 更新时间:11/16/2023 访问量:16

问:

我正在做一个小型的 SwiftUI 项目,因为我相信这是学习任何东西的最佳方式。 来自 UIKit 的背景,有时我确实对如何在 SwiftUI 中执行此操作感到困惑。

我想要实现什么,为什么?

我想呈现一个列表和它们。现在 SwiftUI 提供了一种非常干净的方式来做到这一点,即通过 . 在我看来是好的,但它对任何事情都没有任何功能。lazy loading cells containing imagesCacheAsyncImageAsyncImagelazy loading imagescache

因此,我有两个选择,要么编写我自己的缓存机制实现,要么使用社区中任何可靠的内容,我们确实拥有并且将完成大部分繁重的工作,并且对于我想要实现的结果足够可靠,所以我擅长这两个库中的任何一个。SdWebImageSwiftUIKingfisher

现在我真正想要实现的目标是什么?我只想使用这些库中的任何一个,以便将来如果我想用其他东西替换它们,那么我不必在应用程序中的任何地方进行更改。 在这样做的同时,我确实希望保留要添加到我们将使用的视图的功能。encapsulateview modifiers

例如。

CachedImage(url: url_for_image)
.resizable()
.frame(width: x, height: y)
.scaleAspectFit()
.
.
.

我提议的实现可能不是最好的,我非常愿意听取社区的意见,了解什么是更好的方法。

如果我在某个地方错了,请纠正我。

iOS SwiftUI Solid-Principles SDWebImageSwiftUI

评论


答: 暂无答案