KDE Frameworks(ケーディーイー・フレームワークス)は、複数のオペレーティングシステム上のQtベースのソフトウェアスタックやアプリケーションですぐに利用できるライブラリとソフトウェアフレームワークのコレクションである。KDE Frameworksのコレクションははハードウェアの統合、ファイルフォーマットのサポート、追加のコントロール要素、プロット関数、スペルチェックなどの一般的に必要となる機能を特徴としており、GNU Lesser General Public License (LGPL) の下で配布されているKDE Plasma 5とKDE Applicationsの技術的な基盤となっている。

概要

KDE Frameworks 5はQt 5に基づいており、JavaScriptをベースとした宣言型プログラミング言語のQMLをユーザインタフェースの設計に利用することができる。QMLで使用されるグラフィックスレンダリングエンジンは、様々なデバイス間でより柔軟なユーザインタフェースを実現することができる。

KDE Software CompilationをKDE Frameworks 5、KDE Plasma 5、KDE Applicationsに分割して以降、各プロジェクトは独自の開発ペースを選択することができるようになった。KDE Frameworksは毎月新たなバージョンがリリースされ、バージョン管理システムにはGitを利用している。

KDE Platform 4ランタイムとKDE Frameworks 5ランタイムの両方をインストールすることで、アプリケーションはどちらかを利用できるようになる。

APIとABIの安定性

プラットフォームリリースとはシリーズ(バージョン番号X.0)を開始するリリースのことである。このメジャーリリースだけが前のバージョンとのバイナリ互換性を損なうことが許容されているが、マイナーシリーズ (X.1, X.2, ....) のリリースではバイナリ移植性 (APIとABI) は保証されている。これは例えばK Desktop Environment 3 (KDE 3) 向けに開発されたソフトウェアは全てのバージョンのKDE 3で動作するが、K Desktop Environment 2 (KDE 2) 向けに開発されたアプリケーションはKDE 3のライブラリを利用できないことを意味する。KDEのメジャーリリースのバージョン番号は主にQtのリリースサイクルに従う。これはKDE Software Compilation 4 (KDE SC 4) がQt 4に、KDE 3がQt 3に基づくことを示す。

サポートされるオペレーティングシステム

各フレームワークのリポジトリにはmetainfo.yamlという名前のファイルが含まれなければならない。このファイルには、フレームワークのメンテナ、種類、サポートされているオペレーティングシステムなどの情報が記載されている。現在サポートされているプラットフォームはLinux、Microsoft Windows、macOS、Androidである。

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

構造

KDE Frameworksは明確な依存構造を持っている。この構造は「カテゴリ」と「階層」からなり、「カテゴリ」は実行時の依存関係を示すものである。

  • 各機能は実行時の依存関係が存在しない。
  • 指定されたコードを統合する場合、オペレーティングシステムやプラットフォームによって実行時の依存関係が必要になる可能性がある。
  • ソリューションには必須の実行時の依存関係が存在する。

「階層」はコンパイル時の他のフレームワークへの依存関係を示す。

  • 第1階層フレームワークは、フレームワーク内には依存関係が存在せず、Qtやその他の関連するライブラリのみが必要となる。
  • 第2階層フレームワークは、第1階層フレームワークにのみ依存することができる。
  • 第3階層フレームワークは、第1階層フレームワークや第2階層フレームワークと同様に、他の第3階層フレームワークに依存することができる。

コンポーネント

KDE Frameworksは70以上のパッケージから構成されている。KDE SC 4では、これらのパッケージはKDELibsとして単一の大きなパッケージから構成されていた。KDELibsはいくつかのフレームワークに分割されたが、一部はKDEではなくQt 5.2に統合された。

KDEFrameworksは他のライブラリへの依存度に応じて、異なる4つの階層にグループ化されている。第1階層フレームワークはQtや他のシステムライブラリにのみ依存する。第2階層フレームワークは第1階層ライブラリ、Qtや他のシステムライブラリなどに依存できる。

ソフトウェアパッケージ

Linuxディストリビューションは配布するソフトウェアをパッケージ化するために、何らかのパッケージ管理システムを使用している。例えばDebianはKGlobalAccellibkf5globalaccelというパッケージ名で配布しているが、Fedoraはkf5-kglobalaccelという名前で配布している。

リリース履歴

バージョン5.0の前に、技術プレビューと2つのアルファリリースと3つのベータリリースが存在した。

歴史

KDE FrameworksのソースコードはKDElibs 1の頃から存在する。最初にKDE Frameworksとしてリリースされたのはバージョン5で、コードベースがKDE Platformのバージョン 4(KDE Platformの唯一のメジャーバージョン)であったことを考慮された。

KDE Platformから KDE Frameworksへの移行は2013年8月に開始された。

KDE Frameworks 5.0の初期リリース後、開発者はMozilla FirefoxとKDEの統合性の向上などのように、KDE Frameworks 5に新たな機能を追加することに焦点を当てている。

KDE Frameworks 5の主な改良点は、モジュール化の強化である。KDE Frameworks 5以前はライブラリは単一の大きなパッケージから構成されていたが、KDE Frameworks 5ではライブラリは小さなパッケージに分割された。このことにより依存関係を最小限に抑えることができ、他のQtベースのアプリケーションでの利用が容易になった。

KDE 4はQtウィジェットツールキットのバージョン4に基づいていたが、Frameworks 5からバージョン5に基づくようになった。

採用

KDE FrameworksはKDE Software Compilation以外にも、デスクトップ環境のLXQtやMoonLightDE、Hawaiiなどに採用されている。

Calligra SuiteのラスターグラフィックスエディタであるKritaは、2016年5月31日にリリースされたバージョン3.0以降はKDE Frameworks 5とQt 5に依存している。バージョン2.8以前はKDE Platform 4とQt 4に依存していた。

Kirigamiにより、AmarokやAvogadro、Trojitá、Subsurfaceなどのアプリケーションでの利用も増えている。

脚注

関連項目

  • KDE Plasma 5
  • KDE Applications

外部リンク

  • 公式ウェブサイト
  • KDE Frameworks in Phabricator
  • List of repositories of KDE Frameworks in Phabricator

O KDE Frameworks 5.104 melhora ainda mais o suporte ao Plasma Wayland e

Shaping the Future of KDE Frameworks Kai Uwe's Blog

KDE Frameworks 5.113.0 released

KDE Applications 14.12 Ein behutsamer Übergang hin zu KDE Frameworks 5

KDE Unveils Frameworks 5.113.0, Here’s What’s New