Linguaggio di marcatura dell'interfaccia utente - User interface markup language
Un linguaggio di markup dell'interfaccia utente è un linguaggio di markup che visualizza e descrive interfacce utente e controlli grafici . Molti di questi linguaggi di markup sono dialetti dell'XML e dipendono da un motore di linguaggio di scripting preesistente , di solito un motore JavaScript , per il rendering dei controlli e la possibilità di script extra.
Il concetto dei linguaggi di marcatura dell'interfaccia utente si basa principalmente sul desiderio di prevenire la " re-invenzione della ruota " nella progettazione, sviluppo e funzione di un'interfaccia utente; tale reinvenzione si presenta sotto forma di codifica di uno script per l'intera interfaccia utente. Il tipico linguaggio di markup dell'interfaccia utente consolida il programma spesso riutilizzato o il codice di script sotto forma di markup, rendendo più facile concentrarsi sulla progettazione di un'interfaccia utente in un dialetto comprensibile anziché concentrarsi sulla funzione.
I linguaggi di markup dell'interfaccia utente, come la maggior parte dei linguaggi di markup e di programmazione, si basano su runtime di applicazioni secondarie per interpretare e rendere il codice di markup come codice di programma che può essere elaborato e distribuito nella forma desiderata. Nei linguaggi di markup dell'interfaccia utente basati su XML, il markup viene generalmente interpretato e rappresentato come un albero di nodi che può essere manipolato in fase di esecuzione dal codice dell'applicazione o da uno script utente caricato dinamicamente .
Linguaggi di marcatura dell'interfaccia utente
XFD
XFD, che sta per X ML F ORM D efinizione è l'interfaccia linguaggio di markup utente dietro STARLIMS prodotto ( http://www.starlims.com ), sviluppato da Abbott Informatics. Il prodotto STARLIMS ha un intero ecosistema di strumenti di runtime e design time per eseguire e creare moduli visivi utilizzando il linguaggio XFD. STARLIMS v10 è alimentato da un runtime XFD sviluppato utilizzando Microsoft .NET Framework e ospitato nel browser Internet Explorer. STARLIMS v11 introduce un motore XFD aggiuntivo basato su un motore di trasformazione lato server che trasforma l'XFD in dati compatibili con HTML5 progettati per essere eseguiti su qualsiasi browser compatibile con HTML5. XFD è programmabile in linguaggio basato su JavaScript.
QML
QML è un linguaggio di markup multipiattaforma per la creazione di interfacce utente basate su OpenGL con accelerazione hardware per dispositivi che vanno dal mobile al desktop. Le interfacce QML vengono manipolate utilizzando il linguaggio JavaScript. QML fa parte del Qt Project , creato da Trolltech, allora di proprietà di Nokia e ora di proprietà di Digia.
MXML
MXML è il linguaggio di markup dell'interfaccia utente basato su XML introdotto da Macromedia nel marzo 2004. Ora fa parte dell'Open Source ( http://opensource.adobe.com ) Adobe Flex SDK versione 4. I file MXML vengono compilati in Flash SWF tramite il Flex SDK e vengono renderizzati sul browser Internet, tramite il plug-in Adobe Flash , o come applicazioni multipiattaforma stand-alone, tramite Adobe AIR SDK open source .
UIML
OASIS UIML è un linguaggio di markup dell'interfaccia utente standard basato su XML. È uno standard aperto in cui l'implementazione non è limitata a un singolo fornitore.
XUL
Il linguaggio di interfaccia principale dei prodotti Mozilla Foundation è XUL . I documenti XUL sono resi dal motore Gecko , che rende anche i documenti XHTML e SVG . Collabora con molti standard e tecnologie esistenti, inclusi CSS , JavaScript , DTD e RDF .
UsaXML
UsiXML (che sta per Us er I nterface E x tensible M arkup L anguage) è un linguaggio di markup XML-compliant che descrive l'interfaccia utente per molteplici contesti d'uso come le interfacce di caratteri utente (Cuis), interfacce grafiche (GUI), uditive Interfacce utente e interfacce utente multimodali. In altre parole, le applicazioni interattive con diversi tipi di tecniche di interazione, modalità di utilizzo e piattaforme di calcolo possono essere descritte in modo da preservare il design indipendentemente dalle caratteristiche peculiari della piattaforma di calcolo fisico.
WTKX
WTKX è un linguaggio di markup basato su XML utilizzato per creare applicazioni Apache Pivot . Sebbene sia più comunemente utilizzato per definire la struttura dell'interfaccia utente di un'applicazione, può essere utilizzato per costruire in modo dichiarativo qualsiasi tipo di gerarchia di oggetti Java.
XAL
eXtensible Application Language è il linguaggio di markup della suite Enterprise Web 2.0 di Nexaweb. Gli sviluppatori possono utilizzare questo linguaggio per definire applicazioni che verranno eseguite come client Java o client Ajax .
SVG
Scalable Vector Graphics è un linguaggio di markup per la grafica proposto dal W3C in grado di supportare grafica ricca per applicazioni web e mobili. Sebbene SVG non sia un linguaggio di interfaccia utente, include supporto per grafica vettoriale/raster, animazione, interazione con DOM e CSS, supporti incorporati, eventi e scriptability. Quando queste funzionalità vengono utilizzate in combinazione, sono possibili interfacce utente avanzate.
SVG può anche essere sovrapposto a un altro linguaggio di markup dell'interfaccia utente compatibile con XML, come XUL e XForms , come parte ricca di grafica di un'interfaccia utente.
TUIX
TUIX è un linguaggio di markup basato su XML per definire le interfacce utente in Tribiq CMS. Gli sviluppatori possono definire sia l'aspetto delle interfacce che le loro interazioni. I file TUIX di diversi plugin vengono uniti prima del rendering facilitando la facile modifica delle interfacce esistenti e l'aggiunta di nuove funzionalità.
XAML
XAML è un sistema di markup alla base dei componenti dell'interfaccia utente di Microsoft .NET Framework 3.0 e versioni successive. Il suo ambito è più ambizioso di quello della maggior parte dei linguaggi di markup dell'interfaccia utente, poiché anche la logica e gli stili del programma sono incorporati nel documento XAML . Funzionalmente, può essere visto come una combinazione di XUL, SVG, CSS e JavaScript in un unico schema XML.
Alcune persone sono critiche nei confronti di questo design, poiché esistono molti standard (come quelli già elencati) per fare queste cose. Tuttavia, dovrebbe essere sviluppato con uno strumento visivo in cui gli sviluppatori non hanno nemmeno bisogno di comprendere i markup sottostanti.
I3ML
I3ML è un meccanismo proprietario di distribuzione delle applicazioni thin client sviluppato da CoKinetic Systems Corp , con supporto client fornito da un plug-in del browser che renderà applicazioni simili a Windows su un'infrastruttura HTTP con esigenze di larghezza di banda minime.
OpenLaszlo (LZX)
OpenLaszlo è un ambiente runtime che comprende un ambiente runtime e un linguaggio di definizione dell'interfaccia (Laszlo XML - LZX). LZX è un linguaggio di interfaccia utente dichiarativo che definisce i widget, il layout dell'applicazione e gli elementi di scripting (usando JavaScript) per creare la tua applicazione. LZX è indipendente dal runtime con il runtime attualmente supportato all'interno di Macromedia/Adobe Flash. Un runtime sperimentale chiamato Laszlo "Legals" che consentirà alle applicazioni OpenLaszlo (LZX) di funzionare in più ambienti di runtime, come DHTML/AJAX.
HMVCUL
H ierarchical M odello V ista C ontroller U ser I nterface L anguage ( HMVCUL ) è un linguaggio dell'interfaccia utente markup XML che supporta la creazione e concatenamento di MVC atomico triade componenti utilizzati nella costruzione di applicazioni HMVC GUI. Il runtime associato fornisce metodi che consentono la configurazione di proprietà, data binding ed eventi di ciascuno degli elementi della triade MVC (widget, controller, modello). Il runtime esegue ciò mappando gli elementi XML definiti in un file HMVCUL agli oggetti all'interno del framework, agli attributi alle proprietà o agli eventi. Il concatenamento viene eseguito seguendo la struttura ad albero descritta all'interno del file HMVCUL.
WasabiXML
WasabiXML è un linguaggio di markup XML utilizzato per definire l'interfaccia grafica nelle applicazioni basate su Wasabi . È più comunemente usato con Winamp per creare skin Winamp . WasabiXML è stato sviluppato da Nullsoft per Winamp, ma è utilizzabile anche con altre applicazioni con Wasabi SDK .
L'elemento radice in WasabiXML è <WasabiXML>(per le skin Winamp, è anche <WinampAbstractionLayer>). L' <skininfo>elemento mostra le informazioni per uno skin. L'interfaccia grafica è gestita <container>dall'elemento e l'elemento GUI visualizzabile di base è <layout>. Di seguito è riportato un esempio per una semplice GUI con un elemento pulsante:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WinampAbstractionLayer version="1.2">
<skininfo>
<version>1</version>
<name>mySkin</name>
<comment>Ooo Lala</comment>
<author>Some Person</author>
<email>[email protected]</email>
<homepage>http://www.example.org</homepage>
</skininfo>
<include file="xml/color-sys.xml"/> <!-- Include a file -->
<container id="normal">
<layout id="normal" desktopalpha="true">
<button
x="0" y="0"
id="button.normal"
image="mybutton.image"
hoverimage="mybutton.himage"
downimage="mybutton.dimage"
/>
</layout>
</container>
</WinampAbstractionLayer>
WasabiXML supporta molti elementi della GUI tra cui:
<button><text><vis><eqvis><layer><animatedlayer>-
<groupdef>usato insieme a<group>
<groupdef>consente allo sviluppatore di definire un gruppo di oggetti GUI che possono essere riutilizzati ovunque nella skin. Wasabi supporta anche XUI che non sono altro che <groups>uno script MAKI che consente agli sviluppatori di creare componenti GUI (widget) propri aggiungendo alla modularità.
WasabiXML ha uno spazio dei nomi XML 'Wasabi::' che definisce le GUI comuni senza dover dichiarare i percorsi delle immagini.
MARIA
MARIA è un linguaggio universale, dichiarativo , a più livelli di astrazione , basato su XML per la modellazione di applicazioni interattive in ambienti ubiquitari .
FXML
FXML è un linguaggio basato su XML per definire l'interfaccia utente delle applicazioni JavaFX .
Altro
Altri linguaggi di markup incorporati nei framework esistenti sono:
Formato .xib di Apple Interface Builder
Alcuni di questi sono compilati in forme binarie.
In avionica , lo standard ARINC 661 prescrive un formato binario per definire le interfacce utente nei glass cockpit .
I moduli Borland VCL (.dfm e .lfm) sono file di testo che descrivono le finestre delle applicazioni Delphi e Lazarus . Sono compilati nell'eseguibile finale in formato binario e utilizzano RTTI per funzionare.