📜 ⬆️ ⬇️

Web interfaces: development or vice versa?

Thoughts about user interfaces and the development degradation have been circulating for a long time, of course, I want to share them today. Many people remember the old interfaces with pseudographics in text mode with stingy functionality and limited usability. Then they were replaced by window interfaces in graphical mode and now the web interfaces. But has the speed of application users, users, and input operators improved? Has the speed of developing screens and reports improved? Many will tell you a solid “no” - the average productivity of programmers and users declined with each new technology step forward. And for this there are a number of objective reasons. In addition to them, we will dwell today on how to improve the sowing performance.

Text mode


We will not dwell on the shortcomings of text interfaces, they are obvious. But in text mode there were undeniable advantages:

Full screen control . The entire screen was completely covered by the application interface of the program, leaving no room for buns and excesses, there were not a dozen running programs, pop-up windows of communicators, a browser with open social networks.

High keyboard usage . Everyone knows that in specialized packages it was always impossible to do without the knowledge of key combinations. But with the advent of the mouse, users have been unaccustomed to hotkeys and even cursors, and many programmers, after them, have unlearned from implementing full control of the application using the keyboard.
')
Unambiguous action . It is typical that at each moment for the text mode there is a very limited number of actions, which facilitates the work with the programs, their development and testing. The various functionalities practically do not overlap and there are much fewer problems with the fact that something breaks during modifications.

Window Interfaces


The graphical user interface, the use of OOP and window systems, are based on the transfer of messages between visual controls, using the mouse and the touchscreen, gave us a lot, but took even more.
Positive moments in window applications:

Now criticism:

Of course, experienced developers started making much better interfaces, but most of both developers and users relaxed and wallowed in heresy.
Conclusion: Excessive freedom is detrimental to the masses .

Web applications


And happiness came to everyone , you no longer need to install clients on computers to users, you do not need to bathe about the DLL versions, .NET versions and a lot of settings on their machines and take care of software conflicts on user computers. Everything happens in the browser and even the standards are already quite tolerably supported by all browsers. Update software is not necessary. Data security aspect: everything is stored on the server and centrally backed up and protected. As for the protocols, we do not steam, we have HTTPS and JSON, everything is both convenient and secure. An illegal version of the application software will not be available at all soon, since it is not placed on computers, but is used in the SaaS model over the network.

But is everything so good?
In the absence of a network, we cannot work, well, this is still somehow tolerable, the network must always be there, otherwise there is no group work and communication. If something hangs during the input or the network disappears - the entered data is lost, you cannot send it over the network, and there is nowhere to save it locally (local storage and Web SQL are not yet available everywhere). All print ideology REST, the complete lack of state. Lack of funds Different browsers, and their features, require additional testing and debugging. Sometimes we do the layout separately for IE (less often there are versions for other browsers), but this is with very tricky markup.

What is inherited from window interfaces?

Only a few units rethought the PLO and patterns, others thoughtlessly. And the specificity of the web is that server applications live for a fraction of a second, while they are stateless and the user interface does not retain its state when refreshing pages (values ​​in forms, variables, objects). In general, REST is not our way, for the user interfaces and database applications, the state is necessary as air, and the solution has already been found by many, it is the session and cookie mechanism, the “everyone's favorite” viewstate and the outdated way of passing the state in URLs, the upcoming standards Local Storage and Web SQL from HTML5, a key-value DBMS on the server side.

Web Interface Development Trends


Taking into account all the problems and new opportunities, the mainstream has been formed, actively supported by the entire advanced part of the network, namely:


Consider more visual controls and solutions.


Scroll zone - typical for sites is scrolling full screen, when all content with controls is scrolled at once with one trackbar on the right (or on the left for right-to-left). However, for web applications this is not convenient and the principle of “attaching panels” (as is customary in window applications) will be much more adequate, for example, the tools are on the panel that is attached to the upper border of the browser window and stretched to its full width, and on the left can be placed a panel with a dynamically loaded tree glued to the left edge of the window, below is the status bar, to the right is a panel with contextual tasks, the entire central part of the screen is occupied by the work object: document, map, table, image, etc. Each zone has its own scrolling. Of course, ideally, the scrolling would have only a zone in the central part, and all other panels would be without scrolling or scrolling would be carried out not in the trackbar and only along one axis.

Splitter For window applications, a dynamic splitter between panels is popular, which can be dragged with a mouse. It was also implemented for web interfaces, but it is not often used, and the splitter is not applicable at all in mobile applications. There are several solutions: a “discrete splitter” that has several states and switches between them when you press a control element. "Smart splitter" - adjusts the panel size to the resolution and context, and drag it with the mouse very rarely. “A floating splitter” - with a long inactivity hides the panel, and when you move the mouse - returns, but with this there are problems on the touchscreen, there is no mouse cursor there.

Grids - tables and more complex composite grids. There are a number of problems with them:

What do you want to have in the grid:


Tree - for complete happiness, the tree should satisfy almost the same list as the grid: load dynamically, be controlled with the mouse and from the keyboard, be edited locally, etc.

The main menu - forget like a bad dream! This atavism from window applications on the web has no right to life.

Toolbar - instead of dumping buttons and combo boxes, toolbars gradually become adaptive, contextual, we see only those functions that can be applied in the current state of the application or to the element that is in focus.

Combobox - standard html combo box is terrible in design, which cannot be completely redefined by functionality, which is limited by a banned drop-down list of strings. We need a combo box with many modes, with an incremental search, allowing you to choose from large directories, with the possibility to choose several values, with groups, with pictures (and in general with elements with rich html + css design).

Conclusion


All the way, our team, for itself and not only, forms a set of controls for web applications, we write a part, we take a part and we comb it, we buy a part (this only if there is no time to do it), but we are constantly expanding the set used and tested. This article is only an overview, if it is interesting to someone, then we can publish briefly about our developments in our free time, for example, we recently undertook to refine jQuery UI of several control and missing curves. Also, we will be grateful for your opinion on the above approach, links to good controls, demos, screenshots and applications that you think deserve attention.

Added: removed the picture for meditations, you don’t like it, I feel.
And I will try to collect illustrations in the coming days.

Figure 1: How ugly to do leaving toolbars on the example of GMail


Figure 2: How beautiful it is to do the layout, toolbars and scrolling on the example of GoogleDocs


Figure 3: Several options for default combo boxes


Figure 4: Virtual scrolling and paging - to whom what?


Figure 5: Scrolling inside scrolling is bad


Figure 6: A grid stretched across the entire accessible zone (so that there is one scrolling) is good

Source: https://habr.com/ru/post/120318/


All Articles