Widget

Aus besserwiki.de
Einige Widgets auf einem KDE4-Desktop

Ein Widget [ˈwɪʤət] ist eine Komponente eines grafischen Fenstersystems. Das Widget besteht zum einen aus dem Fenster, einem sichtbaren Bereich, der Maus-, Touchscreen- und/oder Tastaturereignisse empfängt, und zum anderen aus dem nicht sichtbaren Objekt, das den Zustand der Komponente speichert und über bestimmte Zeichenoperationen den sichtbaren Bereich verändern kann. Widgets sind immer in ein bestimmtes Fenstersystem eingebunden und nutzen dieses zur Interaktion mit dem Anwender oder anderen Widgets des Fenstersystems.

Applets sind zwar ebenfalls in eine Umgebung eingebunden, verwenden jedoch im Gegensatz zum Widget nicht zwingend die vom Fenstersystem bereitgestellten Dienste und Fenster. Applets werden meist über eine – im Vergleich zur Schnittstelle des Fenstersystems – relativ grobe Plug-in-Schnittstelle in das Wirtssystem eingebunden und haben meist ihre eigene Fenster- und Ereignisverwaltung.

Widgets und zum Teil auch Applets können nicht als eigenständige Anwendungsprogramme im Rahmen eines Betriebssystems betrieben werden. Sie benötigen eine Umgebung, die über eine Programmierschnittstelle Grundfunktionen und Ressourcen bereitstellt und somit die Möglichkeiten beschränkt. Programme für den Betrieb von Widgets werden als Widget-Engines bezeichnet.

Die englische Bezeichnung widget ist ein Kofferwort, gebildet aus window, für „Fenster“, und gadget, für „Zubehörgerät“.

Ein Software-Widget ist eine relativ einfache und leicht zu bedienende Softwareanwendung oder -komponente, die für eine oder mehrere Softwareplattformen entwickelt wurde.

Ein Schreibtisch-Accessoire oder Applet ist ein Beispiel für eine einfache, eigenständige Benutzeroberfläche, im Gegensatz zu einer komplexeren Anwendung wie einer Tabellenkalkulation oder einem Textverarbeitungsprogramm. Diese Widgets sind typische Beispiele für flüchtige und zusätzliche Anwendungen, die die Aufmerksamkeit des Benutzers nicht in Anspruch nehmen.

Andererseits sind grafische Steuerelemente (GUI-"Widgets") Beispiele für wiederverwendbare modulare Komponenten, die zusammen verwendet werden, um eine komplexere Anwendung zu erstellen, so dass Programmierer Benutzeroberflächen durch die Kombination einfacher, kleinerer Komponenten erstellen können.

Klassifizierung

Da es den Begriff und die Kodierungspraxis mindestens seit den 1980er Jahren gibt, wurde er in einer Reihe von Zusammenhängen verwendet.

Primäre Typen

Ein grafisches Steuerelement (GUI-Widget) ist Teil einer grafischen Benutzeroberfläche (GUI), die es dem Computerbenutzer ermöglicht, das Aussehen von Elementen zur Bedienung einer Softwareanwendung zu steuern und zu ändern. In diesem Zusammenhang kann sich ein Widget auf ein allgemeines GUI-Element wie z. B. ein Kontrollkästchen, auf eine Instanz dieses Elements oder auf eine angepasste Sammlung solcher Elemente beziehen, die für eine bestimmte Funktion oder Anwendung verwendet werden (z. B. ein Dialogfeld, mit dem der Benutzer das Erscheinungsbild seines Computerbildschirms anpassen kann). Ein Widget-Toolkit ist ein Satz von Programmierwerkzeugen, die Entwicklern helfen, GUI-Widgets wiederzuverwenden, um eine Benutzeroberfläche zu erstellen.

Ein Desktop-Widget ist ein spezialisiertes GUI-Widget, das auf einem Computer-Desktop ausgeführt werden soll, damit Computerbenutzer einfache Hilfsfunktionen wie Uhren, Nachrichtendienste und Kalender steuern können. Ein mobiles Widget ist das vergleichbare Äquivalent für mobile Geräte (z. B. Smartphones).

