KDE Frameworks es una colección de bibliotecas y marcos de software disponibles para cualquier pila de software o aplicación basada en Qt en múltiples sistemas operativos . [6] Con soluciones de funcionalidades que se necesitan con frecuencia, como integración de hardware, compatibilidad con formatos de archivo, elementos de control gráfico adicionales , funciones de trazado y correcció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 de GNU (LGPL). [7]
KDE Frameworks se basa en Qt, lo que permite un uso más extendido 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 gráfico utilizado por QML permite interfaces de usuario más fluidas en diferentes dispositivos. [8]
Desde la división de KDE Software Compilation en KDE Frameworks 5, KDE Plasma 5 y KDE Applications , 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 KDE Platform 4 para que las aplicaciones puedan usar cualquiera de ellos. [12]
Las versiones de plataforma son aquellas que comienzan una serie (número de versión X.0). Solo estas versiones principales pueden romper la compatibilidad binaria con su predecesora. 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 hacer uso de las bibliotecas de KDE 3. Los números de versión principales de KDE siguen principalmente el ciclo de versiones de Qt, lo que significa que KDE SC 4 se basa en Qt 4, mientras que KDE 3 se basaba en Qt 3.
El repositorio de cada framework debe contener un archivo llamado metainfo.yaml . [13] Este archivo documenta el responsable del framework, el tipo, el sistema operativo compatible y otra información. Las plataformas compatibles actualmente son Linux, Microsoft Windows, macOS y Android.
Los frameworks tienen una estructura de dependencias clara, dividida en "categorías" y "niveles". Las "categorías" hacen referencia a las dependencias en 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 frameworks individuales, algunos de los cuales ya no forman parte de KDE pero se integraron en Qt 5.2. [14]
Los marcos de 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.
Lo utilizan 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 Linux utilizan algún sistema de gestión de paquetes para empaquetar el software que distribuyen. Debian, por ejemplo, distribuye KGlobalAccel bajo el nombre de paquete libkf5globalaccel [22] , mientras que Fedora Linux lo distribuye bajo el nombre kf5-kglobalaccel [23] .
Aunque está escrito principalmente en C++, hay muchos enlaces disponibles para otros lenguajes de programación: [24] [25]
Estos y otros enlaces utilizan las siguientes tecnologías:
Muchos enlaces no se actualizaron a Qt5 y KF5 o solo se actualizaron más tarde en el ciclo de lanzamiento.
El lanzamiento de la versión 5.0 fue precedido 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 ha existido desde KDElibs 1. El primer lanzamiento como KDE Frameworks fue con la versión 5, para tener en cuenta el hecho de que la base del código era la de KDE Platform versión 4 (la única versión principal de KDE Platform ).
La transición de KDE Platform a KDE Frameworks comenzó en agosto de 2013, guiada por los principales colaboradores técnicos de KDE. [8]
Después del lanzamiento inicial de KDE Frameworks 5.0, los desarrolladores se centraron en agregar nuevas características a los componentes de KDE Frameworks 5, [30] un ejemplo 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 agrupaban en un único paquete grande. En Frameworks, las bibliotecas se dividían 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 de widgets Qt , Frameworks 5 se basa 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 denominada Plataforma KDE consistía en 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 están licenciados bajo la licencia LGPL, BSD, MIT o X11. [33]
Además de KDE Software Compilation , 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 su uso por parte de aplicaciones como Amarok , Avogadro , Trojitá o Subsurface .