Plasma conquista il mondo

La Desktop-Shell Plasma è il componente di base dei KDE-Wordspaces, ma oltre ad essere alla base dei Workspaces per Desktop, Notebook e della Mobile-Shell, che è in sviluppo, c’è tanto altro ancora. Questo articolo lancia uno sguardo al di sotto di quella che l’interfaccia utente e porta alla luce le qualità del Framework per la creazione di Workspaces, Applets e l’integrazione di Plasma in applicazioni che non sono delle Desktop-Shell.

I Plasma-Workspaces

Plasma è noto alla maggioranza degli utenti come uno dei Workspaces principali della comunità KDE. Attualmente ne esistono due varianti ottimizzate: una per i Desktop, l’altra per i Netbook. La decisione di usare l’una o l’altra, come accade per esempio in Kubuntu 10.10, è presa in completa autonomia da Plasma. Il programma di installazione valuta la dimensione dello schermo e le caratteristiche generali del sistema e seleziona automaticamente la variante migliore. Passare da una variante all’altra è in ogni caso possibile anche successivamente attraverso le impostazioni di sistema e con un semplice click.

Il Plasma visibile all’utente è un ambiente desktop completo composto da una Desktop-Shell, un window-manager, le impostazioni di sistema, ecc… confrontabile quindi con Gnome, Xfce e Lxde, ma anche con la Gnome Shell che è in fase di sviluppo. I KDE Workspaces sono però solo una piccola parte della KDE Software Compilation (KDE SC) che segue un ciclo di pubblicazione semestrale. Plasma non è quindi solo la base dei Workspaces, ma anche un componente importante della piattaforma di sviluppo di KDE e di sempre più applicazioni KDE.

libplasma – Un framework per lo sviluppo di Workspaces

Al centro dello sviluppo di Workspaces basati su applet (chiamate anche Widget, Gadget, Plasmoid o miniprogrammi) c’è la libreria libplasma. Grazie ad essa è molto semplice adattare il funzionamento e l’aspetto dell’interfaccia alle diverse possibili dimensioni degli schermi. Utilizzandola sarebbe stato possibile realizzare l’interfaccia per netbook Unity di Ubuntu 10.10 (Maverick Meerkat) con molto meno lavoro e con maggiori possibilità di riutilizzo del codice e di interi componenti. Inoltre non si sarebbe creato un nuovo ambiente e quindi si sarebbe potuta utilizzare una piattaforma già collaudata.

Una applet scritta per il desktop funziona perfettamente anche su un notebook o uno smartphone. Tutto il lavoro di reimplementazione non esiste più. Plasma riconosce la dimensione e la forma dello schermo e gli applet ci si adeguano. Questo comportamento può essere osservato anche sul desktop. Se un’applet vive nella barra dei controlli allora viene ridotta alle dimensioni minime e mostra solo le informazioni di base. L’interfaccia completa verrà visualizzata solo in seguito al click sull’Extender. Sull’area di lavoro e sulla dashboard c’è abbastanza spazio e quindi l’applet mostrerà tutte le informazioni.

Un aspetto importante nell’uso della tecnologia ad applet è certamente la flessibilità. Anche sotto questo aspetto il framework di Plasma è all’avanguardia. Infatti non supporta soltanto i plasmoidi nativi e i widget Superkaramba dell’era KDE3, ma anche i Google-Gadgets e grazie all’integrazione con Webkit in Qt (il fork di Apple del motore di rendering KHTML nato per KDE) anche i Mac OS X Dashboard Widgets. I plasmoidi possono essere realizzati in una moltitudine di linguaggi. Quelli più diffusi sono scritti C++ utilizzando la libreria Qt. Ma esistono anche i binding per molti motori di scripting come Python, Ruby e Javascript (ECMA-Script).

In particolare l’utilizzo di Javascript ha diversi aspetti positivi perché isola il framework dall’applet facendola girare in una sandbox. Anche il modello dell’App-Store si adatta bene a Javascript. Applet scritte in Javascript possono essere caricate su KDE-Look.org e scaricate per esempio attraverso il framework “Get Hot New Stuff” (GHNS). E se per lo sviluppo dell’applet si utilizza PlasMate allora la pubblicazione è addirittura automatica.

Il framework GHNS e gli Open Collaboration Services (OCS) che ne sono alla base saranno utilizzati in futuro anche dall’App Store Ovi di Nokia e da quello del nuovo sistema operativo per smartphone di Intel chiamato MeeGo.