Ein Web-Widget ist eine tragbare Anwendung, die in der Regel von unerfahrenen Webmastern auf HTML-basierten Webseiten installiert und ausgeführt wird, um Website-Besuchern Einkaufsmöglichkeiten, Werbung, Videos oder andere einfache Funktionen von Widget-Anbietern anzubieten.

Arten von Web-Widgets

  • Eine "Widget-Anwendung" ist ein Web-Widget eines Drittanbieters, das für einen sozialen Netzwerkdienst entwickelt wurde, wobei die Benutzeroberfläche oder die gesamte Anwendung von dem Netzwerkdienst gehostet wird. Soziale Netzwerkdienste wie Facebook und Myspace hosten diese Anwendungen und stellen ihnen über spezielle Anwendungsprogrammierschnittstellen die zugrunde liegenden Plattformdienste zur Verfügung (z. B. Anzeige und Speicherung von durch den Benutzer bereitgestellten Fotos und anderen Inhalten, Profilinformationen über Endbenutzer und Kommunikationsfunktionen mit anderen Benutzern). Der Begriff wird relativ weit gefasst, da viele dieser Anwendungen intern und in der Bedienung komplexer sind als die einfachen Applets, die in anderen Zusammenhängen als "Widgets" bezeichnet werden. Die Beziehung zwischen Plattform und Entwickler ist für beide Seiten vorteilhaft: Das soziale Netzwerk stellt die Hardware- und Software-Infrastruktur und den Zugang zur Endnutzerbasis des sozialen Netzwerks zur Verfügung, und die Herausgeber von Anwendungen - von Amateurentwicklern bis hin zu organisierten Unternehmen wie RockYou! und slide.com - liefern Inhalte und Funktionen, die die Dienste des sozialen Netzwerks für ihre Mitglieder nützlicher machen. Derzeit gibt es keine Gebühren oder Zahlungen zwischen den Entwicklern und den Plattformen sozialer Netzwerke, und die Versuche, mit Widgets Einnahmen zu erzielen (in erster Linie durch Werbung in den Widget-Anwendungen und den Verkauf von Waren und Dienstleistungen des elektronischen Geschäftsverkehrs innerhalb der Widgets), waren relativ erfolglos.

Arten von GUI-Widgets

  • Disclosure Widgets sind spezielle Arten von GUI-Widgets, die von Computerbenutzern ausgeblendet oder erweitert werden können.
  • Ein Metawidget ist ein GUI-Widget zur Steuerung der Funktion anderer Widgets innerhalb einer grafischen Benutzeroberfläche.

Widget-Engine

Beispiel für die Platzierung von Widgets im Falle einer Linux-basierten Architektur. Siehe die Position der Ubuntu Unity-Widgets, KDE Plasma-Widgets und Desktop-Widgets auf der obersten Ebene.

Eine Widget-Engine ist die Software-Plattform, auf der Desktop- oder Web-Widgets ausgeführt werden. Das Widget-Modell in Widget-Engines ist attraktiv, weil es einfach zu entwickeln ist. Die meisten dieser Widgets können mit ein paar Bildern und etwa 10 bis mehreren hundert Zeilen XML/JavaScript/VBScript-Quellcode erstellt werden. Ein einziges Host-Software-System, z. B. ein Webbrowser, führt alle geladenen Widgets aus. So können mehrere Desktop-Widgets erstellt werden, die sich Ressourcen und Code teilen.

Widget-Engines sind nicht mit Widget-Toolkits zu verwechseln. Toolkits werden von GUI-Programmierern verwendet, die mehrere Widgets (wiederverwendbare Komponenten) zu einer einzigen Anwendung kombinieren. Ein Widget in einem Toolkit bietet eine einzige Interaktion auf niedriger Ebene und ist darauf vorbereitet, mit anderen Widgets im Toolkit zu kommunizieren. Andererseits sind Widget-Engines wie Desktop-Widgets und Web-Widgets für den Endbenutzer bestimmt. Desktop- und Web-Widgets sind eigenständige, aufgabenorientierte Anwendungen, die sich aus mehreren zusammenhängenden Interaktionen zusammensetzen können.

Arten

GUI-Widgets

