GNUstep - Википедия - GNUstep
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Снимок экрана GNUstep, показывающий Window Maker и множество приложений, разработанных с помощью библиотек GNUstep, включая гомоку игра, калькулятор, и TextEdit.[1] | |
Разработчики) | Разработчики GNUstep |
---|---|
Стабильный выпуск | make 2.8.0, base 1.27.0, gui 0.28, back 0.28 / 5 апреля 2020 г. |
Предварительный выпуск | только в репозитории ПО SVN |
Написано в | Цель-C |
Операционная система | Кроссплатформенность |
Тип | Набор инструментов для виджетов |
Лицензия | Стандартная общественная лицензия GNU для приложений Стандартная общественная лицензия ограниченного применения GNU для библиотек. |
Интернет сайт | www |
GNUstep это бесплатно программное обеспечение реализация Какао (ранее OpenStep ) Цель-C рамки, набор инструментов для виджетов, и инструменты разработки приложений для Unix-подобный операционные системы и Майкрософт Виндоус. Это часть Проект GNU.
GNUstep предлагает кроссплатформенный, объектно-ориентированный IDE. Помимо значения по умолчанию Цель-C интерфейс, GNUstep также имеет привязки за Ява, Рубин,[2] GNU Guile и Схема.[3] Разработчики GNUstep отслеживают некоторые дополнения к Apple Какао чтобы оставаться совместимым. Корни интерфейса приложения GNUstep такие же, как и корни Какао: Следующий шаг и OpenStep. Таким образом, GNUstep предшествует Cocoa, который появился, когда яблоко приобретенный Следующий технологии и включил ее в разработку оригинального Mac OS X, в то время как GNUstep изначально создавался GNU разработчикам реплицировать технически амбициозные удобные для программистов функции NeXTSTEP.
История
GNUstep возник, когда Пол Кунц и другие на Стэнфордский центр линейных ускорителей хотел портировать Бегемот из Следующий шаг на другую платформу. Вместо того, чтобы переписывать HippoDraw с нуля и повторно использовать только дизайн приложения, они решил переписать следующий шаг объект слой, от которого зависело приложение. Это была первая версия libobjcX. Это позволило им перенести HippoDraw на системы Unix, на которых работает X Window System без изменения ни одной строчки исходного кода приложения. После того, как спецификация OpenStep была опубликована в 1994 году, они решили написать новую objcX которые будут придерживаться новых API. Программное обеспечение стало известно как «GNUstep».[4]
Архитектура программного обеспечения
Рендеринг
GNUstep содержит набор графические элементы управления написан на языке программирования Objective-C.
В графический интерфейс пользователя (GUI) из GNUMail состоит из графических элементов управления. GNUMail должен взаимодействовать с оконная система, например X11 или же Wayland, а его графический пользовательский интерфейс должен быть оказано. Бэкэнд GNUstep предоставляет небольшой набор функций, используемых библиотекой пользовательского интерфейса для взаимодействия с фактическим оконная система. Он также имеет движок рендеринга который подражает обычным Постскриптум функции. Пакет gnustep-back предоставляет следующие серверные части:
- cairo - бэкэнд по умолчанию, использующий Каир Библиотека 2D-графики.
- winlib - бэкэнд по умолчанию в системах Microsoft Windows. Каир и Windows API варианты.
- art - старый (устаревший) бэкэнд в unix-подобных системах. Использует векторную графическую библиотеку PostScriptlike 2d. Либарт.
- xlib - старый (устаревший) бэкэнд X11.
Парадигмы
GNUstep наследует некоторые принципы проектирования, предложенные в OPENSTEP (GNUstep предшествует Cocoa, но Cocoa основан на OPENSTEP), а также Цель-C язык.
- Модель – представление – контроллер парадигма
- Цель – действие
- Перетаскивание
- Делегация
- Пересылка сообщений (через NSInvocation)
Прочие интерфейсы
Помимо интерфейса Objective-C, некоторые небольшие проекты под эгидой GNUstep реализуют другие API от Apple:
- Библиотека Boron стремится реализовать Углеродный API. Это очень неполно.[5]
- Библиотека CoreBase предназначена для совместимости с Основной фундамент. Это недостаточно для того, чтобы компонент Base (Foundation Kit) был просто оболочкой вокруг него.[6]
- Библиотека QuartzCore реализует Основная анимация API.[7] Библиотека Opal реализует Кварц 2D.
По состоянию на февраль 2020 г.[Обновить], нет проектов, которые строят Язык программирования Swift против среды GNUstep Objective-C.
Приложения
Вот несколько примеров приложений, написанных для GNUstep или перенесенных на нее.[8]
Написано с нуля
- Адреса, адрес /менеджер контактов
- Étoilé, а среда рабочего стола
- GNUMail, почтовый клиент
- Библиотека базы данных GNUstep 2, Платформа корпоративных объектов клон
- GNUstepWeb, сервер приложений, совместимый с WebObjects 4.x
- Горм, построитель интерфейса
- GWorkspace, рабочее пространство и Файловый менеджер
- Grr, an Читатель RSS-каналов
- Оолит, клон Элитный, космический симулятор с торговыми компонентами
- ЦЕНА, приложение для визуализации
- ProjectCenter, Конструктор проектов или же Xcode эквивалент.
- TalkSoup, IRC клиент
- Терминал
- Молния, а файловый архиватор инструмент
Портировано из NeXTSTEP, OPENSTEP или macOS
Форки GNUstep
- Универсальная платформа Windows, который включает WinObjC набор, состоящий из различных частей GNUstep и Microsoft собственные реализации таких вещей, как Какао Touch API.[9]
Возможности класса
Фондовый комплект
В Фондовый комплект предоставляет базовые классы, такие как классы-оболочки и классы структур данных.
- струны
- коллекции (массивы, множества, словари) и счетчики
- управление файлами
- архивирование объекта
- продвинутая манипуляция датой
- распределенные объекты и межпроцессное взаимодействие
- Обработка URL
- уведомления (и распределенные уведомления)
- легкая многопоточность
- таймеры
- замки
- Обработка исключений
Комплект приложений
В Комплект приложений предоставляет классы, ориентированные на графический интерфейс пользователя возможности.
- элементы пользовательского интерфейса (представления таблиц, браузеры, матрицы, представления прокрутки)
- графика (WYSIWYG, графика в стиле постскриптума, пути Безье, обработка изображений с несколькими представлениями, графические контексты)
- управление цветом (калиброванные по сравнению с цветами устройства; CMYK, RGB, HSB, серые и именованные цветовые представления; альфа-прозрачность)
- Особенности текстовой системы: богатый текстовый формат, текстовые вложения, диспетчер макета, наборщик, правила, стили абзацев, управление шрифтами, орфография
- управление документами
- функции печати: операции печати, панель печати и макет страницы
- менеджер помощи
- картон (также известный как буфер обмена) услуги
- программа проверки орфографии
- привязки рабочего пространства для приложений
- перетащить и отпустить операции
- Сервисы совместное использование приложений
Смотрите также
- Дарлинг (программное обеспечение), уровень совместимости, основанный на GNUstep
- Étoilé, Среда рабочего стола на основе GNUstep
- GNUstep Renaissance, фреймворк для XML-описания переносимого GNUstep / Mac OS X пользовательские интерфейсы
- Колонны Миллера, метод просмотра дерева файлов в программе просмотра файлов GWorkspace использует
- Список недвижимости, часто используемый формат файла для хранения пользовательских настроек
- StepTalk, Платформа сценариев
- Window Maker, оконный менеджер, предназначенный для эмуляции графического интерфейса NeXT как часть более широкого проекта GNUstep
Рекомендации
- ^ Портировано из Следующий шаг. Последние сборки, собранные с помощью libobjc2, могут использовать более новую версию, перенесенную из Mac OS X Снежный барс
- ^ «Инструменты разработчика GNUstep - RIGS». www.gnustep.org. Получено 10 апреля 2018.
- ^ GScheme В архиве 2005-12-18 в Wayback Machine
- ^ "История GNUstep". gnustep.made-it.com. Получено 10 апреля 2018.
- ^ "gnustep / libs-boron: Бор - это атом, предшествующий углероду". GitHub. GNUstep. 23 марта 2019.
- ^ "gnustep / libs-corebase". GNUstep. 19 ноября 2019.
- ^ "gnustep / libs-quartzcore". GNUstep. 11 декабря 2019.
- ^ «Категория: Приложения - GNUstepWiki». wiki.gnustep.org. Получено 10 апреля 2018.
- ^ "GNUstep Objective-C Runtime 2.0". GitHub.
Примечание. Проект WinObjC от Microsoft содержит удобную ветвь этой библиотеки, которая включает обходной путь для решения проблемы инкрементного связывания.
внешняя ссылка
- GNUstep.org домашняя страница проекта
- Приложения GNUstep и руководства для разработчиков
- Проект приложения GNUstep
- Интервью 2003 года с разработчиком GNUstep Николой Перо В архиве 2007-01-07 на Wayback Machine
- Еженедельное интервью FLOSS с Грегори Казаменто и Риккардо Моттола из GNUstep
- GNUstep on Debian, FreeBSD, MacPorts
- Окружение рабочего стола NEXTSPACE, основанное на GNUstep