A widget is a component of a graphical windowing system. On the one hand, the widget consists of the window, a visible area that receives mouse, touch screen and / or keyboard events, and the invisible object, which stores the state of the component and can change the visible area using certain drawing operations. Widgets are always embedded in a specific windowing system and use it to interact with the user or other widgets of the windowing system.
Although applets are also embedded in an environment, unlike the widget, they do not necessarily use the services and windows provided by the windowing system. Applets are usually integrated into the host system via a relatively crude plug-in interface compared to the interface of the window system and usually have their own window and event management.
Widgets and some applets can not be run as stand-alone application programs within an operating system. You need an environment that provides basic functions and resources through a programming interface, limiting your options. Programs for operating widgets are called widget engines.
A software widget is a generic type of software application comprising portable code intended for one or more different software platforms. The term often implies that either the application, user interface, or both, are light, meaning relatively simple and easy to use, as exemplified by a desk accessory or applet, as opposed to a more complete software package such as a spreadsheet or word processor.
Types of widgets
- GUI widgets
- Desktop widgets
- Mobile widgets
- Web widgets
- TV set widgets
Because the term, and the coding practice, has been extant since at least the 1980s, it has been applied in a number of contexts.
A GUI widget is part of a graphical user interface (GUI) that allows a computer user to control and change the appearance of elements for operating a software application. In this context a widget may refer to a generic GUI element such as a check box, to an instance of that element, or to a customized collection of such elements used for a specific function or application (such as a dialog box for users to customize their computer screen appearances)
Disclosure widgets are specific types of widgets that may be hidden or expanded by computer users.
A desktop widget is a specialized GUI widget intended to run on a computer desktop for computer users to control simple utility functions such as clocks, messaging services and calendars. A mobile widget is the comparable equivalent for mobile devices (i.e. smart phones).
A metawidget is a widget for controlling the operation of other widgets within a GUI.
A web widget is a portable application installed and executed, typically by non-expert webmasters on HTML-based web pages, to offer site visitors shopping, advertisements, videos, or other simple functionality from third party widget publishers.
A "widget application" is a third party application developed for an online social network platform, with the user interface or the entire application hosted by the network service. Social network companies such as Facebook and Myspace host these applications and provide them underlying platform services (such as display and storage of user-provided photos and other content, profile information about end users and communications features with other users) through special-purpose application programming interfaces. The term is used fairly loosely, in that many such applications are more complex internally and in operation than the simple applets that are called "widgets" in other contexts. The relationship between platform and developer is mutually beneficial, with the social network offering hardware and software infrastructure, and access to the social network's end user base, and with application publishers ranging from amateur developers to organized companies such as RockYou! and slide.com providing content and features that make the social network services more useful for their members. At present, there is no fee or payment between developers and social network platforms, and attempts to realize revenue from widgets (primarily advertising by the widget applications and sale of electronic commerce goods and services within the widgets) have been relatively unsuccessful.
A Widget toolkit is a set of Computer programming tools that help Software developer design elements of a user interface.
The term widget engine is not to be confused with that of a widget toolkit. Toolkits are used by GUI programmers, who combine several widgets to form a single application. A widget in a toolkit provides a single, low level interaction, and is prepared to communicate with other widgets in the toolkit. On the other hand, widget engines such as desktop widgets and web widgets are intended for end users. Desktop and web widgets are stand-alone, task-oriented applications which can be composed of several related interactions on its own. Each widget serves only a purpose that is usually addressed by the effort of one GUI widget in a full-scale application.
Available widget engines for desktop environments are:
- adesklets from Sylvain Fourmanoit
- AveDesk from Andreas Verhoeven
- Dashboard from Apple Inc.
- DesktopX from Stardock Corporation
- gDesklets from Martin Grimme und Christian Meyer
- Google Desktop Gadgets from Google Inc.
- Google Gadgets for Linux from Google Inc.
- Microsoft Gadget from Microsoft Corporation
- Opera Widgets from Opera Software ASA
- Plasmoids from The KDE-Project
- Screenlets from Rico Pfaus (RYX), Helder Fraga (Whise), Natan Yellin (Aantn)
- Serious Samurize from Adam Coulthard & Lee Wilson
- SuperKaramba from The KDE-Project
- Yahoo! Widgets from Yahoo/ developed as a confabulator by Arlo Rose and Ed Voas.
A graphical control element (often called GUI widget) represents a part of a graphical user interface (GUI) which the user can use to interact with the program to which the GUI belongs to. Graphical control elements are implemented like subroutines. Widget toolkits and software frameworks, like e.g. GTK+ or Qt, contain them in software libraries so that programmers can use them to build GUIs for their programs.
Graphical user interface builders, such as e.g. Glade Interface Designer, facilitate the authoring of GUIs.
Well-known GUI toolkits
Well-known GUI toolkits include:
- GTK+ (in Java z. B. via SWT)
- Swing (in Java)
- FireMonkey (FMX, in Delphi)
- Lazarus Component Library (in Free Pascal)
- Microsoft Foundation Classes (MFC)
- Visual Component Library (VCL, in Delphi)
- Win32 (WinAPI)
- Windows Presentation Foundation (WPF)
- Windows Forms (.NET)
Desktop widgets (commonly just called widgets) are interactive virtual tools that provide single-purpose services such as showing the user the latest news, the current weather, the time, a calendar, a dictionary, a map program, a calculator, desktop notes, photo viewers, or even a language translator, among other things.
Examples of widget engines include:
- Dashboard (Mac OS) widgets of Apple Macintosh
- Microsoft gadgets in Windows Vista, Windows 7, and in the Windows Live system
- Plasmoids are widgets in Plasma, the workspace for the KDE desktop environment.
- Portlets in Google Desktop
- Yahoo! Widgets
- gdesklets, adesklets, and Screenlets in Linux
- Opera Widgets on all platforms (desktop, mobile TVs, gaming consoles) using the Opera browser's rendering engine.
- Homescreen widgets in Maemo
- Homescreen widgets in Android
Originally, desk accessories were developed to provide a small degree of multitasking, but when real multitasking OSes became available, these were replaced by normal applications.
Blidgets are desktop widgets that connect the user to a blog.
Widget draft standard
On 9 November 2006, the Web Application Formats Working Group in World Wide Web Consortium (W3C) released the first public working draft of Widgets 1.0. The intention is to standardise some aspects of widgets. The Opera browser is the first client side widget engine to adopt this draft W3C standard. Apache Wookie (Incubating) is the first server side widget engine to adopt this W3C standard. Wookie is a server that manages widget instances and allows them to be embedded in web applications in addition to being provided for client devices such as Opera.
Most mobile widgets are like desktop widgets, but for a mobile phone. Mobile widgets can maximize screen space use and may be especially useful in placing live data-rich applications on the device idle-screen/home-screen/"phone-top". Several Java ME-based mobile widget engines exist, but the lack of standards-based APIs for Java to control the mobile device home-screen makes it harder for these engines to expose widgets on the phone-top.
Several Ajax (programming) -based native widget platforms are also available for mobile devices.
The growing pervasiveness of mobile widgets is easily understood. While widgets are a convenience in the online world, they can be looked at as near-essential in the mobile world. The reason: the mobile device is small and the interface is often challenging. Wading through large amounts of information in a mobile environment is not just a nuisance; it is a near impossibility.
One of the biggest challenges of widget development is writing multiple sets of computer code so that a widget will be compatible with multiple operating systems and types of devices.
Companies considering new mobile widgets should evaluate and then deploy applications according to four criteria: the business model, distribution model, server-side application framework and the run-time environment.
Many solutions are growing for mobile widgets. Among them the BONDI initiative within OMTP is trying to defragment these solution allowing the same widget to be run on different mobile phones allowing secure access to mobile phone capabilities.
Android, of all mobile operating systems, has supported mobile widgets natively since April 30, 2009.
Widgets on smartphones
Widgets are widely used on mobile devices such as PDAs and smartphones.
Mobile devices based on the Android operating system support widgets on the home screen (launcher) and on Android 4.2 through 4.4 also on the login screen in the form of so-called lock screen notification widgets. Widgets usually represent a part of an application (app), which serves to display important information or enables the quick start of functions of the app.
Microsoft is following a similar approach with the Windows Phone introduced live tiles. These represent information in a colored tile grid and update themselves at a defined interval. The concept was also adopted for the operating system Windows 8 for classic workstations and replaces the previously supported widgets and the start menu of the Windows operating system.
Apple also offers since version 8 widgets. They share the space with existing notifications in the iOS drop-down hub.
Most manufacturers provide documentation for creating their own, mostly proprietary widgets.
Web browsers can also be used as widget engine infrastructures. The web is an environment well suited to distribution of widgets, as it doesn't require explicit interaction from the user to install new code snippets.
Web widgets have unleashed some commercial interest, due their perceived potential as a marketing channel, mainly because they provide interactivity and viral distribution through social networks.
The first known web widget, Trivia Blitz, was introduced in 1997. It was a game applet offered by Uproar.com (the leading online game company from 2000 - 2001) that appeared on over 35,000 websites ranging from Geocities personal pages to CNN and Tower Records. When Uproar.com was acquired by Vivendi Universal in 2001, the widget was discontinued.
TV set widgets
Widgets are also available for TV's. Yahoo! Widget Engine is announced as a component of the next generation TV sets.
Information flow of desktop widgets.
A desktop widget is a small footprint application, which resides on the user’s desktop using little desktop space and computer resources, such as HDD and RAM. Its purpose is to provide relevant information to the user in a non-intrusive manner and using few resources. Basically, desktop widgets enable the user to view on demand, encapsulated information from predetermined data sources. Ideally, a desktop widget must present personalized content, based on the user’s preferences. It is supposed to provide the most important information that a user requires on a day to day basis. Most of the desktop widgets are available as free downloads from the vendors’ Web sites.
Please complete contact form