# KDE Frameworks

KDE Frameworks és una col·lecció de biblioteques i marcs de programari fàcilment disponibles per a qualsevol pila de programari basat en Qt o aplicació en diversos sistemes operatius. Amb solucions de funcionalitats necessàries amb freqüència com la integració de maquinari, suport de format de fitxer, elements de control gràfic addicionals, funcions de traçat i correcció ortogràfica, la col·lecció serveix com a base tecnològica per a KDE Plasma i KDE Gear distribuïts sota la Llicència Pública General Reduïda de GNU (LGPL).

## Visió general

Els marcs actuals de KDE es basen en Qt 5, que permet un ús més estès de QML, un llenguatge de programació declaratiu basat en JavaScript més senzill, per al disseny d'interfícies d'usuari. El motor de renderització de gràfics utilitzat per QML permet interfícies d'usuari més fluides en diferents dispositius.
Des de la divisió de la compilació de programari KDE en KDE Frameworks 5, KDE Plasma 5 i KDE Applications, cada subprojecte pot triar el seu propi ritme de desenvolupament. Els marcs de KDE es publiquen mensualment i utilitzen git.
Hauria de ser possible instal·lar KDE Frameworks juntament amb la plataforma KDE 4 perquè les aplicacions puguin utilitzar qualsevol d'elles.

### Estabilitat de l'API i l'ABI

KDE Frameworks és una col·lecció de biblioteques i marcs de programari fàcilment disponibles per a qualsevol pila de programari basat en Qt o aplicació en diversos sistemes operatius. Amb solucions de funcionalitats necessàries amb freqüència com la integració de maquinari, suport de format de fitxer, elements de control gràfic addicionals, funcions de traçat i correcció ortogràfica, la col·lecció serveix com a base tecnològica per a KDE Plasma i KDE Gear distribuïts sota la Llicència Pública General Reduïda de GNU (LGPL).

## Visió general

Els marcs actuals de KDE es basen en Qt 5, que permet un ús més estès de QML, un llenguatge de programació declaratiu basat en JavaScript més senzill, per al disseny d'interfícies d'usuari. El motor de renderització de gràfics utilitzat per QML permet interfícies d'usuari més fluides en diferents dispositius.
Des de la divisió de la compilació de programari KDE en KDE Frameworks 5, KDE Plasma 5 i KDE Applications, cada subprojecte pot triar el seu propi ritme de desenvolupament. Els marcs de KDE es publiquen mensualment i utilitzen git.
Hauria de ser possible instal·lar KDE Frameworks juntament amb la plataforma KDE 4 perquè les aplicacions puguin utilitzar qualsevol d'elles.

### Estabilitat de l'API i l'ABI

Els llançaments de plataforma són aquells que comencen una sèrie (versió número X.0). Només aquestes versions principals poden trencar la compatibilitat binària amb el predecessor. Els llançaments de les sèries menors (X.1, X.2,...) garantiran la portabilitat binària (API i ABI). Això vol dir, per exemple, aquell programari desenvolupat per a KDE 3.0 funcionarà en tots els (futurs) KDE 3 llançaments; tanmateix, una aplicació desenvolupada per a KDE 2 no es garanteix que pugui fer ús del KDE 3 biblioteques. Els números de versió principals de KDE segueixen principalment el cicle de llançament de Qt, el que significa que KDE SC 4 es basa en Qt 4, mentre que KDE 3 es va basar en Qt 3.

## Arquitectura del programari
### Estructura

Els Frameworks tenen una clara estructura de dependència, dividida en "categories" i "nivells". Les "categories" fan referència a dependències en temps d'execució:
* Els elements funcionals no tenen dependències en temps d'execució.
* La integració designa codi que pot requerir dependències en temps d'execució per a la integració en funció del que ofereix el sistema operatiu o la plataforma.
* Les solucions tenen dependències obligatòries en temps d'execució.

### Components

El paquet KDE Frameworks consta de més de 70 paquets. Aquests existien com un sol paquet gran, anomenat kdelibs, al KDE SC 4. Kdelibs es va dividir en diversos marcs individuals, alguns dels quals ja no formen part del KDE, però es van integrar a Qt 5.2.
Els marcs de KDE s'agrupen en quatre nivells diferents segons la dependència d'altres biblioteques.

