KDE Frameworks

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з KDE Frameworks 5)
Перейти до навігації Перейти до пошуку
KDE Frameworks 5
Konqi Mascot Frameworks.png
Тип Програмний каркас, Бібліотека програм
Автор(и) KDE
Розробник KDE
Перший випуск 1 липня 2014
Стабільний випуск 5.18[1] (9 січня 2016; 921 день тому)
Версії 5.45.0[2]
Репозиторій quickgit.kde.org
Операційна система Багатоплатформений
Написано на C++ (Qt Framework)
Українська Так
Стан розробки Активний
Ліцензія GNU Lesser General Public License (LGPL)[3]
www.kde.org

KDE Frameworksпрограмний каркас проекту KDE, який включає в себе реструктурований базовий набір бібліотек і runtime-компонентів, що лежать в основі KDE SC 5.

Перша версія, KDE Frameworks 5, вийшла 5 липня 2014[4] в рамках міграції KDE і користувацького оточення Plasma на Qt5. Готові бінарні пакунки з KDE Frameworks підготовлені для Kubuntu, openSUSE, Mageia, Arch Linux і Fedora.

Огляд[ред. | ред. код]

Еволюція архітектури KDE.

На відміну від монолітних пакетів, що поставлялися раніше, (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-графіків на підставі заданого набору даних.

Див. також[ред. | ред. код]

Виноски[ред. | ред. код]

Посилання[ред. | ред. код]