iOS应用程序开发 - 使用JSON下载大型内容

时间:2013-07-27 17:53:01

标签: ios ios6

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

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

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

图片尺寸较大,文字内容不多。

我们有什么方法可以缩短下载时间吗?我知道JSON压缩,但不确定它是否有助于图像?

有什么想法吗?

的Tx

1 个答案:

答案 0 :(得分: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 NowProceed to App。显然你可以根据自己的内容使用措辞,但这个想法很合理。您已告知用户可能存在大量下载时间,因此至少他们已被预先警告,并且他们可以自行决定如何使用您的应用。

  5. 但是,您决定继续,将下载的内容分解为zip文件的逻辑类别。例如,“Desserts.zip”,“Salads.z​​ip”等。即使您现在不决定让用户按需下载,您也可以设置一个可以在以后更改的结构。