0

我们有一个通用的 iOS 应用程序。我们在首次启动时使用 JSON 将内容下载到应用程序中。

在 iPad 上下载的内容大小(由于图像较大)约为 100MB,而在 iPhone(较小的图像)上为 80MB。

通过 WiFi 下载所有内容大约需要 4-7 分钟。在 3G 上需要 7-10 分钟。

图片很大,文字内容不多。

有什么办法可以减少下载时间?我知道 JSON 压缩,但不确定它是否对图像有帮助?

有任何想法吗?

发送

4

1 回答 1

2

其中一些信息已在各种评论中提到,但无论如何我都会建议这样做,我认为写下答案会更有用,所以这里是:

  1. 与其将每个图像的位置存储在 JSON 文件中并一次下载一个,不如将图像存储在 zip 文件中并下载它们。从中获得的任何压缩量都会缩短下载时间,下载 zip 文件后,您只需解压缩图像即可。

  2. 将合理数量的图像与应用程序一起存储在主包中。在您的情况下,您显然不能将它们全部存储在那里;你不想拥有一个巨大的应用程序,因为它是一个食谱应用程序,我想你会随着你的进步添加更多的食谱。能够通过 JSON 更新和下载食谱比每次更改都必须将新版本的应用程序推送到应用程序商店更有意义。但是有一些项目可以与应用程序捆绑在一起;前任。大的背景图像,不变且不太可能改变的设计元素。任何不太可能需要更新的图像都应与主应用程序捆绑在一起;下载时间的任何节省都是一种改进。

  3. 有一些有趣的加载屏幕。这非常重要,因为您说的是 4-10 分钟的下载时间。这对用户来说是很的时间。在使用应用程序时,30 秒甚至可能看起来很长。如果在那段时间没有发生任何事情,你将很难让我愿意坐在那里等待 10 分钟让应用程序启动。让创意蔬菜角色在屏幕上移动,在加载屏幕上加入一些互动拼图或配料等。只需在用户等待时给他们一些可以看的东西(或者最好是互动的东西) 。否则,您可能会在此下载过程中失去很多用户。

  4. 如果您可以完成这项工作,那么仅在必要时下载项目确实是一个好主意。例如,如果您的食谱应用程序分为“沙拉”、“鱼”、“鸡肉”、“甜点”等,您可以在用户第一次点击时提示用户下载每个类别的食谱信息。这样做的好处是它打破了用户等待下载的时间;假设您有 10 个食谱类别,现在用户必须一次等待的时间已从 4-10 分钟减少到 30 秒-1 分钟。这是一个巨大的差异。我会等待 1 分钟等待甜点食谱(仍然让他们有事可做!)比等待 10 分钟等待整个应用程序要容易得多。

    4b。您提到离线时无法访问新内容,这是一个合理的担忧。为了解决这个问题,您可以在应用程序第一次加载时出现提示:This application contains hundreds of exciting recipes and delicious images. It can take several minutes to download all this yummy information. You can download all the content now, or proceed to the app and download recipes by category when you wish to view them. Please note that this will require an internet connection.并且按钮可以显示类似Download Now和的内容Proceed to App。显然,您可以随心所欲地使用措辞,但这个想法是合理的。您已告知用户可能会有很长的下载时间,因此至少他们得到了警告,并且他们可以自行决定如何使用您的应用程序。

  5. 无论您决定继续,将下载的内容分解为 zip 文件的逻辑类别。例如,“Desserts.zip”、“Salads.z​​ip”等。这样,即使您现在不决定让用户按需下载,您也已经建立了一个开放的结构,以后可以更改.

于 2013-07-27T21:52:37.143 回答