Уменьшаем вес приложения и ускоряем его работу: 5 стратегий управления изображениями в iOS
Оптимизация работы с изображениями — задача, которую многие разработчики часто упускают из виду. Но именно эти ресурсы могут существенно влиять на производительность, размер приложения и даже на удобство командной разработки.
PNG или PDF: что выбрать?
Если вы хотите уменьшить размер приложения — юзаем PNG. Несмотря на популярность PDF-изображений из-за удобства масштабирования и поддержки в Xcode, они весят больше.
До Xcode 15 PDF при архивировании разлетались на три PNG-файла. Теперь их конвертируют в три PDF-файла — объем ресурсов взлетает кратно.
• Используйте PNG для стандартных изображений.
• PDF подходит для тех случаев, когда важна векторная графика и масштабируемость.
Сжимаем изображения
Перед добавлением изображений в проект проверьте их размер. Даже минимальная компрессия может уменьшить вес файлов на 80% без заметной потери качества.
• Попробуйте плагин TinyImage Compressor для Figma.
• В больших командах удобно автоматизировать проверку новых изображений через pre-commit hook. Если размер файла превышает 100 КБ, разработчику предлагается его сжать.
Используйте изображения подходящего размера
Каждый раз, когда вы загружаете изображение, оно занимает память пропорционально своим размерам, а не весу файла.
Например, картинка размером 6000x4000 пикселей займет 96 МБ оперативной памяти, даже если она сжимается до 5 МБ. Если ее выводить в UIImageView размером 300x200 — израсходуете слишком много ресурсов.
• Apple рекомендует использовать технику Downsampling для уменьшения размеров изображения перед выводом:
Создайте кастомный класс UIImageView, который будет предупреждать, если изображение слишком большое для текущей рамки. Так сможете быстрее обнаружить проблему и оптимизировать ее.
Дубли — в помойку
В крупных проектах часто встречаются одинаковые изображения, добавленные разными разработчиками. Это увеличивает размер приложения и создает путаницу в управлении ресурсами.
• Настройте скрипт для автоматического поиска дубликатов на Python.
• Интегрируйте проверку в CI/CD-пайплайн, чтобы регулярно получать отчеты о дубликатах.
Удаляем неиспользуемые изображения
Регулярно удаляйте файлы, которые уже не юзаете.
• FengNiao — опенсорсный инструмент, который автоматически находит неиспользуемые изображения. Его можно настроить на отправку уведомлений в командный чат — так не грохните лишнее.
Эти пять стратегий помогут уменьшить размер приложения и оптимизиваровать его производительность. Убирайте за собой — тогда и клиентам будет комфортнее юзать ваш софт.
Post #3411
4.65K




- 👍 12
- 🔥 8
- ❤ 4
- ❤🔥 1
- 🤝 1