User-hostile interfaces
Recently, the topic of user-friendly interfaces has been very popular, and the OS manufacturers for mobile phones provide detailed instructions on how to write good interfaces ... So why is it impossible to use them? And the thing is in the fundamental errors that are embedded in all living mobile OSs: these are single-task OSs. A normal application for android, ios or wp7 should include its window manager, task manager (both task management itself and the user interface to it), ensure isolation of these processes and not fall during errors in some of them, as well as support sleep and recovery from it. But this is the task of the OS! Within the framework of the application, it is either very difficult or impossible to solve them. Consider the examples of the strange behavior of mobile OS.
Prehistory
Once bad people decided to apply fashionable garbage collection instead of the traditional closure of applications by the user. The truth is that they did it badly: the cleaning started when the memory ran out, and the user was clearly asked what he wanted to close. So that the memory is not clogged with unnecessary more applications went on a tricky move: abandoned the classic taskbar and made it so that the launch of an open application caused an instance in the memory. Thus, the opportunity to open several documents at the same time (including web pages) was lost. Fortunately, any third-party shell for windows mobile replaced the minimize button with a close button and added a taskbar. Some applications implemented tabs (back then they were only Net Front and Opera Mobile browsers), some learned to cheat the OS and run in several copies (some book readers). But the problem of opening several documents remained.
Nowadays
The developers of modern OS decided that the idea was good, only the implementation was bad. And they made a much more thoughtful and coherent system. She looks beautiful, but ... has a
complex, unobvious behavior . And this is something that should not be allowed in programming: there will always be cases when the system behaves strangely.
')
Data
- We are talking about mobile operating systems running on mobile phones, usually connected to the Internet via GPRS / 3G. And GPRS / 3G work very unstable. At MTS, they almost do not work even in Moscow. In addition, it is an expensive resource. Roaming is insanely expensive. And in the case of unlimited tariff type BIT, 5 megabytes per hour very quickly run out. In other words: if you managed to download something from the Internet, it is a valuable resource and it should be stored.
- Web browsing is a crawling graph. I look through the habr page, open interesting articles in tabs, then read them one by one, opening links in tabs if there is something interesting there. There are many tabs and I can not read them right away.
If you need to make a choice between several items, they have to be compared. To do this, open several documents of the same type and quickly switch between them.
Strange behavior
Automatic closing of programs
We open the browser, open tabs in it, get distracted by an incoming call or an incoming email. OS closes the browser. Most browsers (built-in, Doplhin browser, Opera, Firefox) load the page again, possibly taking something from the cache. Only Chrome managed to reload the page completely from the cache, not having an internet connection, only lost advertising. This is unacceptable, see fact 1 and 2. My Internet will appear again after 20 minutes on the train in the nearest Moscow region, oh yes, I finally left MTS.
Open the browser, start writing a post to the blog / forum, doubt the correctness of some fact, go to the datasheet, then go to the dictionary, go back to the browser ... Where? Where did the text typed on the on-screen keyboard go? Maybe when reloading the page it was necessary to restore the contents of the form?
Open the adobe reader, select the document, switch to another task, then again to the adobe reader. Why do I see the list of documents again? If you immediately open the document in the adobe reader, then everything is fine.
We open contacts in android ICS on huawei honor, select the import of contacts from the drive and, until the phone goes dead, drop the hand with the phone. The screen changes its orientation to landscape, the OS re-creates the widget and ... the contact selection window disappears.
I checked a few popular games for android: angry birds, cut the rope, blade master, blockout 3D, death racing, nethack, crocodile Swamp. None of them implements the restoration of its state upon re-activation. Only nethack informed me that he had found an incorrectly completed session and suggested that it be continued. Moreover, in Swampy’s crocodile, an even more complex non-obvious behavior was discovered: when the game is turned off, it unloads a part of the resources and loads it back when the application is activated again. But at the same time, shutdown is not correctly processed.
Saving and restoring application sessions have been in KDE since time immemorial. Many programs support it correctly?
So why do you think that programs for android will support it normally? This is a complex code and there will definitely be errors. Developers are lazy and incomprehensible why write it.
Opening multiple documents
Now there is not a single browser without tabs, I hope nobody needs to explain why they are needed. But html is not the only format, there is, for example, pdf. In this format, articles are often published. Sometimes, looking through the topic on the forum, I meet several pdf links that I want to upload in the background for further reading. And I also need to have datasheets for electronic components before my eyes. PDF viewer does not allow you to quickly switch between them at all. In Adobe reader, you need to make a tap on the page, then on the “Home” button that appears and select among the recently opened documents. Will do.
Editors. Text first. There are a lot of them, and only 920 Text Edit has tabs. Do you really think that when I switch between documents, I want to be asked if I keep the current document? 5 tapes on switching between documents (menu, file, history, yes save, select file) are better than 5 usual 5 long tapes in windows mobile 2003, but this cannot be called a friendly interface.
EBooks. Where are the tabs? Nobody reads two books at the same time? About 8 years ago I was in school, I had a PDA and I was allowed to use it in literature classes. "A ray of light in the dark kingdom" and "Thunderstorm" must be open at the same time. When verses pass, they often end up in different collections, especially if this is a “monument” of Pushkin and Derzhavin. They pass at the same time, making a comparison between these two poems. “War and Peace” is posted on lib.ru in four volumes, you need to quickly switch between them.
Let's go back to earth. Yandeks.Afisha. A wonderful application that answers the question very well: “Where is the X movie next to me?”. But it does not allow to decide which movie is worth to go. Switch between the descriptions of films can only be through an alphabetical index, clogged with garbage. Here you have the most popular films, watch them.
Yandex Market. It is also a great app, good at answering questions: “What is this piece of iron?”, “Where can I buy it?”. But this application is not intended in principle to compare two products or select the most suitable product from the category. It is difficult to write, it clutters the interface, it is not necessary.
But let's remember, why banned the creation of more than one instance of the application?
In order for the manual garbage collector of windows mobile not to constantly ask the user what to close! It was a crutch, like the arrangement of buttons on a typewriter keyboard. There are no windows mobile already, there is a normal garbage collection algorithm and there is an analogue of the taskbar. So why is it now?
And now think what happens when you have a lot of tabs open in the application? You have a bunch of unused documents that occupy RAM. With a lack of memory, the OS should shut them down, but the OS does not know about them, so it will close the entire application. Is there such a problem in the desktop OS? No, it was decided long ago: unused memory blocks are transferred to the swap, the memory is released for those applications that need it. But if the OS has garbage collection, then it does not need swap. As a result,
applications with tabs go against the ideology of the OS and prevent it from working normally .
findings
- No need to implement complex non-obvious behavior in programs or their components. They then work strangely.
- No need to drag crutches from the OS, the developers of which broke up and wrote a new OS from scratch.
- Do not flatter yourself. Almost ten years passed, and libastral was never brought to production use. Neural interfaces also still have not come from movie screens. A modern mobile OS is capable of predicting only the most basic patterns of user behavior, quite well. But do not assume that you know everything about users.