Ein grafisches Steuerelement (oft als GUI-Widget bezeichnet) stellt einen Teil einer grafischen Benutzeroberfläche (GUI) dar, mit dem der Benutzer mit dem Programm interagieren kann, zu dem die GUI gehört. Grafische Steuerelemente werden wie Unterprogramme implementiert. Widget-Toolkits und Software-Frameworks, wie z.B. GTK+ oder Qt, enthalten sie in Software-Bibliotheken, so dass Programmierer sie verwenden können, um GUIs für ihre Programme zu erstellen.

Programme zur Erstellung von grafischen Benutzeroberflächen, wie z. B. Glade Interface Designer, erleichtern die Erstellung von GUIs.

Desktop-Widgets

Widget-Engines sind grundsätzlich Software-Module. Sie stellen die Voraussetzung für die Nutzung von Widgets dar und geben die Schnittstellen für deren Einbindung. Widgetumgebungen können heute sehr vielfältig sein. Verfügbare Widget-Engines für Desktop-Umgebungen sind:

Name Hersteller Beschreibung Technische Informationen
adesklets Sylvain Fourmanoit eine leichtgewichtige Engine für X11 0.6.1 (Eingestellt)
unixoide
GPL
AveDesk Andreas Verhoeven eine kostenlose Widget-Engine für Windows 1.4
Windows
Donationware
Dashboard Apple Inc. die in Mac OS X integrierte Widget-Engine 1.7
macOS
Proprietär
DesktopX Stardock Corporation eine bekannte Engine der Firma Stardock 1.7
Windows
Shareware
gDesklets Martin Grimme und Christian Meyer erste funktionsfähige Engine für Gnome 0.36.3
unixoide
GPL
Google Desktop Gadgets Google Inc. Widgets (dort als Gadgets bezeichnet) können unter Windows, Mac OS X und Linux auf den Desktop gebracht werden. 5.9.X
GNU/Linux, Mac OS X, Windows
Proprietär
Google Gadgets for Linux Google Inc. Enthält, anders als Google Desktop, nur eine freie Widget-Engine. 0.11.2
GNU/Linux
Apache-Lizenz
Microsoft Gadget Microsoft Corporation Können als Minianwendungen ab Windows Vista in die Windows Sidebar integriert werden. Das Konzept wurde durch Einführung von Apps und einen kachelbasierten Startbildschirm in Windows 8 verworfen. ?
Windows
Proprietär
Opera Widgets Opera Software ASA Der Webbrowser stellt ab der Version 9 eine eigene Widget-Engine zur Verfügung. 10.50
GNU/Linux, Mac OS X, Windows, uvm.
Proprietär
Plasmoids Das KDE-Projekt Die Standard Widget-Engine für KDE kann neben den nativen Widgets (genannt Plasmoids) auch eine Vielzahl anderer Widgets verschiedener Widget-Engines darstellen. 4.4.X
unixoide
GPL
Screenlets Rico Pfaus (RYX), Helder Fraga (Whise), Natan Yellin (Aantn) eine Dashbord-ähnliche Engine für GNOME 0.1.2
unixoide
GPL
Serious Samurize Adam Coulthard & Lee Wilson ein System-Beobachtungs-Programm 1.64.3
Windows
teilweise frei
SuperKaramba Das KDE-Projekt die erste offizielle Widget-Engine des KDE-Projektes, derzeit in Form eines Plasmoids für Plasma in KDE4 unterstützt 4.4.X
unixoxide
GPL
Yahoo! Widgets Yahoo/ als Konfabulator von Arlo Rose und Ed Voas entwickelt. Früher Konfabulator – wurde ursprünglich für Mac OS X entwickelt und danach auf Windows portiert. 4.5 (Eingestellt)
Mac OS X, Windows
GPL

Mittels DHTML, Ajax, Adobe Flash, Silverlight oder Java-Applets können derartige Anwendungen auch in Webseiten eingebunden werden. Verschiedene Anbieter bieten Plattformen zur Zusammenstellung von personalisierten Widgets an, etwa Netvibes, Googles personalisierbare Startseite iGoogle, pageflakes, ContentSieve, allyve, Sportbrett oder Facebook.

Das Wikipedia-Widget, in Dashboard unter Mac OS X v10.4
Frühe Entwicklerversion von Plasma Desktop mit Plasmoids

Widget-Standardentwurf

