Размышления о MultiTouch

Я уже затрагивал основы мульти-тач в предыдущей заметке. Однако, чем больше я думаю о том как обрабатывать нажатия, тем ближе мысли о том, что технология достаточно сложна, неоднозначна и применима далеко не везде.

Привычный нам одно-точечный ввод устроен как нельзя просто. Нажали, получили реакцию - все довольны. Контекст обработки нажатия нам совершенно понятен и мы легко можем объяснить машине как его нужно обработать. В случае с множественным касанием мы сильно зависим от контекста, в котором это самое касание происходит. Давайте рассмотрим несколько примеров.

Multitouch и несколько приложений

Предположим, что за ноутбуком имеется некоторая компания, которая просто веселится и рассматривает фотографии. Moultitouch в этом случае очень удобен для масштабирования и поворота фоток. Вдруг один человек из этой компании решает посмотреть, в какой день недели была сделана эта фотка, и пока другой увеличивает фотку, наш с вами герой тыкает по календарю в трейе.

Что будем делать? Как будем обрабатывать это нажатие? покажем календарь поверх фотки просматриваемой другими??? Как будем реагировать, если в момент показа календаря на нем окажутся чьи-то пальцы, совершающие жест масштабирования? Будем масштабировать календарь? А если на место календаря поставить видеоплейер? Какому приложению мы отдадим приоритет ввода с сенсорного экрана? Но это всего-лишь одна из проблем! Эта проблема относится к уже существующему конетенту.

MultiTouch при создании нового контента

Давайте посмотрим, что происходит, когда приложение предназначено для создания чего либо нового. Возьмем простейший графический редактор и воспроизведем сценарий касаний.

  1. Касание на прямоугольнике в панели инструментов.
  2. Касание на карандаше в панели инструментов.
  3. Касание синего цвета в палитре цветов.
  4. Касание желтого цвета в палитре цветов.
  5. Касание красного цвета в палитре цветов.
  6. Три касания одновременно движутся по экрану.

Приехали!!! Лично у меня крыша уехала далеко! Как в этом случае должно реагировать приложение? Что призошло? Давайте снова рассмотрим варианты.Прежде чем читать дальше подумайте как бы такое обработали Вы!

  1. Пользователь выбрал квадрат, передумал, выбрал карандаш, последовательно выбрал три цвета и начал рисовать тремя пальцами. Какому из движущихся касаний какой цвет будет принадлежать?
  2. Или у нас два пользователя? Один выбрал квадрат, другой карандаш. Затем первый ползователь выбрал цвет рамки квадрата, а второй цвет карандаша, и снова первый выбрал цвет заливки. Какие из двух касаний рисуют квадрат? Какое касание рисует линию карандашом?
  3. А может быть это все один пользователь? Он передумал рисовать квадрат и два раза ошибся в цвете? Он хочет рисовать три красных линии...

При такой небольшой последовательности действий мы имеем слишком много вариантов поведения. Почему? Мы лишены контекста! Только пользователь (а может их двое, трое, пятеро...) знает, что он хочет на самом деле!

Такую проблему можно частично решить только посредством привычных нам инструментов - одноточечной мыши, у которой контекст всегда следует за нажатием. Именно поэтому multitouch не может стать полной заменой привычных нам интерфейсов.

Как справляются с MultiTouch в Apple?

Я уже вижу летящие в меня помидоры от апплодрочеров. Слышу визги о том, что на iPhone и iPad все обходится без мыши, да впрочем как и на устройствах с Android.

Да я согласен! На этих устройствах мышь лишняя, но посмотрите, в какие рамки загнал вас производитель! Вы всегда имеете только одно активное приложение в полноэкранном режиме. Не так ли? Ради якобы полной и абсолютно поддержки multitouch нас лишили свободы работать с двумя приложениями одновременно! Хороший маркетинговый фокус!

Мало того! Moultitouch в силу необходимости угадывания контекста был лишен этого самого контекста. Не верите? Давайте посмотрим что мы можем делать с multitouch.

