🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#481862
From: Michał Gancarski
Date: Mon, 07 Mar 2011 15:12
132 lines
6189 bytes
On 07 Mar 2011 14:48:07 GMT, Andrzej Rosa wrote:

> 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.

To dokładnie tak jak z myszką. Sam sobie musisz zapamiętać, które narzędzie
zostało wybrane.


>>> 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!" 

Skoro dotknął i przeciągnął, to nie "po prostu dotknął". Proste. To tak
jakbyś narzekał, że nie wiesz co zrobić z dwuklikiem na elemencie menu. Bo
przecież użytkownik nie kliknknął, tylko dwukliknął i klnie. Olaboga,
musisz o tym pomyśleć.


>>> 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 obsłuży dwuklik w sytuacji, gdy powinien się domyślić, że to powinien
być zwykły klik. Albo nie klik, tylko przytrzymanie klawisza i
przeciągnięcie myszką. Albo może jednocześnie prawy i lewy przycisk?
Kółeczko? Trzeci przycisk? Przeciągnięcie z trzecim przyciskiem?
Przeciągnięcie z prawym?


> Albo jak w poprzednim wypadku, obsłużył
> malowanie w sytuacji gdy powinien obsłużyć proste dotknięcie.

Malowałbyś po menu? Współczuję.


>>> 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.

Nie.


>  Jak kursor jest nad rysunkiem,
> pracujemy w paincie.

Jak bazgrasz palcem po obszarze malowania, to malujesz.


>  Jak kursor jest poza rysunkiem, obsługujemy zwykłe
> kliknięcia.

Jak dotykasz poza obszarem malowania, to nie malujesz. Trudne?


>Jak kursor jest poza aplikacją, obsługujemy generyczne
> zachowanie myszy w systemie.

Nie ma czegoś takiego. Zawsze jest jakaś "aplikacja", czy to shell czy
program użytkowy. Kursor jest zawsze nad jakąś aplikacją. Podobnie - dotyka
się zawsze na obszarze jakiejś aplikacji.

 
> W przypadku interfejsu dotykowego kontekst trzeba zgadnąć.

To dokładnie tak samo jak z myszą.


>> 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.

Nie.


-- 
Michał Gancarski
Technical Details
Message-ID: <169uowejwavm3$.mdcsqyj5rroq.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!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> <4d74f027$0$2505$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Michał Gancarski <michal@gancarski.com>
Newsgroups: pl.comp.os.advocacy
Subject: Re: ta
 niebywała intuicyjność interfejsów...
Date: Mon, 7 Mar 2011 16:12:05 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 132
Message-ID: <169uowejwavm3$.mdcsqyj5rroq.dlg@40tude.net>
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> <4d74f027$0$2505$65785112@news.neostrada.pl>
NNTP-Posting-Host: 193-239-36-253.ksi-system.net
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1299510727 12407 193.239.36.253 (7 Mar 2011 15:12:07 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 7 Mar 2011 15:12:07 +0000 (UTC)
X-User: wssbck
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit