Векторные сцены и анимации - как побороть сегментацию в iOS
Привет, меня зовут Виталий Малаховский, я инженер в компании Genesis.
Недавно мне довелось поработать над интересной задачей: сделать анимацию для iOS приложения, которая будет сохранять пропорции при изменении размера (то есть быть векторной). И, конечно, она не должна терять при этом качество ресурсов. Порывшись в интернете, я нашел несколько способов сделать это:
- Нарисовать анимацию в Adobe After Effects, а потом легко мигрировать на любую платформу (iOS / macOS / Android), используя Lottie, — супервариант для нас как для разработчиков (потому что, по сути, и делать ничего не надо). Но для этого нужно, чтобы кто-нибудь знал After Effects, поэтому мы его не рассматривали.
- Использовать векторные ресурсы и относительные значения при работе с UIKit, — это именно то, о чём я вам расскажу.
Все примеры работы с ресурсами, которые я вам покажу, будут на Zeplin. Но если вы не пользуетесь Zeplin — не беда. Самостоятельно найдите размеры ресурсов в любой другой удобной для вас программе.
Векторные ресурсы
Мы будем использовать PDF формат ресурсов — это векторный формат, поэтому мы можем масштабировать их настолько, насколько нам нужно, — а значит одним файлом можно пользоваться для всех разрешений. Для этого загляните в xcassets и найдите необходимый PDF — или добавьте его туда сразу, если его там еще нет