Нестандартные GUI-тулкиты: знакомство с Juce
Содержание:
1.Введение (Вы читаете данный раздел);
2. Функциональность;
3. Установка;
4. Первая программа.
Библиотека Juce (Jules' Utility Class Extensions, http://www. rawmaterialsoftware.com/juce.php) стоит особняком в мире кроссплатформенных GUI-тулкитов. С первого взгляда - это еще один тулкит на С++ из разряда «все в одном». Однако дизайн библиотеки, используемые методики программирования и выдающийся внешний вид виджетов делают Juce исключительно оригинальным решением.
Juce распространяется по двойной лицензии: GPL для открытых разработок и платная лицензия для коммерческих. Это несколько сужает область применения тулкита, поскольку даже такие «монстры», как Qt, уже отказались от практики двойного лицензирования в пользу полной открытости. Причины такого консерватизма скорее всего кроются в том, что Juce практически полностью написан одним человеком.
Juce работает в Windows, GNU/Linux, MacOS X и iOS, причем подход к обеспечению кроссплатформенности кардинально отличается от принятого в Qt или wxWidgets. Juce не использует «родные» виджеты каждой конкретной платформы, а рисует абсолютно все элементы интерфейса самостоятельно, пользуясь только системными функциями низкого уровня (по умолчанию самостоятельно рисуются даже рамки окон, хотя можно переключаться на стандартные системные обрамления). Даже шрифты в Juce отображаются с помощью собственного «движка». Это позволяет добиться абсолютной попиксельной идентичности интерфейса во всех поддерживаемых системах. Вся графика и шрифты в Juce сглаживаются по умолчанию, практически все элементы интерфейса рисуются в векторном виде и могут свободно масштабироваться, виджеты поддерживают прозрачность, градиенты, тени, анимацию и фоновую графику. Одним словом - виджеты Juce выглядят очень привлекательно (см. рис. ниже).
Изначально Juce создавался для написания утилит для работы со звуковыми эффектами и активно используется для этих целей по сей день. В то же время он не является узким нишевым решением и подходит для создания практически любых приложений. Juce имеет некоторый «перекос» в сторону Windows и MacOS Х - для Linux нет бинарных пакетов и недоступны некоторые наиболее «продвинутые» функции тулкита, такие как создание плагинов для браузеров, однако все базовые возможности не зависят от платформы.
Juce принципиально не может эмулировать внешний вид системных виджетов и не предназначен для создания приложений, тесно интегрированных в систему. Его главная «экологическая ниша» - создание оригинальных, выделяющихся на общем фоне программ, которые практически не зависят от внешних библиотек.
Главной проблемой Juce, как и многих других открытых проектов, является отсутствие хорошей документации. По сети ходит один единственный англоязычный учебник (http://code.google. com/p/ugen/wiki/JuceTutorial), однако он ориентирован на абсолютных новичков и объясняет только самые базовые вещи. Остальное нужно осваивать по справочной документации классов с официального сайта и достаточно хорошо документированным примерам.
1.
2. Функциональность;
3. Установка;
4. Первая программа.
Библиотека Juce (Jules' Utility Class Extensions, http://www. rawmaterialsoftware.com/juce.php) стоит особняком в мире кроссплатформенных GUI-тулкитов. С первого взгляда - это еще один тулкит на С++ из разряда «все в одном». Однако дизайн библиотеки, используемые методики программирования и выдающийся внешний вид виджетов делают Juce исключительно оригинальным решением.
Juce распространяется по двойной лицензии: GPL для открытых разработок и платная лицензия для коммерческих. Это несколько сужает область применения тулкита, поскольку даже такие «монстры», как Qt, уже отказались от практики двойного лицензирования в пользу полной открытости. Причины такого консерватизма скорее всего кроются в том, что Juce практически полностью написан одним человеком.
Juce работает в Windows, GNU/Linux, MacOS X и iOS, причем подход к обеспечению кроссплатформенности кардинально отличается от принятого в Qt или wxWidgets. Juce не использует «родные» виджеты каждой конкретной платформы, а рисует абсолютно все элементы интерфейса самостоятельно, пользуясь только системными функциями низкого уровня (по умолчанию самостоятельно рисуются даже рамки окон, хотя можно переключаться на стандартные системные обрамления). Даже шрифты в Juce отображаются с помощью собственного «движка». Это позволяет добиться абсолютной попиксельной идентичности интерфейса во всех поддерживаемых системах. Вся графика и шрифты в Juce сглаживаются по умолчанию, практически все элементы интерфейса рисуются в векторном виде и могут свободно масштабироваться, виджеты поддерживают прозрачность, градиенты, тени, анимацию и фоновую графику. Одним словом - виджеты Juce выглядят очень привлекательно (см. рис. ниже).
Изначально Juce создавался для написания утилит для работы со звуковыми эффектами и активно используется для этих целей по сей день. В то же время он не является узким нишевым решением и подходит для создания практически любых приложений. Juce имеет некоторый «перекос» в сторону Windows и MacOS Х - для Linux нет бинарных пакетов и недоступны некоторые наиболее «продвинутые» функции тулкита, такие как создание плагинов для браузеров, однако все базовые возможности не зависят от платформы.
Juce принципиально не может эмулировать внешний вид системных виджетов и не предназначен для создания приложений, тесно интегрированных в систему. Его главная «экологическая ниша» - создание оригинальных, выделяющихся на общем фоне программ, которые практически не зависят от внешних библиотек.
Главной проблемой Juce, как и многих других открытых проектов, является отсутствие хорошей документации. По сети ходит один единственный англоязычный учебник (http://code.google. com/p/ugen/wiki/JuceTutorial), однако он ориентирован на абсолютных новичков и объясняет только самые базовые вещи. Остальное нужно осваивать по справочной документации классов с официального сайта и достаточно хорошо документированным примерам.