Невероятно интеренсный инструмент

Появление iPad 3 все ждали, а разработчики и особенно знающие дизайнеры боялись. Мало того, что при использовании кастомизированных элементов, универсальные приложения делать уже неправильно. Представьте себе, сколько будет весить весь растр для retina iPad, и сколько прийдетсься качать и держать на устройстве данных iPhone/iPod пользователям. Им же эта графика не нужна. Поэтому красивые приложения делать универсальным - это неуважение к пользователям iPhone/iPod и более того ограничивает каналы доставки приложения на устройства:  скачать такое в 3Г сетях будет нереально (я говорю об объемах от 50 до 300 мегабайт).

Как вариант - перестать делать  универсальные приложения. Но то, что пользователи  iPad1/2 все равно вынуждены будут держать ретиновские растры на устройстве, тоже не очень хорошо. В случае с iPhone retina все было не так страшно, так как размер экрана не такой гигантский как на iPad.

И тут на рынок вышло нереально здоровское решение. Правда вышло очень скромно и тихо, забившись в уголок. Но я хочу о нем прокричать со своего бложка, правда опять-же это будет не так громко как хтелось бы. Встречайте, невероятно  крутой инструмент под названием PaintCode:
 В чем же его сила ? А в том что это по настоящему решает проблему масштабируемости интерфейса. Визуально он прост в использовании и понятен для дизайнера, дизайнер рисует векторную графику и в итоге получаем Quartz код для отрисовки. Вектор - масштабируется и рисование всей графики происходит кодом, что уменьшает приложение в разы и избавляет от необходимости делать отдельную графику для retina и простых дисплеев. В качестве подтверждения, вот демка, которая демонстирует как просто это делаеться:


Вдумчивый и придирчивый писатель спросит меня: "А как-же произовдительность и особенно анимация?". И будет прав. При таком подходе скорость отрисовки будет ниже, а в случае анимации, так и вообще. Но есть ряд простых и эффективных решений. Что касается отрисовки - то в подавляющем большинстве это будет просиходить незаметно быстро и разница будет чисто формальная. Но если интерфейс настолько комплексный, то получившиеся элементы можно будет закэшировать в растре для дальнейшего использования. Что касается анимации, так это решается просто - анимацию делать нужно с растеризацией, то-есть до анимации создается пиксельный кэш, а во время анимации все операции происходят именно с ним. Об этом рассказывалось в  одном из выступлений  WWDC 2011.

Ну и большой плюшкой являеться то, что генериться код как для iOS так и для Mac, что было очень осмотрительно со стороны разработчиков.

Как по мне, так настоящая сложность во внедрении этого иснтрумента, так это заставить ленивых дизайнеров рисовать в векторе и осваивать новы инструмент (пусть даже такой простой как и PaintApp).


Если у кого есть уже опыт управления с этим инструментом, пожалуйста отпишитесь.