KDE Frameworks — это коллекция библиотек и программных фреймворков, легко доступных для любых программных стеков или приложений на основе Qt в нескольких операционных системах . [6] Коллекция содержит часто необходимые функциональные решения, такие как интеграция оборудования, поддержка форматов файлов, дополнительные графические элементы управления , функции построения графиков и проверка орфографии , и служит технологической основой для KDE Plasma и KDE Gear . Она распространяется по лицензии GNU Lesser General Public License (LGPL). [7]
KDE Frameworks основан на Qt, что позволяет более широко использовать QML , более простой декларативный язык программирования на основе JavaScript , для проектирования пользовательских интерфейсов. Графический движок рендеринга, используемый QML, позволяет создавать более гибкие пользовательские интерфейсы на разных устройствах. [8]
После разделения KDE Software Compilation на KDE Frameworks 5, KDE Plasma 5 и KDE Applications каждый подпроект может выбирать свой собственный темп разработки. KDE Frameworks выпускаются ежемесячно [9] и используют Git . [10] [11]
Должна быть возможность устанавливать KDE Frameworks вместе с KDE Platform 4, чтобы приложения могли использовать любой из них. [12]
Выпуски платформы — это те, которые начинают серию (номер версии X.0). Только этим основным выпускам разрешено нарушать бинарную совместимость с предшественником. Выпуски в младших сериях (X.1, X.2, ...) гарантируют бинарную переносимость ( API и ABI ). Это означает, например, что программное обеспечение, разработанное для KDE 3.0, будет работать во всех (будущих) выпусках KDE 3; однако приложение, разработанное для KDE 2, не гарантирует, что сможет использовать библиотеки KDE 3. Номера основных версий KDE в основном следуют циклу выпуска Qt, что означает, что KDE SC 4 основан на Qt 4, в то время как KDE 3 основан на Qt 3.
Репозиторий каждого фреймворка должен содержать файл с именем metainfo.yaml . [13] Этот файл документирует мейнтейнера фреймворка, тип, поддерживаемую операционную систему и другую информацию. В настоящее время поддерживаются платформы Linux, Microsoft Windows, macOS и Android.
Фреймворки имеют четкую структуру зависимостей, разделенную на «категории» и «уровни». «Категории» относятся к зависимостям времени выполнения:
Пакет KDE Frameworks состоит из более чем 70 пакетов. Они существовали как один большой пакет, называемый kdelibs, в KDE SC 4. Kdelibs был разделен на несколько отдельных фреймворков, некоторые из которых больше не являются частью KDE, но были интегрированы в Qt 5.2. [14]
Фреймворки KDE сгруппированы в четыре различных уровня в соответствии с зависимостью от других библиотек. [15] [16]
Kirigami — это фреймворк приложений QML [18], разработанный Марко Мартином [19] , который позволяет разработчикам писать приложения, которые изначально работают на Android, iOS, Windows, Plasma Mobile и любой классической среде рабочего стола Linux без внесения изменений в код.
Его используют различные приложения, например, приложение для подводного плавания Subsurface, разработанное Линусом Торвальдсом и Дирком Хондельсом, клиент обмена сообщениями Banji, [20] мессенджер Kaidan, [21] музыкальный проигрыватель Vvave и центр программного обеспечения KDE Discover.
Дистрибутивы Linux используют некоторые системы управления пакетами для упаковки программного обеспечения, которое они распространяют. Например, Debian распространяет KGlobalAccel под именем пакета libkf5globalaccel , [22] в то время как Fedora Linux распространяет его под именем kf5-kglobalaccel . [23]
Хотя в основном он написан на C++, существует множество привязок к другим языкам программирования: [24] [25]
В этих и других переплетах используются следующие технологии:
Многие привязки не были обновлены до Qt5 и KF5 или были обновлены только на более поздних этапах цикла выпуска.
Выпуску версии 5.0 предшествовали предварительный просмотр технологии, два альфа-релиза и три бета-релиза. [27] [28] [29]
Исходный код KDE Frameworks существует со времен KDElibs 1. Первый выпуск KDE Frameworks состоялся в версии 5, поскольку кодовая база была основана на платформе KDE версии 4 (единственной основной версии платформы KDE ).
Переход от платформы KDE к фреймворкам KDE начался в августе 2013 года под руководством ведущих технических специалистов KDE. [8]
После первоначального выпуска KDE Frameworks 5.0 разработчики сосредоточились на добавлении новых функций к компонентам KDE Frameworks 5, [30] примером чего является лучшая интеграция Firefox в KDE. [31]
Главным улучшением Frameworks 5 является его модульность. В более ранних версиях KDE библиотеки были объединены в один большой пакет. В Frameworks библиотеки были разделены на отдельные меньшие пакеты. Это облегчает использование библиотек другим программным обеспечением на основе Qt, поскольку зависимости можно свести к минимуму. [8]
В то время как KDE 4 был основан на версии 4 набора виджетов Qt , Frameworks 5 основан на версии 5.
В рамках проекта KDE «MegaRelease 6» 28 февраля 2024 года был выпущен KDE Frameworks 6, обновивший его до базы Qt 6. [32]
Во время KDE SC 4, тогдашняя так называемая платформа KDE состояла из всех библиотек и служб, необходимых для KDE Plasma и приложений. Начиная с Qt 5, эта платформа была преобразована в набор модулей, который теперь называется KDE Frameworks. Эти модули включают: Solid , Nepomuk , Phonon и т. д. и лицензируются либо по лицензии LGPL, BSD, MIT или X11. [33]
Помимо KDE Software Compilation , существуют и другие среды рабочего стола , такие как LXQt , MoonLightDE или Hawaii.
Версия 3.0 Krita , редактора растровой графики из пакета Calligra Suite , выпущенная 31 мая 2016 года, зависит от KDE Frameworks 5 и Qt 5.2.
Благодаря Kirigami возросло использование таких приложений, как Amarok , Avogadro , Trojitá или Subsurface .