Мое приложение содержит коллекцию из 1940 значков, которые используются повсеместно.
В настоящее время они находятся в ICO, и новые предоставленные мне изображения также приходят в формате ICO. Я заметил, что они содержат 16x16 и 32x32 представления каждого значка в одном файле.
Размер каждого файла составляет примерно 4 КБ (как сообщает finder, но ls
сообщает, что они варьируются от ~ 1000 байт до 5000 байт)
Очень небольшое количество этих значков содержит только представление 32x32, и в результате их размер составляет всего около 700 байт.
В настоящее время я связываю эти значки с моим приложением, и они увеличивают размер приложения немного больше, чем хотелось бы.
Всего образы составляют всего около 25,5 МБ. XCode должен делать какое-то сжатие, потому что результирующий пакет приложения составляет около 12,4 МБ. Сжатие этого далее в ZIP (как это было бы при отправке в App Store), приводит к конечному файлу 5,8 МБ.
Мне известно, что максимальный лимит для загрузок через Интернет в App Store был увеличен до 20 МБ с момента появления iPad (хотя я не уверен, распространяется ли это на приложения для iPhone, а также на приложения для iPad, если нет предел будет 10 МБ).
Меня беспокоит, что будут добавляться новые значки (иногда до 10 значков в неделю), и со временем они будут раздувать пакет приложений.
Как лучше всего распространять эти значки с моим приложением?
Вещи, которые я пробовал и не добился большого успеха:
- Преобразование иконок из ICO в PNG:
- Я пробовал это в надежде, что утилита pngcrush поможет с размером файла. Но, похоже, что между обычным PNG и раздавленным PNG нет большой разницы (я полагаю, что оно просто оптимизирует изображение для отображения на GPU iPhone, а не сжимает его размер). Также при переходе от ICO к PNG фактически увеличился размер файла иконки ...
- Сжатие изображений, а затем распаковка их при первом запуске.
- Хотя это и уменьшило общие размеры изображений, я обнаружил, что усилия, необходимые для их разархивирования, копирования в папку документов и обеспечения того, чтобы при обновлениях не происходило дублирование, были слишком сложными, чтобы стоить выгоды. Кроме того, на оригинальных и 3G-iPhone распаковка и копирование около 25 МБ изображений занимает слишком много времени и создает неприятные ощущения ...
Вещи, которые я рассмотрел, но еще не попробовал:
- Вместо того, чтобы распространять значки в комплекте приложений, размещайте их в сети и загружайте каждый значок по требованию (это зависит от данных пользователя относительно того, какие значки будут отображаться на самом деле и когда).
- Проблема в том, что пропускная способность стоит денег, а загрузка изображений будет интенсивной. Тем не менее, мое приложение в настоящее время имеет небольшую базу пользователей, насчитывающую около 5500 пользователей (из которых, по моим оценкам, около 1500 будет активным, основываясь на статистике Flurry), и у меня огромный резерв неиспользованной пропускной способности с моим текущим пакетом хостинга.
Так что я открыт для размышлений о том, как решить эту сложную проблему.