A software widget is a relatively simple and easy-to-use software application or component made for one or more different software platforms.

A desk accessory or applet is an example of a simple, stand-alone user interface, in contrast with a more complex application such as a spreadsheet or word processor. These widgets are typical examples of transient and auxiliary applications that don't monopolize the user's attention.

On the other hand, graphical control elements (GUI "widgets") are examples of reusable modular components that are used together to build a more complex application, allowing programmers to build user interfaces by combining simple, smaller components.

Classification

Because the term, and the coding practice, has been extant since at least the 1980s, it has been applied in a number of contexts.

GUI widgets 

A graphical control element (GUI widget) is part of a graphical user interface (GUI) that allows a computer user to control 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). A widget toolkit is a set of programming tools that help developers reuse GUI widgets to build a user interface.

Graphical user interface builders, such as e.g. Glade Interface Designer, facilitate the authoring of GUIs.

Types of GUI widgets 
Disclosure widgets are specific types of GUI widgets that may be hidden or expanded by computer users.
A metawidget is a GUI widget for controlling the operation of other widgets within a GUI.

Desktop widgets 

Desktop widgets (commonly just called widgets) are interactive virtual tools for a desktop environment 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. Widgets can provide or augment the graphical shell.
Examples of widget engines include:
 Dashboard widgets of Apple Macintosh
 Microsoft gadgets in Windows Vista, Windows 7, and in the Windows Live system - No longer supported, use now discouraged by Microsoft.
 Various implementations for Linux, including Plasma widgets (available for KDE since version 4) and the widget engine used by GNOME Shell (available for GNOME since version 3). Both are active and under development. 
 Google Desktop running Google Gadgets - No longer supported, discontinued, some security issues re: data sharing.
 Yahoo! Widgets for Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, macOS - No longer supported by Yahoo. Still functioning on Windows; since OS X 10.11 El Capitan the Yahoo widget dock is non-functioning but the majority of widgets still operate as expected and are accessible instead from the menu.
 XWidgets - for Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10 and Android - Last updated in: 2 March 2015 (Windows).
 Kludgets - for Windows - Allows Mac dashboard widgets to operate on Windows. Open Source, not actively developed.
 Opera Widgets on all platforms (desktop, mobile TVs, gaming consoles) using the Opera browser's rendering engine. Opera Widgets were discontinued since the version 12 of the browser.
 Screenlets for Linux and other Unix-like operating systems - This engine runs on X11 and is under sporadic development
 Homescreen widgets in Maemo
 Homescreen widgets in Android
Originally, desk accessories were developed to provide a small degree of multitasking in operating systems that could only held one main application at a time, but when real multitasking OSes became available, these were replaced by normal applications.

Mobile widgets 
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 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-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.

Android has supported mobile widgets natively since Android 1.5 Cupcake, released on April 27, 2009.  Some of the most popular widgets on the Android operating system include DashClock, Google Keep and HD Widgets.

The iOS operating system also supports mobile widgets.

Web widgets 

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.

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.

Types of web widgets 

A "widget application" is a third party web widget developed for a social networking service, with the user interface or the entire application hosted by the network service. Social networking services 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.

Widget draft standard 
On 9 November 2006, the Web Application Formats Working Group in 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.

TV set widgets 
Widgets are also available for TVs.Yahoo! Widget Engine is announced as a component of the next generation TV sets.

Widget engine 

A widget engine is the software platform on which desktop or web widgets run. The widget model in widget engines is attractive because of ease of development. Most of these widgets can be created with a few images and about 10 to several hundred lines of XML/JavaScript/VBScript source code. A single host software system, such as a web browser, runs all the loaded widgets. This allows several desktop widgets to be built sharing resources and code.

Widget engines are not to be confused with widget toolkits. Toolkits are used by GUI programmers, who combine several widgets (reusable components) 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.

References

See also
Wikipedia Widget - a widget for displaying Wikipedia articles
 Android (operating system)
 Chumby
 Desk Accessory
 GUI widget
 Widget toolkit

Graphical user interfaces
Graphical control elements
소프트웨어 위젯(software widget)은 하나 이상의 각기 다른 소프트웨어 플랫폼용으로 개발된, 상대적으로 단순하고 사용하기 쉬운 응용 소프트웨어나 구성 요소이다.

데스크 액세서리나 애플릿은 단순하면서도 독립된 사용자 인터페이스의 한 예이다. 이는 스프레드시트나 워드 프로세서와 같은 더 복잡한 애플리케이션과는 대조되는 것이다. 이 위젯들은 사용자의 집중을 독점하지 않는 보조 애플리케이션의 전형적인 예시이다. 한편, 그래픽 컨트롤 요소(GUI "위젯")은 재사용 가능한 모듈식 구성 요소의 예시이며, 더 복잡한 애플리케이션을 개발하기 위해 함께 사용되며 이를 통해 프로그래머들은 단순하면서도 더 작은 구성 요소들을 병합함으로써 사용자 인터페이스를 개발할 수 있게 된다.

대표적으로 macOS의 대시보드, 야후 위젯, 미니플, 네이버 데스크톱, 구글 데스크톱이 있다. 데스크톱 위젯(desktop widget)이라고도 불린다.

아주 옛날에는 데스크톱 액서서리라는 것들이 있어서, 약간의 멀티태스킹 기능을 제공해 주었다. 진정한 멀티태스킹 OS의 시대가 오자, 데스크톱 액서서리들은 보통의 응용 프로그램들로 대체되었다. 요즘 들어 "위젯 모델"이 다시 각광받고 있는데, 이는 위젯 모델이 개발 측면에 있어서 개발이 용이한 모델이기 때문이다. 단순한 위젯들은, 경우에 따라 차이는 있지만, 몇 개의 그림 파일들, 몇 백 줄 이내의 XML/자바스크립트/VB스크립트 코드만으로도 작성될 수 있다.

