Стиль или Суть
Сообщение или Носитель
Риторика или Диалектика
Красота — это нечто поверхностное или же идущее из глубинных истин?
Что значит «хороший дизайн»?
Эстетические суждения относительны или абсолютны?
Это важные вопросы, которые обсуждались философами, художниками и поэтами на протяжении тысячелетий.
И пока мы продолжаем наши поиски красоты и понимания мира, рынок мобильных приложений в данной области однозначно утверждает:
Пользователи платят за красивые приложения.
При покупке iPhone, пользователь покупает также философию Apple: вещи должны не только хорошо работать, но и хорошо выглядеть. То же относится к разработке на iOS — некрасивый интерфейс пользователя сказывается и на программном коде.
Исторически даже для незначительного изменения внешнего вида приложения в iOS требовался набор хаков, сопряженных с опасностью отклонения приложения в AppStore. К счастью, начиная с iOS 5 у разработчиков есть новый инструмент:
Для реализации этого с сохранением существующей структуры
Сообщение или Носитель
Риторика или Диалектика
Красота — это нечто поверхностное или же идущее из глубинных истин?
Что значит «хороший дизайн»?
Эстетические суждения относительны или абсолютны?
Это важные вопросы, которые обсуждались философами, художниками и поэтами на протяжении тысячелетий.
И пока мы продолжаем наши поиски красоты и понимания мира, рынок мобильных приложений в данной области однозначно утверждает:
Пользователи платят за красивые приложения.
При покупке iPhone, пользователь покупает также философию Apple: вещи должны не только хорошо работать, но и хорошо выглядеть. То же относится к разработке на iOS — некрасивый интерфейс пользователя сказывается и на программном коде.
Исторически даже для незначительного изменения внешнего вида приложения в iOS требовался набор хаков, сопряженных с опасностью отклонения приложения в AppStore. К счастью, начиная с iOS 5 у разработчиков есть новый инструмент:
UIAppearance
.UIAppearance
позволяет единообразно управлять стилем компонентов во всем приложении.Для реализации этого с сохранением существующей структуры
UIKit
специалисты Apple реализовали достаточно интересное решение: UIAppearance
— это протокол, предоставляющий прокси-объект, который используется для конфигурирования объектов конкретного класса. Почему именно прокси, а не свойство или метод самого UIView
? Потому что существуют объекты, не входящие в иерархию UIView
, такие как UIBarButtonItem
, со своим собственным представлением. Внешний вид может быть изменен у всех компонентов определенного типа или только у привязанных к специфической иерархии:+appearance
возвращает прокси-объект для данного класса элементов.+appearanceWhenContainedIn:(Class )ContainerClass,...: возвращает прокси-объект для объектов, находящихся в определенном контейнере.
.
Дух перфекционизма жив и в iOS. Сообщество постоянно развивает систему в сфере пользовательского взаимодействия. Это делает разработку под iOS более сложной, но и гораздо более приятной.
Не соглашайтесь на полумеры.
Делайте свои приложения прекрасными от внешнего вида до реализации.