KDE Frameworks

From KDE TechBase
Revision as of 09:35, 22 May 2019 by Jucato (talk | contribs) (Jucato moved page KF5 to KDE Frameworks: Give a more descriptive title)

The KDE Frameworks, currently version 5 or KF5, is a collection of 80 libraries that are built on top of the Qt application framework and provides everything from utility classes to asynchronous and network-transparent I/O to additional data model and widgets to desktop-centric integration. If Qt itself doesn't provide a certain functionality or feature, chances are, there's a KDE Framework for that.

While KF5 does serve as the most basic building blocks of KDE software, they can be used by any Qtx application just like any third-party Qt add-on library. Just like any other KDE software, KF5 uses and favors a CMake build system but all frameworks support QMake as well. Many frameworks are available on multiple desktop operating systems such as Linux and Windows and are even available on Android. Be sure to check each framework's documentation for their supported platforms.

Guarantees and License

KDE, of course, takes software quality seriously but even more so when it comes to KF5. The Frameworks come with quality promises and to make sure you won't need to wait for your favorite bug to get fixed, a new version is released monthly. And since it's free software developed in an open environment, anyone can participate or comment on its development.

Information
The current version of KDE Frameworks is 5.58.0. Please see the release announcement for more information.


The KDE Frameworks are also released under the permissive LGPL or BSD/MIT licenses, making them ideal and usable for any type of software.

Organization

Each of the KDE Frameworks has a Tier and a Type, as you will see in the API documentation. While not critical to using the frameworks, this organization can help developers in determining the frameworks' dependencies.

Tiers group the frameworks according to what they link to during compilation.

  • Tier 1 Frameworks can depend only on Qt official frameworks or other system libraries;
  • Tier 2 Frameworks can depend only on Tier 1 Frameworks, Qt official frameworks, or other system libraries;
  • Tier 3 Frameworks can depend only on other Tier 3 Frameworks, Tier 2 Frameworks, Tier 1 Frameworks, Qt official frameworks, or other system libraries.

Types, on the other hand, refer to the framework's runtime dependencies:

  • Functional Frameworks cannot have runtime dependencies. KArchive, for example, can be used as-is as a drop-in library.
  • Integration Frameworks can have optional runtime dependencies and aim at integrating with the underlying OS/Platform. Solid needs other runtime components to deliver hardware information on different platforms.
  • Solutions have mandatory runtime dependencies to function. KIO, the KDE I/O framework, requires certain daemons to offer a network-transparent virtual filesystem.

API

You can find the API documentation of the Frameworks on api.kde.org.

Examples

Getting help

  1. Double-check the api
  2. Try to debug your application [with LINK to how to debug (on community?)]
  3. ask for help on #kde-devel or <mailinglist>
  4. Open a bug on <>