위젯 엔진 
위젯 엔진()은 데스크톱이나 웹 위젯이 실행되는 소프트웨어 플랫폼이다. 위젯 엔진의 위젯 모델은 개발의 용이성 때문에 매력적이다. 이 위젯들 중 대부분은 대략 10줄~수백 줄의 XML/자바스크립트/VB스크립트 소스 코드와 몇 개의 이미지로 개발이 가능하다. 웹 브라우저와 같은 단순 호스트 소프트웨어 시스템은 로드되는 위젯을 모두 실행시킨다. 이를 통해 여러 데스크톱 위젯들이 자원과 코드를 공유하도록 개발될 수 있다.

위젯 엔진은 위젯 툴킷과는 구별된다. 툴킷은 GUI 프로그래머들이 사용하는 것으로, 여러 위젯이 하나의 애플리케이션을 구성하도록 만들어준다.

데스크톱 위젯 

데스크톱 위젯으로서는 야후! 위젯이나 애플 매킨토시 컴퓨터의 대시보드가 대표적이다.

클립폴리오라는 소프트웨어에서는 위젯을 가리켜 클립이라고 부른다. 마이크로소프트는 데스크톱 위젯을 가리켜 개짓이라고 부른다. 특히 윈도우 비스타와 윈도우 라이브 시스템에서 말이다. 구글 데스크톱에서는 위젯을 가리켜 패널(panel) 혹은 개짓(gadget)이라고 부른다.

데스크톱 위젯은 보통 자주 사용되는 기능을 쉽게 접근하여 쓸 수 있게 해 준다. 또한 데스크톱 위젯은 어떤 시각적 정보를 전달해주기도 한다. 위젯의 초창기 형태는 맥 OS의 데스크 액서서리였다. (하지만 데스크 액서서리는 인터넷에 접근 불가하였다.) 마이크로소프트가 개발한 액티브 데스크톱 시스템은 최초의 인터넷 접속 가능한 데스크톱 오브젝트(object)라고 알려져 있다.   ( IE4 데스크톱 갤러리 참조). 보통 위젯들은 뉴스 애그리게이터, 시계, 계산기, 달력, 데스크톱 노트, 날씨 정보 등을 각각 내용으로 한다. 이와 같은 조그마한 응용 프로그램들은 80년대 사람들이 개발하던 조그마한 프리웨어 응용 프로그램들과 비슷하였다.

2006년 11월 9일,  월드 와이드 웹 콘서시엄 내의 웹 애플리케이션 형식 워킹 그룹()은 Widgets 1.0이라는 첫 번째 공개 W3C 권고안을 내 놓았다. 이렇듯 위젯에 대한 표준화 움직임이 일어나고 있다.

주요 위젯 엔진

데스크톱 엔진 
 대시보드는 맥 OS X 10.4과 함께 배포되는 위젯 엔진이다.
 데스크 액서서리는 맥 OS의 옛날 버전에서 제공되던 위젯 비슷한 기능을 제공하던 소프트웨어이다.
 구글 데스크톱은 데스크톱 상의 파일을 검색하는 기능 뿐만 아니라 개짓(구글 데스크톱 위젯을 이렇게 일컫는다.)을 띄우는 기능을 제공해주는 무료 소프트웨어이다.
 캡슐즈는 마이크로소프트 윈도우 상에서 동작하기 위해 개발되고 있는 위젯 엔진(프로젝트)이다. OS X의 대시보드의 기능들을 가져오려고 노력하고 있다. 여러 스크립팅 언어와 호환된다.
 클립폴리오는 소규모의 무료 데스크톱 사이드바/대시보드 응용 프로그램이다. 마이크로소프트 윈도 상에서 동작한다. 개발자들이 작성해 올린 클립들을 사용할 수 있다.
 오페라 브라우저는 위젯을 지원한다. 위젯 라이브러리를 검색해보면 사용자가 작성해 놓은 위젯을 다운로드 받아 볼 수 있게 해 놓았다.
 야후! 위젯 엔진 (예전이름은 콘파불레이터)은 야후의 위젯 엔진이다. 데스크톱 상 혹은 스플래쉬 스크린 상에 위젯이 직접 표시될 수 있게 해 준다. OS X의 것과 닮아 있다.
 마이크로소프트 가젯은 날씨 정보 제공, 인스턴트 메시징, 주유소 기름값 정보 제공 등의 기능을 갖춘 데스크톱 툴이다. 윈도우 사이드바 문서도 참고하라.
 뉴스게이터 "뉴스게이터 위젯 프레임워크"를 제공해주고 있다. 광고에 기반한 위젯을 생성하고 제공할 수 있게 해주는 플랫폼이다.
 키젯 핸드폰 단축번호 기능을 키보드에 구현하는 애플리케이션으로, 평소에는 보이지 않다가 특정키를 0.5초간 눌렀을 때 검색창,지도,사전,각종웹사이트가 원터치로 실행되는 것이 특징이다. 키 각각의 대응기능은 다음과 같다. N=Naver G=Google D=Daum E=Empas M=Maps ...

모바일 위젯 
모바일 위젯은 휴대전화 등 휴대 기기를 위한 데스크톱 위젯이다.

 
그래픽 사용자 인터페이스