GNUstep

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
GNUstepプロジェクト
GNUsteplogo.svg
Gnustep.png
GNUstepスクリーンショット。WindowMakerと、五目並べゲーム、電卓テキストエディットなど、GNUstepライブラリで開発されたさまざまなアプリケーションを示しています[1]
開発者GNUstep開発者
安定リリース
make 2.9.0、base 1.28.0、gui 0.29、back 0.29 / 2021年5月6日; 9ヶ月前 (2021-05-06)
プレビューリリース
SVNソフトウェアリポジトリのみ
リポジトリ
で書かれているObjective-C
オペレーティング・システムクロスプラットフォーム
タイプウィジェットツールキット
ライセンスアプリケーションの
GNUGeneral PublicLicenseライブラリのGNULesser General PublicLicense
Webサイトwww .gnustep .org

GNUstepは、 Cocoa(以前のOpenStepObjective-Cフレームワークウィジェットツールキット、およびUnixライクなオペレーティングシステムMicrosoftWindows用のアプリケーション開発ツールのフリーソフトウェア実装ですこれはGNUプロジェクトの一部です。

GNUstepは、クロスプラットフォームのオブジェクト指向IDEを備えています。デフォルトのObjective-Cインターフェースとは別に、GNUstepにはJava Ruby [ 2] GNU GuileSchemeのバインディングもあります。[3] GNUstep開発者は、互換性を維持するためにAppleのCocoaへのいくつかの追加を追跡しています。GNUstepアプリケーションインターフェースのルートは、Cocoaのルートと同じです:NeXTSTEPOpenStepしたがって、GNUstepは、AppleがNeXTを買収したときに登場したCocoaよりも前のものです。 の技術を元のMacOS Xの開発に組み込みましたが、GNUstepは当初、技術的に野心的なNeXTSTEPのプログラマー向け機能を複製するための GNU開発者による取り組みでした。

歴史

GNUstepは、 Stanford Linear AcceleratorCenterのPaulKunzらがHippoDrawNeXTSTEPから別のプラットフォームに移植したいと考えたときに始まりました。HippoDrawを最初から書き直してアプリケーションの設計のみを再利用する代わりに、アプリケーションが依存していたNeXTSTEPオブジェクトレイヤーを書き直すことにしました。これはlibobjcXの最初のバージョンでした。これにより、アプリケーションソースの1行を変更することなく、 X WindowSystemを実行しているUnixシステムにHippoDrawを移植できるようになりました。1994年にOpenStep仕様が公開された後、彼らは新しいobjcXを作成することを決定しました。これは新しいAPIに準拠します。このソフトウェアは「GNUstep」として知られるようになります。[4]

ソフトウェアアーキテクチャ

ディスプレイサーバーグラフィックス制御要素ライブラリグラフィカルシェルなどのLinuxデスクトップスタックのソフトウェアコンポーネントを示しています

レンダリング

GNUstepには、Objective-Cプログラミング言語で記述さ れた一連のグラフィカル制御要素が含まれています。

GNUMailグラフィカルユーザーインターフェイス(GUI)は、グラフィックコントロール要素で構成されています。GNUMailはX11Waylandなどのウィンドウシステムと対話する必要があり、そのグラフィカルユーザーインターフェイスをレンダリングする必要があります。GNUstepのバックエンドは、実際のウィンドウシステムにインターフェイスするためにユーザーインターフェイスライブラリによって使用される関数の小さなセットを提供しますまた、一般的なPostscript関数をエミュレートするレンダリングエンジンも備えています。パッケージgnustep-backは、次のバックエンドを提供します。

  • cairo – Cairo2Dグラフィックライブラリを使用するデフォルトのバックエンド
  • winlib – MicrosoftWindowsシステムのデフォルトのバックエンド。CairoおよびWindowsAPIの亜種。
  • アート– UNIXライクなシステム上の古い(非推奨の)バックエンド。ベクターベースのPostScriptlike2dグラフィックライブラリLibartを使用します。
  • xlib –古い(非推奨)X11バックエンド。

パラダイム

GNUstepは、OPENSTEPで提案されたいくつかの設計原則(GNUstepはCocoaよりも前のものですが、CocoaはOPENSTEPに基づいています)とObjective-C言語を継承しています。

その他のインターフェース

Objective-Cインターフェースに加えて、GNUstep傘下のいくつかの小さなプロジェクトはAppleの他のAPIを実装しています。

  • Boronライブラリは、CarbonAPIの実装を目的としています非常に不完全です。[5]
  • CoreBaseライブラリは、CoreFoundationと互換性があるように設計されていますBase(Foundation Kit)コンポーネントが単にその周りのラッパーになるには十分ではありません。[6]
  • QuartzCoreライブラリはCoreAnimationAPIを実装しています[7] OpalライブラリはQuartz2Dを実装してます。

2020年2月の時点で、GNUstepObjective-C環境に対して Swiftプログラミング言語を構築するプロジェクトはありません。

アプリケーション

以下は、GNUstep用に作成された、またはGNUstepに移植されたアプリケーションの例です。[8]

ゼロから書かれた

NeXTSTEP、OPENSTEP、またはmacOSから移植

GNUstepのフォーク

クラス機能

ファンデーションキット

Foundation Kitは、ラッパークラスやデータ構造クラスなどの基本的なクラスを提供します

  • 文字列
  • コレクション(配列、セット、辞書)および列挙子
  • ファイル管理
  • オブジェクトのアーカイブ
  • 高度な日付操作
  • 分散オブジェクトとプロセス間通信
  • URL処理
  • 通知(および分散通知)
  • 簡単なマルチスレッド
  • タイマー
  • ロック
  • 例外処理

アプリケーションキット

アプリケーションキットは、グラフィカルユーザーインターフェイス機能を中心としたクラスを提供します。

  • ユーザーインターフェイス要素(テーブルビュー、ブラウザー、マトリックス、スクロールビュー)
  • グラフィックス(WYSIWYG、ポストスクリプトのようなグラフィックス、ベジェパス、複数の表現による画像処理、グラフィックコンテキスト)
  • カラーマネジメント(キャリブレーションされた色とデバイスの色、CMYKRGBHSB、グレーおよび名前付きの色表現、アルファ透明度)
  • テキストシステムの機能:リッチテキスト形式、テキスト添付ファイル、レイアウトマネージャー、タイプセッター、ルール、段落スタイル、フォント管理、スペル
  • 文書管理
  • 印刷機能:印刷操作、印刷パネル、ページレイアウト
  • ヘルプマネージャー
  • 厚紙(別名クリップボード)サービス
  • スペルチェッカー
  • アプリケーションのワークスペースバインディング
  • ドラッグアンドドロップ操作
  • アプリケーション間で共有するサービス

も参照してください

参考文献

  1. ^ NeXTSTEPから移植されました。最近のビルドは、libobjc2でビルドすると、 Mac OS X SnowLeopardから移植された新しいバージョンを使用できます。
  2. ^ 「GNUstep開発者ツール-RIGS」www.gnustep.org 2018年4月10日取得
  3. ^ GSchemeは WaybackMachineで2005年12月18日にアーカイブされました
  4. ^ 「GNUstepの歴史」gnustep.made-it.com 2018年4月10日取得
  5. ^ "gnustep / libs-ホウ素:ホウ素は炭素の前に来る原子です"GitHubGNUstep。2019年3月23日。
  6. ^ "gnustep / libs-corebase"GNUstep。2019年11月19日。
  7. ^ "gnustep / libs-quartzcore"GNUstep。2019年12月11日。
  8. ^ 「Category:Applications-GNUstepWiki」wiki.gnustep.org 2018年4月10日取得
  9. ^ 「GNUstepObjective-CRuntime2.0」GitHub注:MicrosoftのWinObjCプロジェクトには、このライブラリの使いやすいフォークが含まれており、インクリメンタルリンクの問題の回避策が含まれています。

外部リンク