Misplaced Pages

Application framework

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computer programming , an application framework consists of a software framework used by software developers to implement the standard structure of application software .

#171828

51-448: Application frameworks became popular with the rise of graphical user interfaces (GUIs), since these tended to promote a standard structure for applications. Programmers find it much simpler to create automatic GUI creation tools when using a standard framework, since this defines the underlying code structure of the application in advance. Developers usually use object-oriented programming (OOP) techniques to implement frameworks such that

102-474: A GUI and some level of a CLI, although the GUIs usually receive more attention. GUI wrappers find a way around the command-line interface versions (CLI) of (typically) Linux and Unix-like software applications and their text-based UIs or typed command labels. While command-line or text-based applications allow users to run a program non-interactively, GUI wrappers atop them avoid the steep learning curve of

153-410: A combination of technologies and devices to provide a platform that users can interact with, for the tasks of gathering and producing information. A series of elements conforming a visual language have evolved to represent information stored in computers. This makes it easier for people with few computer skills to work with and use computer software. The most common combination of such elements in GUIs

204-643: A different approach to an application framework, based on the OpenStep framework developed at NeXT . Since the 2010s, many apps have been created with the frameworks based on Google 's Chromium project. The two prominent ones are Electron and the Chromium Embedded Framework . Free and open-source software frameworks exist as part of the Mozilla , LibreOffice , GNOME , KDE , NetBeans , and Eclipse projects. Microsoft markets

255-809: A framework for developing Windows applications in C++ called the Microsoft Foundation Class Library , and a similar framework for developing applications with Visual Basic or C# , named .NET Framework . Several frameworks can build cross-platform applications for Linux , Macintosh, and Windows from common source code , such as Qt , wxWidgets , Juce , Fox toolkit , or Eclipse Rich Client Platform (RCP). Oracle Application Development Framework (Oracle ADF) aids in producing Java -oriented systems. Silicon Laboratories offers an embedded application framework for developing wireless applications on its series of wireless chips. MARTHA

306-508: A grid of items with rows of text extending sideways from the icon. Multi-row and multi-column layouts commonly found on the web are "shelf" and "waterfall". The former is found on image search engines , where images appear with a fixed height but variable length, and is typically implemented with the CSS property and parameter display: inline-block; . A waterfall layout found on Imgur and TweetDeck with fixed width but variable height per item

357-506: A program was busy. Additionally, it was the first GUI to introduce something resembling Virtual Desktops . Windows 95 , accompanied by an extensive marketing campaign, was a major success in the marketplace at launch and shortly became the most popular desktop operating system. In 2007, with the iPhone and later in 2010 with the introduction of the iPad , Apple popularized the post-WIMP style of interaction for multi-touch screens, and those devices were considered to be milestones in

408-474: A retail store, airline self-ticket and check-in, information kiosks in a public space, like a train station or a museum, and monitors or control screens in an embedded industrial application which employ a real-time operating system (RTOS). Cell phones and handheld game systems also employ application specific touchscreen GUIs. Newer automobiles use GUIs in their navigation systems and multimedia centers, or navigation multimedia center combinations. A GUI uses

459-414: A short sequence of words and symbols. Custom functions may be used to facilitate access to frequent actions. Command-line interfaces are more lightweight , as they only recall information necessary for a task; for example, no preview thumbnails or graphical rendering of web pages. This allows greater efficiency and productivity once many commands are learned. But reaching this level takes some time because

510-428: A system or moved about to different places during redesigns. Also, icons and dialog boxes are usually harder for users to script. WIMPs extensively use modes , as the meaning of all keys and clicks on specific positions on the screen are redefined all the time. Command-line interfaces use modes only in limited forms, such as for current directory and environment variables . Most modern operating systems provide both

561-413: A transformation (translation and rotation), but it is sometimes positioned and directed simply with its endpoint positions. This is because it may be more intuitive to define the location of the light source and then define the light's target, rather than rotating it around the coordinate axes to point it at a known position. Other widgets may be unique for a particular tool, such as edge controls to change

SECTION 10

#1732781066172

612-448: A window by dragging it with the mouse. In early systems, redrawing the window while dragging was not feasible due to computational limitations. Instead, a rectangular outline of the window was drawn while dragging. The complete window contents were redrawn once the user released the mouse button. Because of the difficulty of visualizing and manipulating various aspects of computer graphics, including geometry creation and editing, animation,

663-598: Is a proprietary software Java framework that all of the RealObjects software is built on. Graphical user interface A graphical user interface , or GUI ( / ˈ ɡ uː i / GOO -ee ), 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

