Платформонезависимая библиотека графического интерфейса
Пакет PIGUI , ( платформенно-независимый графический интерфейс пользователя ) — это программная библиотека которую программист использует для создания кода графического интерфейса пользователя для нескольких компьютерных платформ . В пакете представлены подпрограммы и/или объекты (вместе с подходом к программированию), которые независимы от графических интерфейсов, на которые нацелен программист. Чтобы программное обеспечение квалифицировалось как PIGUI, оно должно поддерживать несколько графических интерфейсов как минимум в двух разных операционных системах (например, поддержка OPEN LOOK и X11 на двух системах Unix не считается). Пакет не обязательно предоставляет какие-либо дополнительные функции переносимости. Собственный внешний вид является желательной функцией, но не является существенной для PIGUI.
Соображения
[ редактировать ]Использование PIGUI имеет ограничения, например, PIGUI занимается только аспектами графического интерфейса программы, поэтому за другие проблемы переносимости отвечает программист , большинство PIGUI замедляют выполнение результирующего кода, а программисты в значительной степени ограничены набором функций, предоставляемых ПИГИ.
Зависимость от PIGUI может привести к трудностям проекта, поскольку меньше людей знают, как кодировать какой-либо конкретный PIGUI, чем программировать графический интерфейс для конкретной платформы, что ограничивает количество людей, которые могут оказать расширенную помощь, и если поставщик выйдет из бизнеса , дальнейшая поддержка, включая будущие улучшения ОС, хотя наличие исходного кода может облегчить, но не устранить эту проблему. Кроме того, ошибки в любом пакете, включая PIGUI, попадают в рабочий код.
Альтернативные подходы
[ редактировать ]Веб-браузеры предлагают удобную альтернативу для многих приложений. Веб-браузеры используют HTML в качестве уровня представления для приложений, размещенных на центральном сервере , и веб-браузеры доступны практически для каждой платформы. Однако некоторые приложения плохо подходят для веб- парадигмы , требуя локального приложения с возможностями графического пользовательского интерфейса. Если такие приложения должны поддерживать несколько платформ, PIGUI может оказаться более подходящим.
Вместо использования PIGUI разработчики могут разделить свои приложения на объекты с графическим и не-графическим интерфейсом и реализовать объекты графического интерфейса в собственном API . Тогда при портировании нужно будет переписать под новую платформу только объекты GUI. Некоторые разработчики программного обеспечения рекомендуют этот образ действий, поскольку он лучше подходит для каждой платформы и устраняет накладные расходы, часто связанные с наборами инструментов PIGUI. [ нужна ссылка ] Очевидно, что это может потребовать больше усилий как при первоначальной разработке, так и при текущем сопровождении (отсутствие единой базы исходного кода). Это также означает научиться программировать для каждой целевой платформы, что (обычно) не является тривиальной задачей, отсюда и рынок пакетов PIGUI.
Подходы к пользовательскому интерфейсу
[ редактировать ]Большинство, если не все, пакетов PIGUI используют один из трех подходов к обеспечению независимости от платформы. Двумя наиболее распространенными подходами являются «многоуровневый» и «эмулируемый» пользовательский интерфейс, но перспективным подходом является «эмулируемый API» интерфейс.
Пакеты, использующие многоуровневый интерфейс, получают доступ к собственным сторонним инструментам для создания графического интерфейса, чтобы обеспечить соответствие внешнего вида каждому конкретному графическому интерфейсу. Многоуровневые пользовательские интерфейсы имеют то преимущество, что, поскольку они зависят от других продуктов, концентрирующихся на одном графическом интерфейсе, они должны предоставлять меньше программного обеспечения (и, следовательно, обычно менее дороги), чем эмулированные интерфейсы. Многоуровневые интерфейсы также с большей вероятностью будут иметь правильный внешний вид на всех платформах.
В эмулируемом пользовательском интерфейсе результирующий код PIGUI создает низкоуровневые вызовы, и все соответствие внешнего вида обрабатывается самим программным обеспечением PIGUI (например, для поддержки OpenWindows программное обеспечение НЕ будет создавать программу XView , которую необходимо скомпилировать). с набором инструментов XView; программное обеспечение будет создавать код, который напрямую взаимодействует с внутренними функциями X ). Чтобы предоставить эмулируемый пользовательский интерфейс, поставщику пакетов приходится разработать много дополнительного кода для поддержки внешнего вида. Эмулированные пользовательские интерфейсы имеют то преимущество, что кто-то, например, на рабочей станции X11 может видеть, как будет выглядеть пользовательский интерфейс в стиле Macintosh (поскольку внешний вид является частью продукта). Эмулированные интерфейсы могут обеспечить более быстрый графический интерфейс, чем многоуровневый интерфейс; кроме того, для создания программного обеспечения с графическим интерфейсом пользователя не требуется приобретать (или учиться использовать) другие пакеты.
Третий подход к независимости от платформы — эмуляция одного из поддерживаемых целевых API (обычно Microsoft Windows API ) для использования других графических интерфейсов. С помощью одного из этих продуктов можно было бы программировать с использованием эмулируемого API, и код был бы (в той степени, в которой продукт обеспечивает переносимость) переносимым на другие графические интерфейсы.
Функции
[ редактировать ]Пакеты PIGUI очень похожи по своей базовой функциональности; Каждый из них предоставляет подпрограммы или объекты, которые позволяют пользователю создавать окна , кнопки (обычные, а также переключатели и флажки ), меню и тому подобное. Некоторые области дифференциации:
- поддержка необходимых платформ,
- выбор языка реализации ,
- наличие исходного кода,
- поддержка принтеров и других устройств,
- поддержка различных схем кодировки символов, включая Unicode,
- возможность поддержки функций, подобных пакету Draw,
- растровых изображений (и значков ), поддержка
- подход к независимости от платформы,
- высокого уровня изящные виджеты и
- цена (полная цена, включая роялти и расходы на распространение),