Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Снимок экрана 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 - это бесплатная программная реализация фреймворков 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]
Архитектура программного обеспечения [ править ]
Рендеринг [ править ]
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
Ссылки [ править ]
- ^ Портировано из NeXTSTEP . Последние сборки, собранные с помощью libobjc2, могут использовать более новую версию, перенесенную из Mac OS X Snow Leopard.
- ^ "Инструменты разработчика GNUstep - RIGS" . www.gnustep.org . Проверено 10 апреля 2018 года .
- ^ GScheme Архивировано 18 декабря 2005 г. в 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 . |
- Домашняя страница проекта GNUstep.org
- Приложения и руководства для разработчиков GNUstep
- Проект приложения GNUstep
- Интервью 2003 года с разработчиком GNUstep Николой Перо, архивировано 7 января 2007 года на Wayback Machine.
- Еженедельное интервью FLOSS с Грегори Казаменто и Риккардо Моттола из GNUstep
- GNUstep на Debian , FreeBSD , MacPorts
- Окружение рабочего стола NEXTSPACE, основанное на GNUstep