Software widget

Last updated

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

Contents

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. [1]

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. [2]

Desktop widgets

The Wikipedia Widget, in Dashboard running under Mac OS X v10.4 Wikiwidget.png
The Wikipedia Widget, in Dashboard running under Mac OS X v10.4
Early developer version of Plasma Desktop with Plasmoids Kdebeta2 plasma.png
Early developer version of Plasma Desktop with Plasmoids

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:

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. [3]

The iOS operating system also supports mobile widgets. Alongside, HarmonyOS that supports widgets in what it's called 'Service Cards', that also includes installation-free apps and 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.[ citation needed ] 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. [5] [6] [7] 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. [8] 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. [9] 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

Example of placement of widgets in case of a Linux-based architecture. See the location of Ubuntu Unity widgets, KDE Plasma widgets and Desktop widgets at the top layer. Free and open-source-software display servers and UI toolkits.svg
Example of placement of widgets in case of a Linux-based architecture. See the location of Ubuntu Unity widgets, KDE Plasma widgets and Desktop widgets at the top layer.

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.

See also

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">Qt (software)</span> Object-oriented framework for software development

Qt is cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.

In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell. The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

<span class="mw-page-title-main">Graphical widget</span> Element of interaction in a graphical user interface

A graphical widget in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, Qt, GTK, and Cocoa, contain a collection of controls and the logic to render these.

A Rich Internet Application is a web application that has many of the characteristics of desktop application software. The concept is closely related to a single-page application, and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. The concept was first introduced in 2002 by Macromedia to describe Macromedia Flash MX product. Throughout the 2000-s, the term was generalized to describe browser-based applications developed with other competing browser plugin technologies including Java applets, Microsoft Silverlight.

<span class="mw-page-title-main">Magic User Interface</span> Widget toolkit for AmigaOS

The Magic User Interface is an object-oriented system by Stefan Stuntz to generate and maintain graphical user interfaces. With the aid of a preferences program, the user of an application has the ability to customize the system according to personal taste.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

<span class="mw-page-title-main">Maemo</span> Mobile operating system by Nokia

Maemo is a software platform originally developed by Nokia, now developed by the community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and SDK. Maemo played a key role in Nokia's strategy to compete with Apple and Android, but ultimately failed to surpass both companies.Maemo is mostly based on open-source code and has been developed by Maemo Devices within Nokia in collaboration with many open-source projects such as the Linux kernel, Debian, and GNOME. Maemo is based on Debian and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager and the GTK-based Hildon framework as its GUI and application framework.

This is a comparison of widget engines. This article is not about widget toolkits that are used in computer programming to build graphical user interfaces.

A PIGUI package is a software library that a programmer uses to produce GUI code for multiple computer platforms. The package presents subroutines and/or objects which are independent of the GUIs that the programmer is targeting. For software to qualify as PIGUI it must support several GUIs under at least two different operating systems. The package does not necessarily provide any additional portability features. Native look and feel is a desirable feature, but is not essential for PIGUIs.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">Sidebar (computing)</span> User interface element on side of computer screen

The sidebar is a graphical control element that displays various forms of information to the right or left side of an application window or operating system desktop. Examples of the sidebar can be seen in the Opera web browser, Apache web OpenOffice, LibreOffice, SoftMaker Presentations and File Explorer; in each case, the app exposes various functionalities via the sidebar.

<span class="mw-page-title-main">Abstract Window Toolkit</span> Java-based GUI toolkit

The Abstract Window Toolkit (AWT) is Java's original platform-dependent windowing, graphics, and user-interface widget toolkit, preceding Swing. The AWT is part of the Java Foundation Classes (JFC) — the standard API for providing a graphical user interface (GUI) for a Java program. AWT is also the GUI toolkit for a number of Java ME profiles. For example, Connected Device Configuration profiles require Java runtimes on mobile telephones to support the Abstract Window Toolkit.

Flutter is an open-source UI software development kit created by Google. It can be used to develop cross platform applications from a single codebase for the web, Fuchsia, Android, iOS, Linux, macOS, and Windows. First described in 2015, Flutter was released in May 2017. Flutter is used internally by Google in apps such as Google Pay and Google Earth as well as by other software developers including ByteDance and Alibaba.

<span class="mw-page-title-main">Fyne (software)</span> Graphical toolkit for building cross platform GUIs

Fyne is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs) across desktop and mobile platforms. It is designed to enable developers to build applications that run on multiple desktop and mobile platforms/versions from a single code base. Fyne uses OpenGL to provide cross-platform graphics. It is inspired by the principles of Material Design to create applications that look and behave consistently across all platforms. It is licensed under the terms of the 3-clause BSD License, supporting the creation of free and proprietary applications. In December 2019 Fyne became the most popular GUI toolkit for Go, by GitHub star count and in early February 2020 it was trending as #1 project in GitHub trending ranks.

<span class="mw-page-title-main">Boxy SVG</span> Vector graphics editor

Boxy SVG is a vector graphics editor for creating illustrations, as well as logos, icons, and other elements of graphic design. It is primarily focused on editing drawings in the SVG file format. The program is available as both a web app and a desktop application for Windows, macOS, ChromeOS, and Linux-based operating systems.

References

  1. Ralph R. Swick, Mark S. Ackerman (1988). "The X Toolkit: More Bricks for Building User-Interfaces, or, Widgets for Hire". USENIX Winter. pp. 221–228. Archived from the original on 2007-09-27. Retrieved 2007-01-03.
  2. Blattner, Glinert, Jorge and Ormsby, 'Metawidgets: towards a theory of multimodal interface design'. Appears in Computer Software and Applications Conference, 1992. COMPSAC '92. Proceedings, Sixteenth Annual International ISBN   0-8186-3000-0.
  3. 1 2 Top 10 Best Android Widgets Ever Retrieved March 22, 2015.
  4. Teigene, Arnstein (24 April 2012). "Increased focus on Opera extensions and ending support for Unite applications and Widgets". Archived from the original on 26 April 2012. Retrieved 12 June 2014.
  5. Rampell, Catherine (2007-11-03). "Widgets Become Coins of the Social Realm". The Washington Post . p. D01. Retrieved 2008-05-07.
  6. Ustinova, Anastasia (2008-07-23). "Developers compete at Facebook conference". San Francisco Chronicle. Retrieved 2008-08-14.
  7. "Facebook Expands Power of Platform Across the Web and Around the World". Facebook. 2008-07-23. Retrieved 2008-08-14.
  8. "Widgets 1.0". World Wide Web Consortium.
  9. "Web Specifications Supported in Opera 9". Opera ASA.