stringtranslate.com

Фреймворки KDE

KDE Frameworks — это коллекция библиотек и программных фреймворков, легко доступных для любых программных стеков или приложений на основе Qt в нескольких операционных системах . [6] Коллекция содержит часто необходимые функциональные решения, такие как интеграция оборудования, поддержка форматов файлов, дополнительные графические элементы управления , функции построения графиков и проверка орфографии , и служит технологической основой для KDE Plasma и KDE Gear . Она распространяется по лицензии GNU Lesser General Public License (LGPL). [7]

Обзор

KDE Frameworks основан на Qt, что позволяет более широко использовать QML , более простой декларативный язык программирования на основе JavaScript , для проектирования пользовательских интерфейсов. Графический движок рендеринга, используемый QML, позволяет создавать более гибкие пользовательские интерфейсы на разных устройствах. [8]

Часть исходного кода была перенесена из состава KDE Frameworks 5 в состав Qt 5.2 и более поздних версий.

После разделения KDE Software Compilation на KDE Frameworks 5, KDE Plasma 5 и KDE Applications каждый подпроект может выбирать свой собственный темп разработки. KDE Frameworks выпускаются ежемесячно [9] и используют Git . [10] [11]

Должна быть возможность устанавливать KDE Frameworks вместе с KDE Platform 4, чтобы приложения могли использовать любой из них. [12]

Стабильность API и ABI

Выпуски платформы — это те, которые начинают серию (номер версии 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]

Уровни фреймворков
Уровень 1 – в основном зависят только от Qt , очень переносимы
Уровень 2 — зависит от уровня 1, но зависимости все еще управляемы.
Уровень 3 – Сложные зависимости, включая уровни 1–2 и т. д.
Уровень 4 — в основном плагины, которые предоставляют дополнительные функции, такие как поддержка платформы, можно игнорировать.

Киригами

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]

Преобразование KDE4

Во время 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 .

Ссылки

  1. ^ "KDE Ships Frameworks 6.5.0". 9 августа 2024 г. Получено 20 августа 2024 г.
  2. ^ "Выпуск KDE Frameworks 5.24.0". 9 июля 2016 г. Архивировано из оригинала 11 июля 2016 г. Получено 10 июля 2016 г.
  3. ^ "Android - KDE Community Wiki". Архивировано из оригинала 2016-08-26 . Получено 2016-07-11 .
  4. ^ "KDE API Homepage". Архивировано из оригинала 2016-08-26 . Получено 2016-07-11 .
  5. ^ "Первый выпуск KDE Frameworks 5". 2014-07-07. Архивировано из оригинала 2015-09-05 . Получено 2014-07-08 .
  6. ^ "The KDE Frameworks". API Documentation . Архивировано из оригинала 2019-12-07 . Получено 2020-03-17 .
  7. ^ "KDE Frameworks". Tech Base . Архивировано из оригинала 2020-08-13 . Получено 2020-03-17 .
  8. ^ abc Howard Chan (2013-09-04). "KDE Release Structure Evolves". KDE. Архивировано из оригинала 2020-11-12 . Получено 2014-02-27 .
  9. ^ "График выпуска KDE Frameworks 5". Архивировано из оригинала 2016-06-24 . Получено 2016-05-18 .
  10. ^ "Рабочий процесс Git для фреймворков". Архивировано из оригинала 2020-10-20 . Получено 19-08-2014 .
  11. ^ "Документация API KDE Frameworks5". Архивировано из оригинала 2014-08-22.
  12. ^ "Совместная установка с KDE Platform 4". Архивировано из оригинала 2020-12-01 . Получено 2014-08-19 .
  13. ^ "metainfo.yaml KConfig".[ постоянная мертвая ссылка ]
  14. ^ Jos Poortvliet (2013-12-17). "Qt 5.2 - Foundation for KDE Frameworks 5". Dot.kde.org. Архивировано из оригинала 2020-11-11 . Получено 2014-03-10 .
  15. ^ Howard Chan (2013-09-25). "Frameworks 5". Dot.kde.org. Архивировано из оригинала 2020-11-26 . Получено 2014-03-10 .
  16. ^ "API Documentation". api.kde.org . Архивировано из оригинала 2021-10-02 . Получено 2021-10-02 .
  17. ^ "KWindowSystem in Frameworks 5". 6 февраля 2014 г. Архивировано из оригинала 28 июля 2014 г. Получено 25 июля 2014 г.
  18. ^ "KDE Киригами". КДЕ. Архивировано из оригинала 29 июля 2019 года . Проверено 25 ноября 2018 г.
  19. ^ "Участники KDE/Kirigami". GitHub . Архивировано из оригинала 2019-04-30 . Получено 2021-08-08 .
  20. Архивировано в Ghostarchive и Wayback Machine: «Banji (Ring-KDE) новый скин для настольных Linux и Android». YouTube .
  21. ^ "Kaidan - удобный клиент XMPP для любого устройства!". GitHub . 4 июля 2021 г. Архивировано из оригинала 26 апреля 2019 г. Получено 8 августа 2021 г.
  22. ^ "KGlobalAccel в Debian". Архивировано из оригинала 2016-09-20 . Получено 11-09-2016 .
  23. ^ «KGlobalAccel в Fedora».[ постоянная мертвая ссылка ]
  24. ^ "Платформа разработки KDE". Архивировано из оригинала 2018-10-03 . Получено 2010-11-26 .
  25. ^ Разработка/Языки - KDE TechBase Архивировано 2021-02-03 на Wayback Machine . Techbase.kde.org (2012-07-12). Получено 2013-07-17.
  26. ^ "Qyoto". Архивировано из оригинала 2020-11-27 . Получено 2015-01-18 .
  27. ^ "Frameworks 5 Technology Preview". KDE. 2014-01-07. Архивировано из оригинала 2014-02-26 . Получено 2014-02-27 .
  28. ^ "KDE Ships First Alpha of Frameworks 5". KDE. 2014-02-14. Архивировано из оригинала 2014-03-01 . Получено 2014-02-27 .
  29. ^ "KDE Ships Second Alpha of Frameworks 5". KDE. 2014-03-03. Архивировано из оригинала 2014-03-09 . Получено 2014-03-04 .
  30. ^ "Протокол заседания по обновлению KF5 2014-w28". 2014-07-08. Архивировано из оригинала 2016-03-07 . Получено 2014-07-10 .
  31. ^ "Интеграция Firefox + KDE: как заставить FF надежно использовать Dolphin". 2014-07-03. Архивировано из оригинала 2018-05-15 . Получено 2014-07-10 .
  32. ^ "Объявление о KDE MegaRelease 6" . 28 февраля 2024 г. Проверено 20 марта 2024 г.
  33. ^ "Политика лицензирования KDE". Архивировано из оригинала 2010-12-16 . Получено 2010-11-06 .

Внешние ссылки