714-674: Is a related technology that promises to deliver the representation benefits of 3D environments without their usability drawbacks of orientation problems and hidden objects. In 2006, Hillcrest Labs introduced the first ZUI for television. Other innovations include the menus on the PlayStation 2 , the menus on the Xbox , Sun's Project Looking Glass , Metisse , which was similar to Project Looking Glass, BumpTop , where users can manipulate documents and windows with realistic movement and physics as if they were physical documents, Croquet OS , which

765-461: Is an approach to interfaces which involves continuous representation of objects of interest together with rapid, reversible, and incremental actions and feedback. As opposed to other interaction styles, for example, the command language , the intention of direct manipulation is to allow a user to manipulate objects presented to them, using actions that correspond at least loosely to manipulation of physical objects . An example of direct manipulation

816-454: Is built for collaboration, and compositing window managers such as Enlightenment and Compiz . Augmented reality and virtual reality also make use of 3D GUI elements. 3D GUIs have appeared in science fiction literature and films , even before certain technologies were feasible or in common use. Direct manipulation interface In computer science , human–computer interaction , and interaction design , direct manipulation

867-417: Is especially common with applications designed for Unix-like operating systems. The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons. Designing programs this way also allows users to run the program in a shell script . Many environments and games use

918-669: Is represented by rotating a cube with faces representing each user's workspace, and window management is represented via a Rolodex -style flipping mechanism in Windows Vista (see Windows Flip 3D ). In both cases, the operating system transforms windows on-the-fly while continuing to update the content of those windows. The GUI is usually WIMP-based, although occasionally other metaphors surface, such as those used in Microsoft Bob , 3dwm, File System Navigator, File System Visualizer , 3D Mailbox, and GopherVR . Zooming (ZUI)

969-403: Is resizing a graphical shape , such as a rectangle, by dragging its corners or edges with a mouse . Having real-world metaphors for objects and actions can make it easier for a user to learn and use an interface (some might say that the interface is more natural or intuitive), and rapid, incremental feedback allows a user to make fewer errors and complete tasks in less time, because they can see

1020-403: Is still an active area of invention and innovation. The process of generating CG images is not considered to be intuitive or easy in comparison to the difficulty of what the user wants to do, especially for complex and less common tasks. The user interface for word processing, for example, is commonly used. It is easy to learn for new users and is sufficient for most word processing purposes, so it

1071-440: Is the windows, icons, text fields, canvases, menus, pointer ( WIMP ) paradigm, especially in personal computers . The WIMP style of interaction uses a virtual input device to represent the position of a pointing device's interface , most often a mouse , and presents information organized in windows and represented with icons . Available commands are compiled together in menus, and actions are performed making gestures with

SECTION 20

#1732781066172

1122-555: Is usually implemented by specifying column-width: . Smaller app mobile devices such as personal digital assistants (PDAs) and smartphones typically use the WIMP elements with different unifying metaphors, due to constraints in space and available input devices. Applications for which WIMP is not well suited may use newer interaction techniques , collectively termed post-WIMP UIs. As of 2011, some touchscreen-based operating systems such as Apple's iOS ( iPhone ) and Android use

1173-709: The Xerox Star . These early systems spurred many other GUI efforts, including Lisp machines by Symbolics and other manufacturers, the Apple Lisa (which presented the concept of menu bar and window controls ) in 1983, the Apple Macintosh 128K in 1984, and the Atari ST with Digital Research 's GEM , and Commodore Amiga in 1985. Visi On was released in 1983 for the IBM PC compatible computers, but

1224-501: The cursor (or rather pointer ) control: mouse , pointing stick , touchpad , trackball , joystick , virtual keyboards , and head-up displays (translucent information devices at the eye level). There are also actions performed by programs that affect the GUI. For example, there are components like inotify or D-Bus to facilitate communication between computer programs. Ivan Sutherland developed Sketchpad in 1963, widely held as

1275-627: The 1970s, Engelbart's ideas were further refined and extended to graphics by researchers at Xerox PARC and specifically Alan Kay , who went beyond text-based hyperlinks and used a GUI as the main interface for the Smalltalk programming language , which ran on the Xerox Alto computer , released in 1973. Most modern general-purpose GUIs are derived from this system. The Xerox PARC GUI consisted of graphical elements such as windows , menus , radio buttons , and check boxes . The concept of icons