Javascript sta diventando sempre più una tecnologia di base fondamentale nel mondo KDE come si è visto anche di recente con il concorso a tema. Attraverso la Desktop-Scripting-Konsole è possibile configurare tutti gli aspetti del proprio ambiente di lavoro utilizzando proprio Javascript. È un’applicazione interessante per installazioni e configurazioni di massa in ambiente corporate. L’utilizzo di Javascript per la configurazione iniziale del desktop viene usata anche da alcune distribuzioni Linux come Kubuntu. Javascript sta vivendo un periodo d’oro anche al di fuori di Plasma.

Anche il window manager di KDE 4.6 avrà anche un’interfaccia per eseguire gli script grazie ad uno dei progetti presentati al “Google Summer of Code”. Questo permetterà di gestire in maniera molto più flessibile il comportamento delle finestre rispetto alle regole statiche attuali.

Plasma per applicazioni applet-centriche

L’Applet Framework sviluppato per Plasma non è utilizzabile solo nei Workspaces basati su applet. Anche molte applicazioni possono usare in molti modi differenti questo genere di componenti. Per questo tipo di applicazioni Plasma può rappresentare anche un’interessante espansione. Una delle prime applicazioni che si è basata sul concetto di applet di Plasma è stata la reimplementazione di Amarok 2. L’area “Contesto” utilizza gli applet per visualizzare informazioni aggiuntive come i testi delle canzoni o delle fotografie relative a ciò che si sta ascoltando. Per fornire queste funzionalità Amarok non ha dovuto reinventare la ruota, ma si è appoggiato a quanto già offriva Plasma.

Nell’ambito del Google Summer of Code di quest’anno ci sono stati diversi progetti che si proponevano per migliorare l’integrazione di Plasma in altre applicazioni. Come esempio possiamo citare Kontact della KDE-PIM Suite che permette di gestire le proprie eMail e l’agenda. Quindi un ambito che è molto indicato per le applet. Considerando l’attuale porting di Kontact sul framework Akonadi è comunque necessaria una riscrittura di ampie parti di codice.

Attraverso l’uso di Plasma non si può riutilizzare solo la tecnologia delle applet, ma anche le applet stesse. Un esempio per questo è Lion Mail che è una applet di avviso per le eMail in fase di sviluppo che si adatta all’uso sul desktop, ma anche all’interno di Kontact. Questa applet multiuso non è legata a KMail e quindi, grazie ad Akonadi, può essere usata anche in combinazione con Mozilla Thunderbird o con soluzioni basate sul web come Google Mail.

Plasma per le applicazioni esistenti

libplasma non offre agli sviluppatori di applicazioni solo un sistema di applet che permette di realizzare estensioni in maniera semplice. Plasma permette anche la realizzazione di temi flessibili per componenti in SVG. Questi temi possono essere usati anche da altre applicazioni. Per esempio Aurorae, il motore dei temi per le decorazioni delle finestre, è basato completamente su libplasma ed SVG. Uno sviluppatore può quindi ridursi a conoscere una sola tecnologia per modellare tutto il Workspace. Il Plasma-Theme viene usato anche per gli effetti di KWin e ha sostituito del codice di rendering che era stato sviluppato appositamente. In questo modo viene omogeneizzato l’aspetto e ridotto il codice sorgente e in più il Plasma-Theme può anche influenzare l’aspetto degli effetti, cosa non possibile in precedenza.

Uno sguardo al futuro

Anche se lo sviluppo di Plasma è sostanzialmente concluso non sta rallentando il ritmo di introduzione di nuove tecnologie. A fine Gennaio o inizio Febbraio sarà pubblicata la versione 4.6 e il linguaggio dichiarativo Qt Quick (conosciuto come QML) entrerà a far parte di Plasma. Attraverso QML sarà possibile separare completamente l’interfaccia dalla logica di un applicativo. Quindi i designer saranno facilitati nell’entrare nel processo di sviluppo. E sarà ancora più facile realizzare interfacce che si adattano alle dimensioni dello schermo, come per esempio nel caso dei dispositivi mobili. Sono tutte questioni su cui gli sviluppatori stanno ragionando con ampio anticipo.

Conclusione

Plasma è molto più di un semplice Desktop, infatti è un framework per la realizzazione di desktop e un’ottima opzione per gli adattamenti per i tablet e altri formati che si stanno proponendo. Questo modo di ragionare rende obsoleto il modello di programmazione classica che prevede un’interfaccia studiata e realizzata appositamente per un sistema. Partendo da questo presupposto Plasma offre alle applicazioni una moltitudine di possibilità di utilizzare le tecnologie sviluppate dal team di KDE e quindi di riutilizzare sia le applet, come si è fatto per Amarok, sia i temi. Attraverso Plasma si possono realizzare applicazioni leggere e veloci con un approccio moderno. Plasma è pronto a conquistare il mondo!

Articolo originale di Martin Gräßlin in tedesco

Leave a Reply

Your email address will not be published. Required fields are marked *