Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #53, АПРЕЛЬ 2005 г.

Выделка шкурок в домашних условиях

6th (6th@mail.ru)

Спецвыпуск: Хакер, номер #053, стр. 053-080-1


Пишем плеер с поддержкой скинов

Время диктует свои условия: если хочешь поднять спрос на свой продукт, сделай его привлекательным. Продавцы реального мира заворачивают товар в красочную обертку, а продавцы виртуального - работают над интерфейсом, способным заставить пользователя потерять голову и побежать покупать их программу :). Одному из методов создания такого интерфейса - шкурам (скинам) - и посвящена эта статья.

Пользователь сегодня привередливый пошел, мало им одной функциональности - красивый интерфейс требуют. Показываешь заказчику БД: клиент-сервер, резервное копирование, импорт/экспорт данных, шлюз в 1С, а он смену фона и шрифта таблиц просит :). Хотя понять его можно: ему предстоит целыми днями работать в конторе с твоим творением. Хочется эстетики, удобства, да и вообще, кто красивые вещи не любит? Вот и получается, что при продаже программы, будь то shareware или работа на заказ, профессионально сделанный и красивый интерфейс занимает далеко не последнее место. Теперь, когда software engineering – это настоящий рынок, приходится и методы использовать рыночные, то есть упаковывать товар красиво и со вкусом. Пользователь видит симпатичный сплэш во время загрузки, сменные скины, прилипание к краю экрана и прочие изыски и радуется - чувствует, что программа стоящая. Особенно важны скины. Дело в том, что как ни старайся, в плане интерфейса всем не угодишь, а тут человек сам решает, как будет выглядеть программа. Свобода выбора – ценная вещь, а тут она еще и реализуется просто. Конечно, если твое творение по количеству глюков обгоняет Win95 и с завидным постоянством предлагает аварийно завершиться, никакой красивый интерфейс тебя не спасет, но если программа работает, как старинные часы работы итальянского мастера, почему бы не добавить немного эстетики? Я убедил тебя освоить технологию скинов? Отлично, начинаем.

Компоненты

Если у тебя достаточно знаний, времени и энтузиазма для написания собственного skins-engine, можешь дальше не читать :). Однако предупреждаю: к тому времени, когда ты в одиночку напишешь нечто близкое к профессиональным скиновым движкам, весь остальной мир уже перейдет на Windows 2010 с полностью трехмерным интерфейсом. Есть известная притча "О том, как программисты льва в клетку сажали".

Пустыня. В ней лев. Клетка. Поставлена задача посадить льва в эту клетку. Программист на C++ проектирует клетку таким образом, чтобы лев был ее составной частью. При инициализации клетки лев автоматически генерируется внутри. Программист на Аде говорит, что лев и клетка - это объекты разных типов и нечего морочить ему голову некорректными задачами. Программист на Delphi пишет во все конференции: "Народ, где взять компонент, который ищет в пустыне льва и помещает его в клетку?" :). Так что не будем отступать от стереотипа и начнем поиски компонента, способного облегчить поставленную задачу.

Библиотек, реализующих поддержку скинов, великое множество, но активно развивающихся и удобных в использовании гораздо меньше. Выберем для изучения библиотеку как раз из такого меньшинства: удобную, функциональную и не заброшенную программистом в дальний ящик.

Содержание  Вперед на стр. 053-080-2