1326-513: The GUIs advantages, many reviewers questioned the value of the entire concept, citing hardware limits, and problems in finding compatible software. In 1984, Apple released a television commercial which introduced the Apple Macintosh during the telecast of Super Bowl XVIII by CBS , with allusions to George Orwell 's noted novel Nineteen Eighty-Four . The goal of the commercial was to make people think about computers, identifying

1377-401: The class of GUIs named post-WIMP. These support styles of interaction using more than one finger in contact with a display, which allows actions such as pinching and rotating, which are unsupported by one pointer and mouse. Human interface devices , for the efficient interaction with a GUI include a computer keyboard , especially used together with keyboard shortcuts , pointing devices for

1428-457: The command words may not be easily discoverable or mnemonic . Also, using the command line can become slow and error-prone when users must enter long commands comprising many parameters or several different filenames at once. However, windows, icons, menus, pointer ( WIMP ) interfaces present users with many widgets that represent and can trigger some of the system's available commands. GUIs can be made quite hard when dialogs are buried deep in

1479-413: The command-line, which requires commands to be typed on the keyboard . By starting a GUI wrapper, users can intuitively interact with, start, stop, and change its working parameters, through graphical icons and visual indicators of a desktop environment , for example. Applications may also provide both interfaces, and when they do the GUI is usually a WIMP wrapper around the command-line version. This

1530-582: The cone of a spotlight, points and handles to define the position and tangent vector for a spline control point, circles of variable size to define a blur filter width or paintbrush size, IK targets for hands and feet, or color wheels and swatches for quickly choosing colors. Complex widgets may even incorporate some from scientific visualization to efficiently present relevant data (such as vector fields for particle effects or false color images to display vertex maps). Direct manipulation, as well as user interface design in general, for 3D computer graphics tasks,

1581-571: The designer's work to change the interface as user needs evolve. Good GUI design relates to users more, and to system architecture less. Large widgets, such as windows , usually provide a frame or container for the main presentation content such as a web page, email message, or drawing. Smaller ones usually act as a user-input tool. A GUI may be designed for the requirements of a vertical market as application-specific GUIs. Examples include automated teller machines (ATM), point of sale (POS) touchscreens at restaurants, self-service checkouts used in

Application framework - Misplaced Pages Continue

1632-485: The development of mobile devices . The GUIs familiar to most people as of the mid-late 2010s are Microsoft Windows , macOS , and the X Window System interfaces for desktop and laptop computers, and Android , Apple's iOS , Symbian , BlackBerry OS , Windows Phone / Windows 10 Mobile , Tizen , WebOS , and Firefox OS for handheld ( smartphone ) devices. Since the commands available in command line interfaces can be many, complex operations can be performed using

1683-435: The display represents a desktop, on which documents and folders of documents can be placed. Window managers and other software combine to simulate the desktop environment with varying degrees of realism. Entries may appear in a list to make space for text and details, or in a grid for compactness and larger icons with little space underneath for text. Variations in between exist, such as a list with multiple columns of items and

1734-611: The first graphical computer-aided design program. It used a light pen to create and manipulate objects in engineering drawings in realtime with coordinated graphics. In the late 1960s, researchers at the Stanford Research Institute , led by Douglas Engelbart , developed the On-Line System (NLS), which used text-based hyperlinks manipulated with a then-new device: the mouse . (A 1968 demonstration of NLS became known as " The Mother of All Demos ".) In

1785-485: The interface found in current versions of Microsoft Windows, and in various desktop environments for Unix-like operating systems , such as macOS and Linux . Thus most current GUIs have largely common idioms. GUIs were a hot topic in the early 1980s. The Apple Lisa was released in 1983, and various windowing systems existed for DOS operating systems (including PC GEM and PC/GEOS ). Individual applications for many platforms presented their own GUI variants. Despite

1836-413: The kind of data they hold. The widgets of a well-designed interface are selected to support the actions necessary to achieve the goals of users. A model–view–controller allows flexible structures in which the interface is independent of and indirectly linked to application functions, so the GUI can be customized easily. This allows users to select or design a different skin or theme at will, and eases

1887-474: The layout of objects and cameras, light placement, and other effects, direct manipulation is a significant part of 3D computer graphics. There is standard direct manipulation widgets as well as many unique widgets that are developed either as a better solution to an old problem or as a solution for a new and/or unique problem. The widgets attempt to allow the user to modify an object in any possible direction while also providing easy guides or constraints to allow

1938-435: The methods of 3D graphics to project 3D GUI objects onto the screen. The use of 3D graphics has become increasingly common in mainstream operating systems (ex. Windows Aero , and Aqua (MacOS)) to create attractive interfaces, termed eye candy (which includes, for example, the use of drop shadows underneath windows and the cursor ), or for functional purposes only possible using three dimensions. For example, user switching

