Экспорт PDF-ассетов для iOS Asset Catalog — эффективный способ избавиться от размытых иконок и перегруженного хранилища. Ваш дизайнер скинул иконки в PNG, а на экране iPad Pro они тянут 2 МБ и выглядят размыто? Мы предлагаем перейти на PDF-ассеты — один вектор на @1x, @2x и @3x, экономия места и идеальная резкость. Наш опыт с Asset Catalog насчитывает более 5 лет и 50+ проектов. PDF в Asset Catalog — это не обычный PDF-документ, а упрощённый векторный контейнер, который Xcode использует для рендеринга иконок и простой графики. При включённых опциях Preserve Vector Data и Single Scale рендеринг происходит на уровне Core Graphics без пикселизации. Это особенно важно для Dynamic Type и больших экранов. PDF выигрывает в следующих сценариях: для монохромных иконок и простых форм без градиентов — PDF занимает в 3 раза меньше места, чем три PNG, и масштабируется без потери качества.
Когда PDF имеет смысл?
| Параметр | PDF (вектор) | PNG (растр) |
|---|---|---|
| Количество файлов | 1 на все масштабы | 3 (@1x, @2x, @3x) |
| Размер в Assets | ~2–5 КБ | ~50–200 КБ на @3x |
| Масштабирование | Без потери | Пикселизация при увеличении |
| Поддержка tintColor | Да (если монохромный) | Нет (только оригинальный цвет) |
| Рендеринг | Core Graphics (GPU) | Растр (CPU) |
PDF-ассеты рендерятся быстрее на GPU, что снижает нагрузку на батарею. При типичном наборе из 50 иконок экономия места в Assets составляет около 5 МБ — это заметно при скачивании приложения по сотовой сети.
Как подготовить векторные ассеты для iOS?
Шаг 1: Экспорт из Figma. В Figma выберите фрейм или компонент, в панели Export укажите формат PDF. Перед экспортом выполните Flatten для слоёв со сложными булевыми операциями — это уберёт лишние clipping paths. Убедитесь, что нет встроенных растровых изображений. Если иконка содержит градиенты или сложные эффекты, оставьте её в PNG — PDF для таких сценариев не подходит.
Шаг 2: Импорт в Xcode. Перетащите PDF в Asset Catalog. В инспекторе справа выберите Scale → Single Scale и поставьте галочку Preserve Vector Data. Это гарантирует векторный рендеринг даже при изменении размера иконки через Dynamic Type. Для шаблонных иконок также установите Render As: Template Image.
Шаг 3: Проверка. Запустите на симуляторе с разными размерами текста и темами (Light/Dark). Убедитесь, что tintColor корректно переопределяется для темплейт-иконок (для этого PDF должен быть монохромным с одним заливочным цветом). Проверьте также на реальном устройстве — симулятор не всегда точно эмулирует рендеринг.
Согласно документации Apple, опция Preserve Vector Data должна быть включена для всех PDF-ассетов, чтобы избежать пикселизации при масштабировании. Это стандартная практика в индустрии.
Какие ошибки чаще всего допускают?
| Ошибка | Причина | Решение |
|---|---|---|
| Иконка размыта | Не включён Preserve Vector Data | Включите опцию в инспекторе ассета |
| tintColor не работает | PDF цветной, не монохромный | Экспортируйте монохромный PDF с одним цветом |
| Clipping paths видны | Сложные булевы операции без flatten | Выполните Flatten перед экспортом |
| Размер иконки не совпадает | Размеры в PDF не соответствуют границам | Проверьте frame bounds в Figma |
Пример конфигурации Asset Catalog
В Xcode выберите ассет, в Attributes inspector установите Scale: Single Scale, Render As: Template Image, и включите Preserve Vector Data. Для Image Set также укажите Devices: Universal.Переход на PDF позволяет сэкономить до 80% объёма хранилища ассетов в проекте. Стоимость работы рассчитывается индивидуально в зависимости от количества и сложности иконок.
Что входит в работу и сроки
- Экспорт векторных ассетов из Figma / Sketch в PDF
- Настройка Asset Catalog с параметрами Single Scale и Preserve Vector Data
- Проверка отображения на симуляторе и реальном устройстве при разных размерах и темах
- Гарантируем корректную работу на всех устройствах iOS.
Сроки: экспорт и настройка полного набора иконок (до 100 шт.) занимает 2–4 часа. Свяжитесь с нами для консультации — наши инженеры помогут перевести проект на PDF-ассеты за 1 день. Закажите оценку текущего проекта — бесплатно.







