Шрифт:
Интервал:
Закладка:
…было меньше, чем ее активная зона. Приблизительный размер увеличенной активной зоны — результат «зарядки» кнопки — показан светлым кругом
Как детская игра. Функция «Сдвиньте, чтобы разблокировать», не позволяющая случайно активировать какие-либо процессы, когда телефон лежит в кармане или в сумке, и ее пользовательский интерфейс были настолько интуитивно понятными, что, когда Имран впервые дал iPhone своей дочери — ей было около трех лет, — она секунду смотрела на экран, а потом без всяких подсказок провела пальцем и разблокировала телефон. Никаких проблем.
Никаких промахов. При нажатии в любом месте прямоугольника клавиатуры всегда происходит активация клавиш. Поскольку они не касаются друг друга — ни визуально, ни на программном уровне — можно было коснуться пальцем внутри клавиатуры, но не попасть по клавише. Тем не менее я решил, что, если человек нажимает на клавиатуру, он хочет что-то напечатать, поэтому я всегда выдавал результат. В случае промаха я активировал геометрически ближайшую клавишу.
Управление «Сдвиньте, чтобы разблокировать» было настолько интуитивно понятным, что им мог пользоваться даже ребенок
Я мог бы еще очень долго рассказывать о подобных функциях и решениях, в том числе и о физической кнопке «Домой», получившей утешительную роль второго плана как резервный способ выбраться из ловушки для запутавшихся в приложении, об анимации, обеспечивающей связи приложений, начинающей и останавливающей приближение и удаление, в то время как при переходе к другому контенту приложение сдвигается в сторону.
Я бы мог продолжать и продолжать, и, если вы хотите почитать невразумительную юридическую терминологию, вы можете это сделать. Я сошлюсь на патент Соединенных Штатов Америки 7479949, который в разговорах с юристами Apple иногда называют «Патент-949», а в других разговорах — «патент на iPhone». Его официальное название: «Устройство с сенсорным экраном, метод и графический пользовательский интерфейс идентификации команд с использованием эвристических правил»{51}. Этот документ — официальное заявление Apple о новых свойствах и функциях программного обеспечения первого iPhone. 385 страниц патента заполнены диаграммами, графиками, схемами, примерами реализации и формулой изобретения. Эта подача заявки имела своей целью обеспечить всеохватывающий отчет о мультисенсорном пользовательском интерфейсе, а в его разделах подробно разбираются скучные подробности бесчисленных конкретных взаимодействий. Например, вот короткий отрывок, описывающий, как движения пальцев по сенсорному экрану могут быть интерпретированы в определенных ситуациях.
В некоторых примерах реализации изобретения направление перемещения непосредственно соответствует движению пальца; в других же реализациях, как бы то ни было, направление перемещения отображает направление движения пальца в соответствии с правилом. Например, правило может утверждать, что, если направление движения пальца отклоняется на Y градусов от стандартной оси, то направление перемещения идет вдоль стандартной оси, в ином же случае направление перемещения практически совпадает с направлением движения пальца{52}.
Забавно, как юридические описания iPhone не в силах передать никакие чувства, которые мы, команда разработчиков Purple, испытывали, выполняя свою работу. Но, конечно, патенты пишут не для того, чтобы вызывать улыбки на лицах людей. Тем не менее на самом высоком уровне «Патент-949» дает понять нечто фундаментальное, связанное с работой на пересечении наук. Прямо в его заглавии упомянут один из основных блоков такой работы — эвристические правила.
Мы использовали выражение «эвристические правила», чтобы описать особенности разработки программного обеспечения, связанные с гуманитарными науками. Его эквивалент — алгоритмы — используется в технических науках. Эвристические правила и алгоритмы — это словно две стороны одной монеты. И те и другие являются конкретными процедурами, заставляющими ПО делать то, что оно делает: ввод информации, выполнение операции и вывод информации. Тем не менее цели у них разные.
Алгоритмы производят количественно измеримые результаты, где прогресс можно определить движением в заранее определенном направлении, как в случае, когда мы почти год пытались повысить производительность Safari. Тест загрузки страницы сообщал, как работает наш код и выражал результат в одном числе — среднем времени загрузки страницы.
У нас постоянно была совершенно четкая цель — уменьшить это число. Она никогда не ставилась под вопрос. Чем быстрее, тем лучше.
То же самое можно было сказать о движении точки ввода в текстовом редакторе. Когда мерцающая линия помещается в конец английского слова в середине строки, нажатие клавиши «пробел» должно вставить пробел и передвинуть курсор вправо на один символ. Нет никаких споров по поводу того, правильно это или нет. Если после нажатия клавиши пробел не появляется, а точка ввода остается в прежней позиции — это ошибки. Алгоритмы работают так. Они объективны.
Эвристические правила также могут измеряться или иметь связанное с ними значение — продолжительность анимации или значения красного-зеленого-синего для цвета на экране, но в них нет такой «стрелки улучшения», которая всегда указывает в одном направлении. В отличие от оценочных алгоритмов, по эвристическим правилам труднее принять решение. Например, как быстро должна останавливаться прокрутка списка после того, как вы ее запустили? Мы всегда делали демоверсии, чтобы оценить все возможности. Я часто сидел с разработчиками команды HI, например, Басом или Имраном, чтобы принять предварительные решения по жестам или анимации, затем мы пересматривали эти решения в более крупной группе, а потом вся команда какое-то время пользовалась результатами этих решений. Эту схему мы использовали для того, чтобы разработать эвристические правила для всей системы.
Сколько времени должна занять анимация раскрытия ярлыка приложения, чтобы оно раскрылось на весь экран? Как далеко вы должны провести пальцем по экрану для того, чтобы это касание можно было интерпретировать как свайп? Насколько жест расширения позволяет вам увеличить фотографию в приложении «Фото»? Ответами на все эти вопросы будут числа, возможно, 0,35 секунды для анимации приложения, или 30 пикселей для свайпа, или четырехкратное увеличение для фотографии, но главное тут не в этом. Сами значения ничего не доказывают ни в каком инженерном смысле. Скорее эти цифры представляют собой разумные умолчания[42], или приятные эффекты, или способ дать людям то, что они имеют в виду, а не то, что они делают. Для обнаружения того, что представляют собой эти вещи и какие из них являются приемлемыми, нужно время, поскольку слово «эвристический» происходит от слова «эврика», которое, конечно же, пришло к нам из греческого и означает «найти». Именно здесь слово «эврика» входит в наш процесс разработки, поскольку хорошие эвристические правила не появляются в виде вспышек озарения, а являются результатом терпеливых поисков. Нам даже не всегда было понятно, что мы уже отыскали нужное эвристическое правило. К окончательному решению мы