GNUkrok - GNUstep
Deweloper(zy) | Programiści GNUstep |
---|---|
Wersja stabilna | zrobić 2.9.0, baza 1.28.0, gui 0.29, wstecz 0.29 / 06.05.2021
|
Wersja zapoznawcza | tylko w repozytorium oprogramowania SVN
|
Napisane w | Cel C |
System operacyjny | Wieloplatformowy |
Rodzaj | Zestaw narzędzi do widżetów |
Licencja |
GNU General Public License dla aplikacji GNU Lesser General Public License dla bibliotek. |
Strona internetowa | www |
GNUstep to darmowa implementacja programowa frameworków Objective-C Cocoa (dawniej OpenStep ) , zestawu narzędzi widgetów i narzędzi do tworzenia aplikacji dla systemów operacyjnych typu Unix i Microsoft Windows . Jest częścią Projektu GNU .
GNUstep zawiera wieloplatformowe, zorientowane obiektowo IDE . Oprócz domyślnego interfejsu Objective-C , GNUstep posiada również powiązania dla Java , Ruby , GNU Guile i Scheme . Deweloperzy GNUstep śledzą niektóre dodatki do Apple Cocoa, aby zachować zgodność. Korzenie interfejsu aplikacji GNUstep są takie same jak korzenie Cocoa: NeXTSTEP i OpenStep . Tak więc GNUstep wyprzedza Cocoa, które pojawiło się, gdy Apple nabyło technologię NeXT i włączyło ją do rozwoju oryginalnego Mac OS X , podczas gdy GNUstep był początkowo wysiłkiem programistów GNU, aby odtworzyć technicznie ambitne, przyjazne dla programistów funkcje NeXTSTEP.
Historia
GNUstep rozpoczął się, gdy Paul Kunz i inni ze Stanford Linear Accelerator Center chcieli przenieść HippoDraw z NeXTSTEP na inną platformę. Zamiast przepisywać HippoDraw od zera i ponownie wykorzystywać tylko projekt aplikacji, postanowili przepisać warstwę obiektów NeXTSTEP , od której ta aplikacja była zależna. To była pierwsza wersja libobjcX . Umożliwiło im to przeniesienie HippoDraw na systemy uniksowe z systemem X Window bez zmiany ani jednej linii źródła ich aplikacji. Po upublicznieniu specyfikacji OpenStep w 1994 r. postanowiono napisać nowy obiekt objcX, który będzie zgodny z nowymi interfejsami API. Oprogramowanie stało się znane jako „GNUstep”.
Architektura oprogramowania
Wykonanie
GNUstep zawiera zestaw graficznych elementów sterujących napisanych w języku programowania Objective-C.
Graficzny interfejs użytkownika (GUI), z GNUMail składa się z elementów sterujących graficznej. GNUMail musi współdziałać z systemem okienkowym , np. X11 lub Wayland , a jego graficzny interfejs użytkownika musi być renderowany . Backend GNUstepa dostarcza niewielki zestaw funkcji używanych przez bibliotekę interfejsu użytkownika do łączenia się z rzeczywistym systemem okienkowym . Posiada również silnik renderujący, który emuluje typowe funkcje Postscript . Pakiet gnustep-back udostępnia następujące backendy:
- cairo – domyślny backend korzystający z biblioteki graficznej Cairo 2D.
- winlib – domyślny backend w systemach Microsoft Windows. Warianty Cairo i Windows API .
- art – stary (przestarzały) backend na systemach uniksopodobnych. Używa biblioteki grafiki 2D opartej na wektorach PostScriptlike Libart .
- xlib – stary (przestarzały) backend X11.
Paradygmaty
GNUstep dziedziczy niektóre zasady projektowania zaproponowane w OPENSTEP (GNUstep poprzedza Cocoa, ale Cocoa jest oparty na OPENSTEP), a także język Objective-C .
- Paradygmat model-widok-kontroler
- Cel-działanie
- Przeciągnij i upuść
- Delegacja
- Przekazywanie wiadomości (za pośrednictwem NSInwokacji)
Inne interfejsy
Oprócz interfejsu Objective-C, niektóre małe projekty pod parasolem GNUstep implementują inne API firmy Apple:
- Biblioteka Boron ma na celu zaimplementowanie Carbon API . Jest bardzo niekompletny.
- Biblioteka CoreBase została zaprojektowana tak, aby była zgodna z Core Foundation . Nie jest wystarczająco kompletny, aby składnik podstawowy (zestaw podstawowy) był po prostu owijką wokół niego.
- Biblioteka QuartzCore implementuje interfejsy API Core Animation . Biblioteka Opal implementuje Quartz 2D .
Od lutego 2020 r. nie ma projektów, które budują język programowania Swift w środowisku GNUstep Objective-C.
Aplikacje
Oto kilka przykładów aplikacji napisanych lub przeniesionych na GNUstep.
Napisany od podstaw
- Adresy, menedżer adresów/ kontaktów
- Étoilé, środowisko graficzne
- GNUMail , klient poczty e-mail
- GNUstep Database Library 2, klon Enterprise Objects Framework
- GNUstepWeb , serwer aplikacji kompatybilny z WebObjects 4.x
- Gorm , konstruktor interfejsów
- GWorkspace, obszar roboczy i menedżer plików
- Grr, czytnik kanałów RSS
- Oolite , klon Elite , kosmicznej gry symulacyjnej z komponentami handlowymi
- CENA, aplikacja do obrazowania
- ProjectCenter, Project Builder lub odpowiednik Xcode .
- TalkSoup, klient IRC
- Terminal
- Zipper, narzędzie do archiwizacji plików
Przeniesiony z NeXTSTEP, OPENSTEP lub macOS
- Adun
- BioKakao
- Szachy
- Ceno
- EdenMath
- Bakłażan
- Emacs
- Szczęśliwy
- Gomoku
- NeXTGO
- PikoPixel
- TekstEdytuj
- CzasMon
- Stracony
Widelce GNUstep
- Universal Windows Platform , który zawiera pakiet WinObjC składający się z różnych części GNUstep i własnych implementacji Microsoft, takich jak Cocoa Touch API.
Możliwości klas
Zestaw podkładowy
Fundacja Zestaw zawiera podstawowe zajęcia, takie jak klasy opakowania i klas struktury danych.
- smyczki
- kolekcje (tablice, zbiory, słowniki) i enumeratory
- zarządzanie plikami
- archiwizacja obiektów
- zaawansowana manipulacja datami
- obiekty rozproszone i komunikacja międzyprocesowa
- Obsługa adresów URL
- powiadomienia (i powiadomienia dystrybuowane)
- łatwe wielowątkowość
- liczniki czasu
- zamki
- Obsługa wyjątków
Zestaw aplikacji
Application Kit zapewnia zajęcia zorientowane wokół Graphical User Interface możliwości.
- elementy interfejsu użytkownika (widoki tabel, przeglądarki, macierze, widoki przewijania)
- grafika ( WYSIWYG , grafika podobna do postscriptu, ścieżki Beziera, obsługa obrazów z wieloma reprezentacjami, konteksty graficzne)
- zarządzanie kolorami (kalibrowane a kolory urządzenia; CMYK , RGB , HSB , reprezentacje szarości i nazwane kolory; przezroczystość alfa)
- funkcje systemu tekstowego: format tekstu sformatowanego , załączniki tekstowe, menedżer układu, skład, reguły, style akapitów, zarządzanie czcionkami, pisownia
- zarządzanie dokumentami
- funkcje drukowania: operacje drukowania, panel drukowania i układ strony
- pomóż kierownikowi
- usługi kartonowe (aka clipboard)
- sprawdzanie pisowni
- powiązania obszaru roboczego dla aplikacji
- operacje przeciągania i upuszczania
- udostępnianie usług między aplikacjami
Zobacz też
- Darling (oprogramowanie) , warstwa kompatybilności oparta na GNUstep
- GNUstep Renaissance , framework opisu XML przenośnych interfejsów użytkownika GNUstep/Mac OS X
- Miller Columns , metoda przeglądania drzewa plików w przeglądarce plików GWorkspace
- Lista właściwości , często używany format pliku do przechowywania ustawień użytkownika
- StepTalk , Framework skryptów
- Window Maker , menedżer okien zaprojektowany do emulacji GUI NeXT jako część szerszego projektu GNUstep
Bibliografia
Zewnętrzne linki
- Strona główna projektu GNUstep.org
- Aplikacje GNUstep i samouczki dla programistów
- Projekt aplikacji GNUstep
- Wywiad z 2003 r. z twórcą GNUstep, Nicola Pero, zarchiwizowany 2007-01-07 na Wayback Machine
- Wywiad cotygodniowy FLOSS z Gregorym Casamento i Riccardo Mottolą z GNUstep
- GNUstep na Debianie , FreeBSD , MacPorts
- Środowisko graficzne NEXTSPACE, oparte na GNUstep