在 React Native 中将初始图标交付到移动应用程序的最佳实践/解决方案架构

问题描述

这是一个来自移动应用程序开发初学者的问题:)

我首先要为 iOS 平台构建一个 React Native 应用程序。我对如何向应用程序提供图标的决定感到困惑。想象一下:

  1. 我有一个参考数据集,其中包含旅行选项(自行车、摩托车等)。
  2. 不过实际设置要大得多 - 我希望有 100-200 个项目,每个项目都有一个图标用于 UI。
  3. 这些应该缓存在应用程序中。
  4. 他们中的大多数不会改变,新的可能会定期出现,但不是每周都有。

现在我想到的选项:

  1. 以 BLOB 形式提供带有图像的 sqlite 数据库,并在新图标到达时更新数据库
  2. 提供带有 S3 存储桶项目图像 URL 的 sqlite 数据库,并在新图标到达时更新数据库
  3. 使用与 BLOB 或 URL(?) 捆绑在一起的初始 sqlite 交付应用程序,并在新图标到达时进行无线更新
  4. 完全不要使用 sqlite 数据库,并在启动时使用图像 URL 调用 REST API 提供所有内容。在需要时加载图像并缓存它们。新图标到达时使用新图标 URL 更新数据库

我想我倾向于使用选项 4,因为它对客户端来说似乎最不重要 - 他总是可以在需要时下载图标。但它也有延迟,因为这是第一次从私有 s3 存储桶下载图标。 但是,我缺少移动应用程序的真实体验,并且可能缺少重要的细节。希望高手给点意见。感谢您提供此选项的任何优点和缺点!

解决方法

你说得对,根本不需要数据库。 所以基本上你只需要加载一次这些图标并将它们缓存在应用程序中。您可以使用 react-native-fast-image 之类的内容或自己进行缓存。 如果更改了图标的 URL - 新图像将被缓存。

因此,在实际应用中,您通常会使用图像占位符(下面的示例)或加载器(更罕见)。 enter image description here

如果您有多种类型的车辆,您可以创建多个占位符并显示它们,除非原始图像正在加载/不可用。

,

使用 react native firebase storage 和 firestore 是一个不错的选择。图片可以远程加载,自动缓存