TGViewer
Мобильная разработка Мобильная разработка @mobi_dev · 13.1K subscribers
Post #3411 4.65K
Уменьшаем вес приложения и ускоряем его работу: 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 — опенсорсный инструмент, который автоматически находит неиспользуемые изображения. Его можно настроить на отправку уведомлений в командный чат — так не грохните лишнее.

Эти пять стратегий помогут уменьшить размер приложения и оптимизиваровать его производительность. Убирайте за собой — тогда и клиентам будет комфортнее юзать ваш софт.
  • 👍 12
  • 🔥 8
  • ❤ 4
  • ❤‍🔥 1
  • 🤝 1
More from @mobi_dev
  1. Oct 7, 2026Как нативные контролы SwiftUI меняются в iOS 26 без правок интерфейса Один бинарник, собра…
  2. Oct 7, 2026Как собрать стабильную пирамиду тестов для Flutter-приложения Руководство по тестированию…
  3. Oct 7, 2026Почему @ObservedObject сбрасывает модель в SwiftUI @ObservedObject следит за изменениями м…
  4. Oct 6, 2026Как отделить эффект Baseline Profiles от очистки запуска Android-приложения В Compose-прил…
  5. Oct 6, 2026Как внедрить Maestro в React Native и не дублировать E2E-тесты Команда Add Jam сравнила вн…
  6. Oct 6, 2026Как ускорить React Native-приложение с картой и Zustand На слабых Android-устройствах карт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →