KDE Frameworks について
KDE Frameworksは、
Qtライブラリを基盤とするソフトウェア開発のための包括的なフレームワーク集です。このフレームワークは、様々な
オペレーティングシステムで動作するアプリケーションやソフトウェアスタックにおいて、共通して必要となる機能を提供します。具体的には、
ハードウェアとの連携、多様なファイル形式への対応、ユーザーインターフェースを構成する要素、データ可視化のためのプロット機能、テキストのスペルチェックなどが含まれます。
これらのフレームワークは、
GNU Lesser General Public License(LGPL)の下で配布されており、
KDE Plasma 5や
KDE Applicationsといった
KDEプロジェクトの基盤を形成しています。これにより、開発者は一から機能を実装することなく、高度なアプリケーションを効率的に開発することが可能です。
技術的特徴
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の安定性
KDE Frameworksでは、プラットフォームリリース(バージョン番号X.0)がメジャーリリースとなり、前のバージョンとのバイナリ互換性が損なわれる可能性があります。しかし、マイナーリリース(X.1, X.2, ...)では、APIとABIの互換性が保証されており、一度開発されたソフトウェアは同じシリーズのすべてのバージョンで動作します。このバージョン管理方針は、
Qtのリリースサイクルに準拠しており、例えば
KDE Software Compilation 4が
Qt 4に基づいていたのと同様です。
KDE Frameworksは、
Linux、
Microsoft Windows、macOS、Androidなどの複数の
オペレーティングシステムをサポートしています。各フレームワークの
リポジトリには、フレームワークのメンテナ、種類、サポートされるOSに関する情報が記載されたmetainfo.yamlファイルが含まれています。
ソフトウェアアーキテクチャ
KDE Frameworksは、カテゴリと階層からなる明確な依存構造を持っています。カテゴリは実行時の依存関係を示し、階層はコンパイル時の依存関係を表します。
- 各機能は実行時に依存関係がないように設計されています。
- 実行時の依存関係は、
オペレーティングシステムやプラットフォームによって必要となる場合があります。
- ソリューションには必須の実行時の依存関係が存在する場合があります。
- 第1階層フレームワークは、
Qtやその他の関連
ライブラリにのみ依存します。
- 第2階層フレームワークは、第1階層フレームワークにのみ依存できます。
- 第3階層フレームワークは、第1、第2階層のフレームワークや、他の第3階層のフレームワークに依存できます。
KDE Frameworksは70以上のパッケージで構成されています。
KDE SC 4では、これらのパッケージは
KDELibsとして単一のパッケージにまとめられていましたが、Frameworks 5では複数のフレームワークに分割され、一部は
Qt 5.2に統合されました。これにより、依存関係が整理され、他の
Qtベースのアプリケーションでの利用が容易になりました。
ソフトウェアパッケージ
Linuxディストリビューションでは、各フレームワークは
パッケージ管理システムを通じて配布されます。例えば、KGlobalAccelはDebianではlibkf5globalaccel、
Fedoraではkf5-kglobalaccelという名前で提供されています。
リリース履歴と歴史
バージョン5.0のリリース前には、技術プレビュー、アルファリリース、ベータリリースが重ねられました。
KDE Frameworksのコードは
KDElibs 1の頃から存在していましたが、最初に
KDE Frameworksとしてリリースされたのはバージョン5でした。これは、
KDE Platformのメジャーバージョンであるバージョン4のコードベースを引き継いだためです。
KDE Platformから
KDE Frameworksへの移行は2013年8月に開始され、
KDE Frameworks 5.0の初期リリース後、開発者は機能の追加や改善に注力しました。特に、モジュール化の強化は重要な改善点であり、以前は単一のパッケージだった
ライブラリが小さなパッケージに分割され、依存関係が最小限に抑えられました。
採用事例
KDE Frameworksは、
KDE Software Compilation以外にも、LX
Qt、MoonLightDE、Hawaiiなどの
デスクトップ環境で採用されています。
Calligra SuiteのKritaはバージョン3.0から
KDE Frameworks 5と
Qt 5に依存しており、Kirigamiを利用したAmarok、Avogadro、Trojitá、Subsurfaceなどのアプリケーションでも採用が進んでいます。
関連情報
-
KDE Plasma 5
-
KDE Applications
-
公式ウェブサイト
-
KDE Frameworks in Phabricator
-
List of repositories of KDE Frameworks in Phabricator