KDE Frameworks
KDE Frameworks — програмний каркас проекту KDE, який включає в себе реструктурований базовий набір бібліотек і runtime-компонентів, що лежать в основі KDE SC 5.
| |
Тип | Програмний каркас, Бібліотека програм |
---|---|
Автор(и) | KDE |
Розробник | KDE |
Перший випуск | 1 липня 2014 |
Стабільний випуск | 5.59.0[1] (8 червня 2019 ) |
Репозиторій | invent.kde.org/frameworks |
Операційна система | Багатоплатформений |
Мова програмування | C++ (Qt Framework) |
Українська | Так |
Стан розробки | Активний |
Ліцензія | GNU Lesser General Public License (LGPL)[2] |
Вебсайт | www.kde.org |
Перша версія, KDE Frameworks 5, вийшла 5 липня 2014[3] в рамках міграції KDE і користувацького оточення Plasma на Qt5. Готові бінарні пакунки з KDE Frameworks підготовлені для Kubuntu, openSUSE, Mageia, Arch Linux і Fedora.
Огляд
На відміну від монолітних пакетів, що поставлялися раніше, (kdesupport, kdelibs і kde-runtime), у KDE Frameworks здійснений перехід до модульної архітектурі, що передбачає наявність взаємодіючих один з одним незалежних і крос-платформових фреймворків, доступних для використання не тільки у KDE, але в будь-яких застосунках на базі Qt. Раніше при бажанні використовувати у своїй програмі можливості бібліотек KDE, такі як меню, панелі інструментів, засоби перевірки орфографії та функції для роботи з файлами, потрібно було встановити монолітний пакунок kdelibs, що складається з нерозривно пов'язаних між собою бібліотек.
Сам по собі API залишився незмінним, зміни пов'язані тільки з перерозподілом функціональності по бібліотеках і проведенням внутрішньої адаптації для використання Qt 5. Збереження базової зворотної сумісності API дозволяє спростити портування існуючих застосунків на технології KDE Frameworks, як правило, досить внести мінімальні зміни у сценарій складання та заголовні файли.
Пакунок kdelibs розбитий на модулі, оформлені у вигляді доповнень до Qt, у розрахунку один модуль на кожну бібліотеку. Завдяки розбиттю kdelibs на незалежні модулі, пов'язані явно певними залежностями, KDE Frameworks 5 дозволяє встановити тільки бібліотеки, необхідні для роботи програми. Подібний підхід надає можливість використання бібліотек KDE в сторонніх Qt-проектах, які не прив'язаних до KDE, і відкриває двері для поступового виносу не специфічні для KDE функціональності до складу Qt.
KDE Frameworks 5 складається з 59 модулів, розділених на кілька категорій. Рівні визначають ступінь залежності модулів, наприклад, компоненти рівня 1 не залежить від інших рівнів і можуть використовуватися в Qt-застосунках як самодостатні бібліотеки. Для роботи компонентів рівня 2 потрібна наявність бібліотек першого рівня. Рівень 3 лежить поверх 2 рівня і пов'язаний з ним залежностями, крім того компоненти рівня 3 пов'язані залежностями між собою.
- Рівень 1.
- 21 функціональне доповнення до Qt, що розширює можливості Qt у певних напрямках, наприклад в плані надання засобів для управління конфігурацією. Віднесені до даної категорії бібліотеки не вимагають додаткових залежностей, крім Qt. Серед модулів цієї категорії: KArchive, KPlotting, Threadweaver, KConfig, KCoreAddons, KCodecs, KDBusAddons, KWindowSystem, Sonnet (перевірка орфографії), Solid (обробка подій від устаткування);
- Рівень 2.
- 10 бібліотек для інтеграції з операційною системою, що розширюють функції першої категорії залежностями, специфічними для різних операційних систем (наприклад, libktimezone може використовувати ktimezoned у Linux і окремий API на платформі Windows). Серед модулів цієї категорії: KDNSSD, KAuth, KCompletion, KCrash, KI18n, KNotifications, KWallet;
- Рівень 3.
- 23 бібліотеки, котрі складають повнофункціональний програмний стек KDE, що включає залежності від додаткових бібліотек і runtime-компонентів. Серед модулів цієї категорії: KIO (KDE Input / Output), KService, KBookmarks, KConfigWidgets, KDEWebKit, Plasma, KActivities.
- Набір з необов'язковими для використання або специфічними інтеграційними компонентами. У категорію включений набір плагінів FrameworkIntegration, що забезпечують інтеграцію з різними платформами;
- Набір модулів з реалізацією можливостей, визнаних застарілими і не включених до складу KDE Frameworks 5. Набір позиціонується тільки як допоміжний засіб для згладжування і спрощення процесу портування, підтримка набору буде обмежена трьома циклами релізів KDE 5. До складу включено 7 модулів: KDELibs4Support, KHtml, KJS, KJsEmbed, KMediaPlayer, Kross, KRunner.
З корисних бібліотек, які раніше були неподільною частиною KDE, а тепер можуть використовуватися окремо, зазначаються:
- KArchive - набір функцій для роботи з архівами і різними форматами стиснення даних. Дозволяє швидко інтегрувати в будь Qt-застосунок засоби для розпакування архівів або зберігання даних у стислому вигляді;
- ThreadWeaver - високорівневий API для організації багатонитевості за допомогою інтерфейсів на основі робіт і черг. Надає планувальник, що забезпечує запуск нитей на підставі встановленої залежності між нитями;
- KConfig - фреймворк для збереження і вилучення параметрів конфігурації. Підтримує роботу з групами налаштувань, генерацію коду на основі XML-файлів, може обробляти ini-файли і каскадні ієрархії директорій з настройками, відповідними специфікації XDG;
- Solid - компоненти для визначення підключення обладнання і обробки подій від устаткування. Може використовуватися для інформування застосунків про пристрої зберігання, типи CPU, статус заряду акумулятора, стан мережі, Bluetooth тощо. Для роботи з шифрованими розділами, управління живленням і мережею вимагається запуск спеціальних фонових процесів;
- KI18n - фреймворк для інтернаціоналізації на основі Gettext. Спрощує процес перекладу інтерфейсу застосунків;
- Sonnet - компонент для інтеграції в застосунки засобів для перевірки правопису. Підтримується інтеграція з HSpell, Enchant, ASpell і HUNSPELL;
- KPlotting - клас на основі QWidget для швидкого формування 2D-графіків на підставі заданого набору даних.