Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

GNUstep - это бесплатная программная реализация фреймворков Objective-C Cocoa (ранее OpenStep ) , инструментария виджетов и инструментов разработки приложений для Unix-подобных операционных систем и Microsoft Windows . Это часть проекта GNU .

GNUstep предлагает кроссплатформенную объектно-ориентированную среду разработки . Помимо интерфейса Objective-C по умолчанию , GNUstep также имеет привязки для Java , Ruby , [2] GNU Guile и Scheme . [3] Разработчики GNUstep отслеживают некоторые дополнения к Apple Cocoa, чтобы они оставались совместимыми. Корни интерфейса приложения GNUstep такие же, как и корни Какао: NeXTSTEP и OpenStep . Таким образом, GNUstep предшествовал Cocoa, который появился, когда Apple приобрела NeXT.'' и включил ее в разработку оригинальной Mac OS X , в то время как GNUstep изначально был попыткой разработчиков GNU воспроизвести технически амбициозные функции NeXTSTEP, удобные для программистов.

История [ править ]

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

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

Иллюстрирует программные компоненты стека рабочего стола Linux, такие как сервер дисплея , библиотеки элементов управления графикой или графические оболочки .

Рендеринг [ править ]

GNUstep содержит набор графических элементов управления, написанных на языке программирования Objective-C.

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

  • cairo - бэкэнд по умолчанию с использованием библиотеки 2D-графики Cairo .
  • winlib - бэкэнд по умолчанию в системах Microsoft Windows. Варианты Cairo и Windows API .
  • art - старый (устаревший) бэкэнд в unix-подобных системах. Использует библиотеку векторной графики PostScriptlike 2d Libart .
  • xlib - старый (устаревший) бэкэнд X11.

Парадигмы [ править ]

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

  • Парадигма модель – представление – контроллер
  • Цель – действие
  • Перетаскивание
  • Делегация
  • Пересылка сообщений (через NSInvocation)

Другие интерфейсы [ править ]

Помимо интерфейса Objective-C, некоторые небольшие проекты под эгидой GNUstep реализуют другие API от Apple:

  • Библиотека Boron предназначена для реализации Carbon API . Это очень неполно. [5]
  • Библиотека CoreBase разработана для совместимости с Core Foundation . Это недостаточно для того, чтобы компонент Base (Foundation Kit) был просто оболочкой вокруг него. [6]
  • Библиотека QuartzCore реализует API Core Animation . [7] Библиотека Opal реализует Quartz 2D .

По состоянию на февраль 2020 года нет проектов, которые строили бы язык программирования Swift в среде GNUstep Objective-C.

Приложения [ править ]

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

Написано с нуля [ править ]

  • Адреса, адрес / менеджер контактов
  • Étoilé, среда рабочего стола
  • GNUMail , почтовый клиент
  • Библиотека базы данных GNUstep 2, клон Enterprise Objects Framework
  • GNUstepWeb , сервер приложений, совместимый с WebObjects 4.x
  • Горм , конструктор интерфейсов
  • GWorkspace, рабочее пространство и файловый менеджер
  • Grr, программа для чтения RSS-каналов
  • Oolite , клон Elite , космического симулятора с торговыми компонентами.
  • ЦЕНА, приложение для визуализации
  • ProjectCenter, Project Builder или эквивалент Xcode .
  • TalkSoup, клиент IRC
  • Терминал
  • Zipper, инструмент для архивирования файлов

Портировано из NeXTSTEP, OPENSTEP или macOS [ править ]

  • Адун
  • БиоКокаа
  • Шахматы
  • Сенон
  • EdenMath
  • Баклажан
  • Emacs
  • Удачливый
  • Гомоку
  • NeXTGO
  • PikoPixel
  • TextEdit
  • ВремяПн

Форки GNUstep [ править ]

  • Универсальная платформа Windows , которая включает набор WinObjC, состоящий из различных частей GNUstep и собственных реализаций Microsoft таких вещей, как Cocoa Touch API. [9]

Возможности класса [ править ]

Foundation Kit [ править ]

Фонд комплект содержит основные классов , такие как классы обертки и классы структуры данных.

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

Комплект приложений [ править ]

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

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

См. Также [ править ]

  • Darling (программное обеспечение) , уровень совместимости, основанный на GNUstep
  • GNUstep Renaissance , фреймворк для XML-описания переносимых пользовательских интерфейсов GNUstep / Mac OS X
  • Столбцы Миллера , метод просмотра дерева файлов в программе просмотра файлов GWorkspace
  • Список свойств , часто используемый формат файла для хранения пользовательских настроек
  • StepTalk , Фреймворк для сценариев
  • Window Maker , оконный менеджер, предназначенный для эмуляции графического интерфейса NeXT как часть более широкого проекта GNUstep

Ссылки [ править ]

  1. ^ Портировано из NeXTSTEP . Последние сборки, собранные с помощью libobjc2, могут использовать более новую версию, перенесенную из Mac OS X Snow Leopard.
  2. ^ "Инструменты разработчика GNUstep - RIGS" . www.gnustep.org . Проверено 10 апреля 2018 года .
  3. ^ GScheme Архивировано 18 декабря 2005 г. в Wayback Machine
  4. ^ "История GNUstep" . gnustep.made-it.com . Проверено 10 апреля 2018 года .
  5. ^ "gnustep / libs-boron: Бор - это атом, предшествующий углероду" . GitHub . GNUstep. 23 марта 2019.
  6. ^ "gnustep / libs-corebase" . GNUstep. 19 ноября 2019.
  7. ^ "gnustep / libs-quartzcore" . GNUstep. 11 декабря 2019.
  8. ^ «Категория: Приложения - GNUstepWiki» . wiki.gnustep.org . Проверено 10 апреля 2018 года .
  9. ^ "GNUstep Objective-C Runtime 2.0" . GitHub . Примечание. Проект WinObjC от Microsoft содержит удобную ветвь этой библиотеки, которая включает обходной путь для решения проблемы инкрементного связывания.

Внешние ссылки [ править ]

  • Домашняя страница проекта GNUstep.org
  • Приложения и руководства для разработчиков GNUstep
  • Проект приложения GNUstep
  • Интервью 2003 года с разработчиком GNUstep Николой Перо, архивировано 7 января 2007 года на Wayback Machine.
  • Еженедельное интервью FLOSS с Грегори Казаменто и Риккардо Моттола из GNUstep
  • GNUstep на Debian , FreeBSD , MacPorts
  • Окружение рабочего стола NEXTSPACE, основанное на GNUstep