Мы можем рисовать одновременно несколько линий. Мы можем передвигать одновременно несколько объектов. Масштабирование тоже можно отнести к передвижению, т.к. мы можем производить одновременно несколько действий, каждое из которых является либо масштабированием, либо перемещением.

Пока все выглядит хорошо, но ведь нас опять загнали в рамки определенных жестов. Если мы берем фотографию за два угла и тянем их в разные стороны, что происходит? Масштабирование? Не верно, я говорю о бумажной фотографии!!! Еще никто не додумался так удалять файлы, а почему? Или у нас не фотография, а рисунок на полиэтиленовом пакете и мы хотим его деформировать?

Вывод: MultiTouch не совершенен!

MultiTouch позиционируется маркетологами как максимальное приближение компьютерного мира к реальному, однако это не так - нас загоняют в рамки жестов ( это очень похоже на клавиатурные сочетания Ctrl+O например). Компьютер вырван из контекста, в котором нуждается пользователь. MutiTouch ни в коем случае не замена существующих устройств ввода, а лишь дополнение к ним. Ведь мышь не смогла заменить клавиатуру, и даже планшеты с пером (Wacom etc.) не смогли, правда?

В заключении хотелось бы сказать, что существующие положение дел можно улучшить, если учитывать еще силу касания, т.е. применить не 2D, а 3D ввод, но это все равно не избавит нас от всех рамок. MultiTouch - хорошая штука, но далеко не для всех задач!

Комменты

  • 04.10.2010 23:18:20 Armanx64:
    Согласен, но частично. Всё поправимо. А за идею рвать фотки растягиванием - спасибо, честно, не додумался. Скоро будем ещё и чирком пальцев их поджигать :)
  • 04.10.2010 23:21:41 Maxim:
    А почему бы и нет? Если это для чего-то нужно...

    за противоположные углы - масштаб, за верхние - порвать и в корзину, свернуть окно - жест на уменьшение его масштаба. Идей много - главное, чтобы было удобно
  • 05.10.2010 00:11:46 Umnik:
    Автор, ты узконаправленый, мастадойный нестроевику ламер. И живи с этим, не тыкай другим свои устаревшие, болезненные взгляды. Попробуй воздай нечто такое, как ты говоришь, дай своей маме/бабушке/сестре/тете, пускай разберутся. Проще работать с 1 приложением в момент времени, так ты уделяешь 100% внимания приложению, а за двумя зайцами, даже в пк, только идиоты гоняются. Наверное из за этих взглядов ты ничего не добился в жизни, и с зависишь смотришь на тех, загнанных ужасным эплом, которые имеют больше тебя.

    *----*
    Ну я смотрю вы не только умник, но и ХАМЛО! :) Я размышляю о том как работает multitouch и как с ним работать лишь потому, что у меня в скором будущем открывается задача поддержки multitouch в моем приложении. Я действительно считаю так, как написал - еще ни кто не дал одновременной поддержки многооконности и multitouch! Может быть я буду первым?

    Если Вы, Умник, желаете поспорить (без хамства и по существу) - я буду только рад, ведь возможно в споре я найду идеи. А из вашего коммента я ничего особенного не понял. Если же вы Эппло-Дрочер, пожалуйста проходите мимо! Я тоже люблю apple, но не до состояния fap-fap-fap :)
  • 05.10.2010 01:30:11 tenshi:
    календарь не должен перехватывать события - они должны идти тому объекту с которого жест начался
  • 05.10.2010 11:17:14 Armanx64:
    Фу, бля, это линупс-блог.Блин, как же эти ёбнутые достали.
  • 04.08.2011 08:00:59 Stalkerwar:
    По поводу графического редактора, мне кажется мультитач очень пригодится в таких его областях как градиент цвета, прозрачность, размер кисти, возможность интерактивной анимации с зацикливанием произведённых действий, вставка одного или нескольких графических или видео объектов, в поле действий, так же операции над этими объектами.
  • 22.08.2011 14:50:32 chedim:
    Уже несколько недель работаю с планшета без клавиатуры (работаю программистом). Очень удобно - полупрозрачная клавиатура разворачивается на весь экран и скорость печати становится вполне сравнима с клавиатурой =)