GNUstep

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:19, 24 декабря 2016.
GNUstep
GNUstep 1.png
Разработчики: GNUstep Developers
Предыдущий выпуск:
make 2.6.8,
base 1.24.9,
gui 0.25.0,
back 0.25.1 / 21 April 2016 года; 4 years ago (2016-04-21)
Написана на: Objective-C
Операционная система: Cross-platform
Лицензия: GNU General Public License для приложений,
GNU Lesser General Public License для библиотек
Веб-сайт www.gnustep.org

GNUstep — это кроссплатформенный, объектно-ориентированный фреймворк для разработки настольных приложений. Основываясь на спецификации OpenStep, первоначально созданной NeXT (теперь Apple), GNUstep позволяет разработчикам быстро создавать сложное программное обеспечение, используя большую библиотеку компонентов многократного использования кода. GNUstep используется в производственных условиях в ряде организаций.

История

GNUstep был создан, когда Paul Kunz и другие в Стэнфордском центре линейного ускорителя захотели перенести HippoDraw от NeXTSTEP в другую платформу. Вместо того, чтобы переписывать HippoDraw с нуля и использовать только дизайн приложения, они решили переписать слой объекта NeXTSTEP, от которого зависело приложение. Это была первая версия libobjcX. Это позволило им перенести HippoDraw к системам Unix, работающих под управлением системы X Window, не меняя ни одной строчки исходного кода приложения. После того, как спецификация OpenStep была выпущена для публики в 1994 году, они решили написать новую objcX, который будет придерживаться новых API. Программное обеспечение стало известно как "GNUstep".

Архитектура программного обеспечения

Визуализация

GNUstep содержит набор графических элементов управления, написанных на языке программирования Objective-C. Графический интерфейс пользователя (GUI), например, GNUMail состоит из графического элемента контроля. GNUMail должен взаимодействовать с оконной системой, например, X11 или Wayland, а его графический интерфейс пользователя должен быть предоставлен. Бэкенд GNUStep обеспечивает небольшой набор функций, используемых библиотекой пользовательского интерфейса для взаимодействия с реальной оконной системой. Она также имеет движок визуализации, который эмулирует общие функции PostScript. Пакет GNUstep-back обеспечивает следующие бэкенды:

  • cairo – бэкенд по умолчанию, использует графическую библиотеку Cairo 2D.
  • winlib – бэкенд по умолчанию в системах Microsoft Windows.
  • art – старый бэкенд на Unix системах. Использует основанную на векторе PostScriptlike 2-ю графическую библиотеку libArt.
  • xlib – старый бэкенд X11.

Парадигмы

GNUstep наследует некоторые принципы разработки, предложенные в OPENSTEP (GNUstep предшествует Cocoa, но Cocoa основано на OPENSTEP), а также Objective-C.

  • Model–view–controller (модель-представление-контроллер)
  • Target–action (целевое действие)
  • Drag-and-drop (в переводе с английского означает буквально тащи-и-бросай; Бери-и-Брось)
  • Delegation
  • Обмен сообщениями (через NSInvocation)
Пример работы GNUStep

Приложения

Вот некоторые примеры приложений, написанных для или перенесеных на GNUstep.

Написанные с нуля

  • Addresses
  • GNUMail, почтовый клиент
  • GNUstep Database Library 2, клон Enterprise Objects Framework
  • GNUstepWeb, серверное приложение
  • Gorm, интерфейс
  • GWorkspace, файловый менеджер
  • Grr, считыватель RSS ленты
  • Oolite, клон Elite, космической игры симулятора
  • PRICE, приложение изображений
  • ProjectCenter, the Project Builder или эквивалент Xcode.
  • TalkSoup
  • Terminal
  • Zipper
Пример работы GNUStep

Перенесенные от NeXTSTEP, OPENSTEP или Mac OS X

  • Adun
  • BioCocoa
  • Chess
  • Cenon
  • EdenMath
  • Eggplant
  • Emacs
  • Fortunate
  • Gomoku
  • NeXTGO
  • TextEdit
  • TimeMon

Возможности класса

Foundation Kit

Foundation Kit предоставляет базовые классы, такие как классы-оболочки и классов структуры данных.

  • строки
  • коллекции (массивы, наборы, словари) и счетчики
  • файловый менеджер
  • архивирование объекта
  • манипуляции с данными
  • распределение объектов и взаимодействие между процессами
  • обработка URL
  • уведомления (и распределенные уведомления)
  • многопоточность
  • таймеры
  • замки
  • обработка исключений

Application Kit

Application Kit предоставляет классы, ориентированные на графические возможности пользовательского интерфейса.

  • элементы пользовательского интерфейса (вид таблиц, браузеры, матрицы)
  • графика (WYSIWYG,обработка изображения с многократными представлениями, графическими контекстами)
  • управление цветом (калибровка цветов устройства; CMYK, RGB, HSB, серые и названные цветные представления; альфа-прозрачность)
  • текстовые характеристики системы: Rich Text Format, текстовые приложения, менеджер по расположению, наборщик, правила, стили параграфа, управление шрифтом
  • управление документооборотом
  • функции печати: Операции печати, печать панели и макет страницы
  • программа проверки орфографии
  • рабочая область привязки для приложений
  • операции перетаскивания
  • обмен информацией между приложениями

Источники

  • GNUstep [Электронный ресурс]: Официальный сайт GNUstep / Дата обращения: 31.10.2016. — Режим доступа: http://gnustep.org/
  • GNUstep [Электронный ресурс]: GNUstep Applications and Developer Tutorials / Дата обращения: 31.10.2016. — Режим доступа: http://www.gnustep.it
  • The GNUstep Application Project [Электронный ресурс]: The GNUstep Application Project / Дата обращения: 31.10.2016. — Режим доступа: http://gap.nongnu.org/
  • Network Theory Ltd [Электронный ресурс]: Интервью 2003 года с разработчиком GNUstep Николя Перо / Дата обращения: 31.10.2016. — Режим доступа: http://www.network-theory.co.uk/articles/pero.html