Am 9. November 2006 veröffentlichte die Web Application Formats Working Group des W3C den ersten öffentlichen Arbeitsentwurf von Widgets 1.0. Ziel ist es, einige Aspekte von Widgets zu standardisieren. Der Opera-Browser ist die erste clientseitige Widget-Engine, die diesen W3C-Standardentwurf übernommen hat. Apache Wookie (Incubating) ist die erste serverseitige Widget-Engine, die diesen W3C-Standard übernommen hat. Wookie ist ein Server, der Widget-Instanzen verwaltet und es ermöglicht, sie in Webanwendungen einzubetten und sie für Client-Geräte wie Opera bereitzustellen.

Mobile Widgets

Die meisten mobilen Widgets sind wie Desktop-Widgets, aber für ein Mobiltelefon. Mobile Widgets können die Bildschirmfläche optimal ausnutzen und sind besonders nützlich, wenn es darum geht, datenintensive Anwendungen auf dem Idle-Screen/Home-Screen/"Phone-Top" des Geräts anzuzeigen. Es gibt mehrere Java ME-basierte mobile Widget-Engines, aber das Fehlen standardbasierter APIs für Java zur Steuerung des Home-Bildschirms von Mobilgeräten erschwert es diesen Engines, Widgets auf dem Phone-Top zu platzieren.

Mehrere AJAX-basierte native Widget-Plattformen sind ebenfalls für mobile Geräte verfügbar.

Die zunehmende Verbreitung von mobilen Widgets ist leicht zu verstehen. Während Widgets in der Online-Welt eine Annehmlichkeit darstellen, können sie in der mobilen Welt als nahezu unverzichtbar betrachtet werden. Der Grund: Das mobile Gerät ist klein, und die Schnittstelle ist oft eine Herausforderung. Sich in einer mobilen Umgebung durch große Informationsmengen zu wühlen, ist nicht nur lästig, sondern nahezu unmöglich.

Von allen mobilen Betriebssystemen unterstützt ausgerechnet Android seit dem 30. April 2009 mobile Widgets von Haus aus.

Zu den beliebtesten Widgets des Android-Betriebssystems gehören DashClock, Google Keep und HD Widgets.

Auch das iOS-Betriebssystem unterstützt mobile Widgets.

Web-Widgets

Webbrowser können auch als Widget-Engine-Infrastrukturen verwendet werden. Das Web ist eine Umgebung, die sich gut für die Verbreitung von Widgets eignet, da keine explizite Interaktion des Benutzers erforderlich ist, um neue Codeschnipsel zu installieren.

Web-Widgets haben aufgrund ihres wahrgenommenen Potenzials als Marketingkanal ein gewisses kommerzielles Interesse geweckt, vor allem weil sie Interaktivität und virale Verbreitung über soziale Netzwerke bieten. Das erste bekannte Web-Widget, Trivia Blitz, wurde 1997 eingeführt. Es handelte sich um ein Spiele-Applet, das von Uproar.com (dem führenden Unternehmen für Online-Spiele in den Jahren 2000 und 2001) angeboten wurde und auf mehr als 35.000 Websites - von GeoCities Personal Pages bis hin zu CNN und Tower Records - erschien. Als Uproar.com im Jahr 2001 von Vivendi Universal übernommen wurde, wurde das Widget eingestellt.

Widgets für Fernsehgeräte

Widgets sind auch für Fernsehgeräte erhältlich. Yahoo! Widget Engine ist als Bestandteil der nächsten Generation von Fernsehgeräten angekündigt.

Informationsfluss von Desktop-Widgets

Ein Desktop-Widget ist eine Anwendung mit geringem Platzbedarf, die sich auf dem Desktop des Benutzers befindet und nur wenig Desktopfläche und Computerressourcen wie Festplatte und Arbeitsspeicher benötigt. Ihr Zweck ist es, dem Benutzer auf nicht aufdringliche Weise und unter Verwendung weniger Ressourcen relevante Informationen zu liefern. Grundsätzlich ermöglichen Desktop-Widgets dem Benutzer, bei Bedarf gekapselte Informationen aus vorgegebenen Datenquellen anzuzeigen. Im Idealfall muss ein Desktop-Widget personalisierte Inhalte präsentieren, die auf den Präferenzen des Benutzers basieren. Es soll die wichtigsten Informationen liefern, die ein Benutzer täglich benötigt. Die meisten Desktop-Widgets sind als kostenlose Downloads auf den Websites der Entwickler erhältlich.