#### Nivells de marcs

    Nivell 1 – depenen principalment només de Qt, altament portàtil
    Nivell 2 – depèn del nivell 1, però les dependències encara es poden gestionar.
    Nivell 3 – dependències complexes, inclosos els nivells – , etc.
    Nivell 4 – la majoria dels connectors que proporcionen funcions addicionals com el suport de la plataforma es poden ignorar.

## Referències

Els llançaments de plataforma són aquells que comencen una sèrie (versió número X.0). Només aquestes versions principals poden trencar la compatibilitat binària amb el predecessor. Els llançaments de les sèries menors (X.1, X.2,...) garantiran la portabilitat binària (API i ABI). Això vol dir, per exemple, aquell programari desenvolupat per a KDE 3.0 funcionarà en tots els (futurs) KDE 3 llançaments; tanmateix, una aplicació desenvolupada per a KDE 2 no es garanteix que pugui fer ús del KDE 3 biblioteques. Els números de versió principals de KDE segueixen principalment el cicle de llançament de Qt, el que significa que KDE SC 4 es basa en Qt 4, mentre que KDE 3 es va basar en Qt 3.

## Arquitectura del programari
### Estructura

Els Frameworks tenen una clara estructura de dependència, dividida en "categories" i "nivells". Les "categories" fan referència a dependències en temps d'execució:
* Els elements funcionals no tenen dependències en temps d'execució.
* La integració designa codi que pot requerir dependències en temps d'execució per a la integració en funció del que ofereix el sistema operatiu o la plataforma.
* Les solucions tenen dependències obligatòries en temps d'execució.

### Components

El paquet KDE Frameworks consta de més de 70 paquets. Aquests existien com un sol paquet gran, anomenat kdelibs, al KDE SC 4. Kdelibs es va dividir en diversos marcs individuals, alguns dels quals ja no formen part del KDE, però es van integrar a Qt 5.2.
Els marcs de KDE s'agrupen en quatre nivells diferents segons la dependència d'altres biblioteques.

#### Nivells de marcs

    Nivell 1 – depenen principalment només de Qt, altament portàtil
    Nivell 2 – depèn del nivell 1, però les dependències encara es poden gestionar.
    Nivell 3 – dependències complexes, inclosos els nivells – , etc.
    Nivell 4 – la majoria dels connectors que proporcionen funcions addicionals com el suport de la plataforma es poden ignorar.

## Referències

* ↑ «The KDE Frameworks» (en anglès). API Documentation. Arxivat de l'original el 2019-12-07. [Consulta: 17 març 2020].
* ↑ «KDE Frameworks» (en anglès). Tech Base. Arxivat de l'original el 2020-08-13. [Consulta: 17 març 2020].
* ↑ Howard Chan. «KDE Release Structure Evolves» (en anglès). KDE, 04-09-2013. Arxivat de l'original el 2020-11-12. [Consulta: 27 febrer 2014].
* ↑ «Release schedule for KDE Frameworks 5» (en anglès). Arxivat de l'original el 2016-06-24. [Consulta: 18 maig 2016].
* ↑ «Git workflow for Frameworks» (en anglès). Arxivat de l'original el 2020-10-20. [Consulta: 19 agost 2014].
* ↑ «KDE Frameworks5 API documentation» (en anglès). Arxivat de l'original el 2014-08-22.
* ↑ «Coinstallability with KDE Platform 4» (en anglès). Arxivat de l'original el 2020-12-01. [Consulta: 19 agost 2014].
* ↑ Jos Poortvliet. «Qt 5.2 - Foundation for KDE Frameworks 5» (en anglès). Dot.kde.org, 17-12-2013. Arxivat de l'original el 2020-11-11. [Consulta: 10 març 2014].
* ↑ Howard Chan. «Frameworks 5» (en anglès). Dot.kde.org, 25-09-2013. Arxivat de l'original el 2020-11-26. [Consulta: 10 març 2014].
* ↑ «API Documentation» (en anglès). api.kde.org. Arxivat de l'original el 2021-10-02. [Consulta: 2 octubre 2021].