1989-680: The perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard . The actions in a GUI are usually performed through direct manipulation of the graphical elements. Beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls . The term GUI tends not to be applied to other lower- display resolution types of interfaces , such as video games (where head-up displays ( HUDs ) are preferred), or not including flat screens like volumetric displays because

2040-403: The pointing device. A window manager facilitates the interactions between windows, applications , and the windowing system . The windowing system handles hardware devices such as pointing devices, graphics hardware, and positioning of the pointer. In personal computers , all these elements are modeled through a desktop metaphor to produce a simulation called a desktop environment in which

2091-437: The results of an action before completing the action, thus evaluating the output and compensating for mistakes. The term was introduced by Ben Shneiderman in 1982 within the context of office applications and the desktop metaphor . Individuals in academia and computer scientists doing research on future user interfaces often put as much or even more stress on tactile control and feedback, or sonic control and feedback than on

Application framework - Misplaced Pages Continue

2142-517: The system never reached commercial production. The first commercially available computer with a GUI was the 1979 PERQ workstation , manufactured by Three Rivers Computer Corporation. Its design was heavily influenced by the work at Xerox PARC. In 1981, Xerox eventually commercialized the ideas from the Alto in the form of a new and enhanced system – the Xerox 8010 Information System – more commonly known as

2193-505: The term is restricted to the scope of 2D display screens able to describe generic information, in the tradition of the computer science research at the Xerox Palo Alto Research Center . Designing the visual composition and temporal behavior of a GUI is an important part of software application programming in the area of human–computer interaction . Its goal is to enhance the efficiency and ease of use for

2244-456: The underlying logical design of a stored program , a design discipline named usability . Methods of user-centered design are used to ensure that the visual language introduced in the design is well-tailored to the tasks. The visible graphical interface features of an application are sometimes referred to as chrome or GUI . Typically, users interact with information by manipulating visual widgets that allow for interactions appropriate to

2295-617: The unique parts of an application can simply inherit from classes extant in the framework. Apple Computer developed one of the first commercial application frameworks, MacApp (first release 1985), for the Macintosh . Originally written in an extended (object-oriented) version of Pascal termed Object Pascal , it was later rewritten in C++ . Another notable framework for the Mac is Metrowerks' PowerPlant , based on Carbon . Cocoa for macOS offers

2346-399: The use of windows or even graphical output. For example, direct manipulation concepts can be applied to interfaces for blind or vision-impaired users, using a combination of tactile and sonic devices and software. Compromises to the degree to which an interface implements direct manipulation are frequently seen. For some examples, most versions of windowing interfaces allow users to reposition

2397-420: The user to easily modify an object in the most common directions, while also attempting to be as intuitive as to the function of the widget as possible. The three most ubiquitous transformation widgets are mostly standardized and are: Depending on the specific standard uses of an object, different kinds of widgets may be used. For example, a light in computer graphics is, like any other object, also defined by

2448-470: The user-friendly interface as a personal computer which departed from prior business-oriented systems, and becoming a signature representation of Apple products. In 1985, Commodore released the Amiga 1000 , along with Workbench and Kickstart 1.0 (which contained Intuition ). This interface ran as a separate task, meaning it was very responsive and, unlike other GUIs of the time, it didn't freeze up when

2499-417: The visual feedback given by most GUIs . As a result, the term has been more widespread in these environments. Direct manipulation is closely associated with interfaces that use windows, icons, menus, and a pointing device ( WIMP GUI) as these almost always incorporate direct manipulation to at least some degree. However, direct manipulation should not be confused with these other terms, as it does not imply

2550-399: Was later introduced by David Canfield Smith , who had written a thesis on the subject under the guidance of Kay. The PARC GUI employs a pointing device along with a keyboard. These aspects can be emphasized by using the alternative term and acronym for windows, icons, menus, pointing device ( WIMP ). This effort culminated in the 1973 Xerox Alto , the first computer with a GUI, though

2601-588: Was never popular due to its high hardware demands. Nevertheless, it was a crucial influence on the contemporary development of Microsoft Windows . Apple, Digital Research, IBM and Microsoft used many of Xerox's ideas to develop products, and IBM's Common User Access specifications formed the basis of the GUIs used in Microsoft Windows, IBM OS/2 Presentation Manager , and the Unix Motif toolkit and window manager . These ideas evolved to create

SECTION 50

#1732781066172
#171828