🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.advocacy
Article #481849

Re: ta niebywała intuicyjność interfejsów...

#481849
From: Andrzej Rosa
Date: Mon, 07 Mar 2011 14:48
84 lines
4970 bytes
On 2011-03-07, Wojciech Bancer <proteus@post.pl> wrote:
> On 2011-03-07, Andrzej Rosa <bakters@yahoo.com> wrote:
>
> [...]
>
>> Dotknąłeś pędzel w paincie i podnosisz palec.  Jaki stan i w ogóle stan
>> czego masz w tej sytuacji?  
>
> Kliknąłeś przyciskiem pędzel w paincie i puściłeś. Czym to się różni?

Kursor zachowuje stan.  Żeby użyć pędzla, muszę go przesunąć na rysunek.
W przypadku interfejsu dotykowego niczego nie przesuwam, więc gubię
stan.

>> Użytkownik _z kontekstu_ oczekuje, że jak dotknie palcem obszaru na
>> rysunku to będzie malował dotkniętym _wcześniej_ pędzlem.
>
> No to aplikacja na podstawie wybranego wcześniej narzędzie w momencie
> (roboczo nazwijmy) ontouch na aktywnym polu (które obsługuje), będzie 
> wykonywała akcję przypisaną do wybranego narzędzia.
>
> W czym problem?

Nie rozumiem.  Na przykładzie.  Dotknąłem pędzla, aplikacja zapamiętała
to dotknięcie, dotykam rysunku i rysuję.  Wszystko pięknie.  Ale gdy
dotykam poza rysunkiem a aplikacja nadal rysuje jest wtopa.  

I dalej w tym samym stylu.  Załóżmy aplikację pełnoekranową, żeby nie
było komplikacji.  Dotknąłem pędzla, aplikacja zapamiętała że ma być
pędzel, po czym dotykam menu.  Aplikacja powinna dać mi się przeklikać
przez menu a mimo to nadal pamiętać, że wyimaginowany kursor ma
przylepiony do niego pędzel.  Nie powinna zapomnieć wybranego narzędzia
zanim użytkownik z niego osobiście nie zrezygnuje.

>> Nie oczekuje, że jak dotknie obszaru poza rysunkiem to też będzie 
>> malował.
>
> No i jaki w tym problem?
> Programowanie zdarzeniowe nie polega na robieniu pętli wyjątków tylko
> na obsłudze konkretnego zdarzenia w konkretnych warunkach. W pozostałych
> przypadkach obsługa jest domyślna, przez system.

Problem w tym, że w przypadku interfejsu dotykowego warunki nie są
konkretne.  Decyduje kontekst, który nie jest konkretem, bo istnieje
głównie w umyśle użytkownika.

Na przykład.  Użytkownik klika w menu, system otwiera menu, użytkownik
klnie.  Dlaczego?  Bo on przecież "dotknął i przeciągnął" a nie "dotknął
menu".  "Komputery są gupie!" 

>> Programista musi _przewidzieć_ oczekiwania użytkownika i je odgadnąć.
>
> Po co? Programista ma obsłużyć akcje, które potrzebuje. 
> Nic mniej, nic więcej.

No i obsłużył proste dotknięcie w sytuacji gdy powinien się domyślić, że
powinien obsłużyć gest.  Albo jak w poprzednim wypadku, obsłużył
malowanie w sytuacji gdy powinien obsłużyć proste dotknięcie.

>> Nie ma kursora o jednoznacznie określonym stanie.
>
> Ale przecież w normalnych aplikacjach to Ci nie jest potrzebne. Po xuj
> Ci pozycja kursora myszki jak nic nie wciskasz?

Jednoznacznie określa kontekst.  Jak kursor jest nad rysunkiem,
pracujemy w paincie.  Jak kursor jest poza rysunkiem, obsługujemy zwykłe
kliknięcia.  Jak kursor jest poza aplikacją, obsługujemy generyczne
zachowanie myszy w systemie.

W przypadku interfejsu dotykowego kontekst trzeba zgadnąć.

> Przecież w programach
> tego nie śledzisz, bo Ci nie jest to potrzebne. Reagujesz na onclick,
> albo na onbuttondown albo onbuttonup i dopiero wtedy odczytujesz 
> współrzędne (bo wtedy zazwyczaj Ci potrzebne). Na gładzikach masz to 
> samo, tylko musisz prowadzić kursor, bo gładzik sam w sobie nie przekazuje 
> prawidłowo pozycji XY względem ekranu.

Jak kursor w ogóle jest, sytuacja się upraszcza.

-- 
Andrzej Rosa
Working Gentoo flavor:  http://www.funtoo.org
Maintained by Daniel Robbins.
Technical Details
Message-ID: <4d74f027$0$2505$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <90a44e0b-e088-46ee-8b44-69ea10d21611@u3g2000vbe.googlegroups.com> <iklomn$r0e$1@news.onet.pl> <ikm2c2$hjv$1@node2.news.atman.pl> <4d6ea047$0$2452$65785112@news.neostrada.pl> <ikqirp$9j0$1@inews.gazeta.pl> <4d7120e0$0$2491$65785112@news.neostrada.pl> <wzs7ints4fdh.gy2djku3mouc$.dlg@40tude.net> <4d73d38d$0$2439$65785112@news.neostrada.pl> <dk59fm1lho5c$.mmsu0q21f7sl.dlg@40tude.net> <4d74cf56$0$2486$65785112@news.neostrada.pl> <slrnin9lqe.2mi3.proteus@pl-test.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.os.advocacy
From: Andrzej Rosa <bakters@yahoo.com>
Subject: Re: ta
 niebywała intuicyjność interfejsów...
References: <90a44e0b-e088-46ee-8b44-69ea10d21611@u3g2000vbe.googlegroups.com> <iklomn$r0e$1@news.onet.pl> <ikm2c2$hjv$1@node2.news.atman.pl> <4d6ea047$0$2452$65785112@news.neostrada.pl> <ikqirp$9j0$1@inews.gazeta.pl> <4d7120e0$0$2491$65785112@news.neostrada.pl> <wzs7ints4fdh.gy2djku3mouc$.dlg@40tude.net> <4d73d38d$0$2439$65785112@news.neostrada.pl> <dk59fm1lho5c$.mmsu0q21f7sl.dlg@40tude.net> <4d74cf56$0$2486$65785112@news.neostrada.pl> <slrnin9lqe.2mi3.proteus@pl-test.org>
User-Agent: slrn/0.9.9p1 (Linux)
Mime-Version: 1.0
Date: 07 Mar 2011 14:48:07 GMT
Lines: 84
Message-ID: <4d74f027$0$2505$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.28.170.220
X-Trace: 1299509287 unt-rea-a-02.news.neostrada.pl 2505 83.28.170.220:43836
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit