Сколько изображений можно / нужно хранить в xcassets в Xcode?

Я пытаюсь хранить много изображений для проекта в xcassets. Около 2000 Тем не менее, они все очень малы / высоко оптимизированы и имеют размер около 3-5 КБ каждый, поэтому общий объем может составить 6-10 МБ. Это может вызвать проблемы с памятью? Это не рекомендуется?

Я знаю, что пользователь мог бы загружать их с сервера по мере необходимости, но было бы проще, если бы я мог включить их все прямо из загрузки приложения.

1 ответ

Решение

Сколько изображений вы можете хранить в XCAssets?

Ну... Согласно Apple на максимальных размерах файла сборки:

Общий несжатый размер вашего приложения должен быть менее 4 ГБ

Технически, вы можете хранить как можно больше активов, которые могут вписаться в этот лимит.
Это не вызовет проблем с памятью, потому что эти изображения хранятся в комплекте приложения, который в конечном итоге хранится на диске.

Это только увеличит размер загрузки приложения... пока. Это повлияет на память приложения после их использования / отображения.

Лучшим примером для этого являются игры, они, как правило, имеют много ресурсов и почти всегда находятся в комплекте самого приложения. В некоторых случаях вы даже загружаете пакеты расширения, которые содержат больше ресурсов, но редко вы видите загрузку игрового искусства, по крайней мере, во время игры, потому что гладкость является ключевым фактором, будь то игра или простое приложение.


Около 2000 Тем не менее, они все очень малы / высоко оптимизированы и имеют размер около 3-5 КБ каждый, поэтому общий объем может составить 6-10 МБ.

Во-первых, 10 МБ не о чем беспокоиться, но в любом случае дело в том, что если вы загружаете все 2000 изображений одновременно, то есть каждое изображение загружается в UIImageViewтолько тогда они будут загружены в память приложения.
Это не имеет значения, нужно ли вам загружать изображения из пакета приложения или загружать его с сервера.


Сколько изображений вы должны хранить в XCAssets?

Теперь это зависит от вас.

Рассмотрите следующее, прежде чем принять решение:

  • Могут ли эти изображения измениться?
  • Нужны ли моим пользователям все 2000 изображений?
  • Мы хотим сохранить список URL для 2000 изображений?
  • Нужно ли гарантировать, что изображения загружаются правильно?
  • Будут ли пользователи ждать несколько миллисекунд для загрузки изображения?
  • Если изображение по какой-либо причине не загружается, то каким должен быть соответствующий механизм отказа?

В зависимости от того, как вы ответите на вышесказанное, вы будете знать, какой путь вам нужно выбрать.

Другие вопросы по тегам