KDE Frameworks es una colección de bibliotecas y marcos de software disponibles para cualquier aplicación o pila de software basada en Qt en múltiples sistemas operativos . [6] Con soluciones de funcionalidad que se necesitan con frecuencia, como integración de hardware, soporte de formatos de archivo, elementos de control gráfico adicionales , funciones de trazado y revisión ortográfica , la colección sirve como base tecnológica para KDE Plasma y KDE Gear . Se distribuye bajo la Licencia Pública General Reducida (LGPL) de GNU. [7]
KDE Frameworks se basa en Qt, lo que permite un uso más generalizado de QML , un lenguaje de programación declarativo basado en JavaScript más simple , para el diseño de interfaces de usuario. El motor de renderizado de gráficos utilizado por QML permite interfaces de usuario más fluidas en diferentes dispositivos. [8]
Desde la división de la Compilación de software KDE en KDE Frameworks 5, KDE Plasma 5 y Aplicaciones KDE , cada subproyecto puede elegir su propio ritmo de desarrollo. KDE Frameworks se publica mensualmente [9] y utiliza Git . [10] [11]
Debería ser posible instalar KDE Frameworks junto con la plataforma KDE 4 para que las aplicaciones puedan usar cualquiera de ellos. [12]
Los lanzamientos de plataforma son aquellos que inician una serie (número de versión X.0). Sólo estas versiones principales pueden romper la compatibilidad binaria con el predecesor. Las versiones de la serie menor (X.1, X.2, ...) garantizarán la portabilidad binaria ( API y ABI ). Esto significa, por ejemplo, que el software desarrollado para KDE 3.0 funcionará en todas las versiones (futuras) de KDE 3; sin embargo, no se garantiza que una aplicación desarrollada para KDE 2 pueda utilizar las bibliotecas de KDE 3. Los números de las versiones principales de KDE siguen principalmente el ciclo de lanzamiento de Qt, lo que significa que KDE SC 4 se basa en Qt 4, mientras que KDE 3 se basa en Qt 3.
El repositorio de cada marco debe contener un archivo llamado metainfo.yaml . [13] Este archivo documenta el mantenedor del marco, el tipo, el sistema operativo compatible y otra información. Las plataformas soportadas actualmente son Linux, Microsoft Windows, macOS y Android.
Los Frameworks tienen una estructura de dependencia clara, dividida en "categorías" y "niveles". Las "categorías" se refieren a dependencias de tiempo de ejecución:
El paquete KDE Frameworks consta de más de 70 paquetes. Estos existían como un único paquete grande, llamado kdelibs, en KDE SC 4 . Kdelibs se dividió en varios marcos individuales, algunos de los cuales ya no forman parte de KDE pero se integraron en Qt 5.2. [14]
Los frameworks KDE se agrupan en cuatro niveles diferentes según la dependencia de otras bibliotecas. [15] [16]
Kirigami es un marco de aplicación QML [18] desarrollado por Marco Martin [19] que permite a los desarrolladores escribir aplicaciones que se ejecutan de forma nativa en Android, iOS, Windows, Plasma Mobile y cualquier entorno de escritorio Linux clásico sin ajustes de código.
Es utilizado por varias aplicaciones, por ejemplo la aplicación de buceo Subsurface de Linus Torvalds y Dirk Hohndels, el cliente de mensajería Banji, [20] el mensajero Kaidan, [21] el reproductor de música Vvave y el centro de software KDE Discover.
Las distribuciones de Linux utilizan algún sistema de gestión de paquetes para empaquetar el software que distribuyen. Debian, por ejemplo, distribuye KGlobalAccel con el nombre de paquete libkf5globalaccel , [22] mientras que Fedora Linux lo distribuye con el nombre kf5-kglobalaccel . [23]
Si bien está escrito principalmente en C++, hay muchos enlaces para otros lenguajes de programación disponibles: [24] [25]
Estos y otros enlaces utilizan las siguientes tecnologías:
Muchos enlaces no se actualizaron a Qt5 y KF5 o solo más tarde en el ciclo de lanzamiento.
La versión 5.0 estuvo precedida por una vista previa de la tecnología, dos versiones alfa y tres versiones beta. [27] [28] [29]
El código fuente de KDE Frameworks existe desde KDElibs 1. El primer lanzamiento como KDE Frameworks fue con la versión 5, para tener en cuenta el hecho de que el código base era el de la plataforma KDE versión 4 (la única versión principal de la plataforma KDE ).
La transición de la plataforma KDE a KDE Frameworks comenzó en agosto de 2013, guiada por los principales contribuyentes técnicos de KDE. [8]
Después del lanzamiento inicial de KDE Frameworks 5.0, los desarrolladores se centraron en agregar nuevas funciones a los componentes de KDE Frameworks 5, [30] un ejemplo de ello es una mejor integración de Firefox en KDE. [31]
La principal mejora de Frameworks 5 es su modularización. En versiones anteriores de KDE, las bibliotecas se incluían como un único paquete grande. En Frameworks, las bibliotecas se dividieron en paquetes individuales más pequeños. Esto facilita la utilización de las bibliotecas por parte de otro software basado en Qt, ya que las dependencias se pueden mantener al mínimo. [8]
Mientras que KDE 4 se basó en la versión 4 del kit de herramientas del widget Qt , Frameworks 5 se basó en la versión 5.
Como parte del 'MegaRelease 6' del proyecto KDE, el 28 de febrero de 2024 se lanzó KDE Frameworks 6, actualizándolo a una base Qt 6. [32]
Durante KDE SC 4, la entonces llamada Plataforma KDE constaba de todas las bibliotecas y servicios necesarios para KDE Plasma y las aplicaciones. A partir de Qt 5, esta plataforma se transformó en un conjunto de módulos que ahora se conoce como KDE Frameworks. Estos módulos incluyen: Solid , Nepomuk , Phonon , etc. y tienen licencia LGPL, BSD, MIT o X11. [33]
Además de la compilación de software KDE , existen otros adoptantes como los entornos de escritorio LXQt , MoonLightDE o Hawaii.
La versión 3.0 de Krita , el editor de gráficos rasterizados de Calligra Suite , que se lanzó el 31 de mayo de 2016, depende de KDE Frameworks 5 y Qt 5.2.
Con Kirigami también se incrementa el uso por parte de aplicaciones como Amarok , Avogadro , Trojitá o Subsurface .