iOS
April 25

Отказ от Icon Composer

Если у вас в приложение несколько альтернативных иконок, и все они сделаны с использованием Icon Composer, эта статья для вас.

Или если у вас простая иконка, которая почему-то получает тень или стекло при установке приложения на девайс, эта статья для вас.

Предыстория

В Xcode 26.1 добавили баг при создании сборки приложения - ассеты иконок, сделанных в Icon Composer добавляются в итоговый архив несколько раз, что приводит к заметному увеличению веса приложения. Ссылки на форум: первая, вторая.

Если иконку создать в композере, то она будет выглядеть как и задумано, вот только в итоговой сборке эта иконка будет весить в несколько раз больше, чем нужно. И если в приложении есть альтернативные иконки, то общий вес легко может вырасти в 2 раза для легкого приложения (например, этого).

Обходное решение есть - не использовать композер, и добавлять иконки в приложение старым способом (через ассеты).

Однако для простых иконок это приводит к некрасивому результату:

Иконка приложения с дефолтным градиентом
Простой я называю иконку, которая состоит из двух цветов без градиентов или прозрачности.

Получается, что либо мы снижаем вес приложения и миримся с некрасивой тенью (или стеклом, в зависимости от иконки), либо соглашаемся с повышением веса приложения, и целиком управляем тенями и стеклом (привет, композер)?

Так не пойдет.

Решение

Настройка градиента в фигме - добавляем градиент для иконки, чтобы система не считала картинку такой уж простой для накладывания своих лишних эффектов
Слева старая иконка без градиентов, справа - новая с градиентом. Глазом разницу почти не видно, зато избавляемся от некрасивой тени на экране девайса
Так выглядит новая иконка с незаметным градиентом на экране девайса - без тени и стекла

Результат в мегабайтах

Размер приложения с иконками, сделанными в Icon Composer
Размер приложения после обновления основной иконки и альтернативных

Вес приложения снизился почти на 4 мегабайта!

И при этом новые градиентные иконки весят в 5-7 раз больше, чем простые однотонные. Но простые, как мы уже знаем, система покрывает своим стеклом или тенью, а выглядит это некрасиво.

Интересный момент: в темной теме ни стекло, ни дополнительная тень на иконки не накладывается - по крайней мере в счётчике дней так.

Заключение

Если у вас в приложении много альтернативных иконок, или вы используете Icon Composer для создания ваших иконок, то будет здорово вернуться к ассетам и подождать, пока композер починят (а починить его не могут уже больше 5 месяцев).

Зачем заставлять пользователя скачивать лишние мегабайты мусора вместе с нормальным приложением?