Дизайнер: любой скриншот приложения должен иметь смысл. Тред: это невозможно
Никита Прокопов застопорил анимации macOS и iOS посреди кадра и показал промежуточные состояния, в которых нет смысла: рамка кадрирования едет, а картинка скачком меняет пропорции; курсор прилетает не оттуда. Его правило: каждый кадр обязан быть осмысленным.
Вердикт по свежему софту Apple жёсткий: неряшливые переходные кадры дают то самое ощущение неправильности, которое пользователь чувствует раньше, чем может назвать. Один читатель с высокой кармой согласился: Стив Джобс уволил бы за такое людей.
Возражения оказались острее. Один инженер хочет несовершенный кадр сейчас, а не идеальный потом, и считает главным приоритетом задержку. Другой замечает: блог самого автора анимирует ссылки уже после клика.
Правило и сломанные кадры за ним
В тексте Every Frame Perfect Никита Прокопов предлагает один тест на качество интерфейса: «Если я сделаю скриншот приложения в любой момент, он должен иметь смысл». Дальше он по шагам показывает, где свежий софт Apple проваливает этот тест. В инструменте кадрирования «Фото» рамка плавно анимируется, а картинка внутри мгновенно скачком меняет пропорции. Плейсхолдер Safari и текстовый курсор прилетают из позиций, в которых их никогда не было. Каждый пример — один кадр посреди анимации, который, если его заморозить, показывает состояние, в котором приложение на самом деле не находится.

Его аргумент: эти глитчи не косметика. Кадр, который врёт о состоянии приложения, создаёт лёгкое чувство неправильности, и пользователь считывает его как низкое качество, даже если не может объяснить почему. Один из читателей с самой высокой кармой в треде поддержал претензию к мастерству без оговорок:
«Примеры из Mac OS Tahoe показывают, насколько неряшливо сделана работа. Просто ленивая дрянь без внимания и заботы. Стив Джобс уволил бы кучу народу». — читатель об «зловещей долине» в iOS 26 и Tahoe
«Несовершенный кадр сейчас лучше идеального потом»
Самое сильное возражение переставило приоритеты целиком. Осмысленные кадры стоят времени, а время — то, чего отзывчивый интерфейс может позволить себе меньше всего:
«Я предпочту несовершенный кадр сейчас идеальному кадру потом. Задержка должна быть главным приоритетом любого интерфейса… анимации добавляют сотни миллисекунд задержки». — инженер, для которого низкая задержка ощущается как продолжение тела
Другой читатель счёл максиму саморазрушительной и развернул камеру обратно на сайт самого автора:
«Каждый кадр должен иметь смысл? Берусь утверждать, что это невозможно… Нажмите на ссылки в шапке его блога и увидите, как анимации проигрываются уже после завершения клика». — графический инженер, считающий аргумент слабо поданным
Возможно, максиму просто запомнили неверно
Встал и вопрос происхождения. У фразы «every frame is perfect» есть известный источник в графике, и один читатель доказывал, что её вывернули в утверждение, которого она никогда не делала:
«Вся посылка статьи неверна и выведена из неточной цитаты. Кристиан Хёгсберг в Wayland говорил, что его цель — система, в которой „каждый кадр идеален, под чем я понимаю… мы никогда не увидим разрывов, лагов, перерисовки или мерцания“». — комментатор, возводящий фразу к Wayland
Настоящая претензия в одежде абсолютного правила
Уберите лозунг, и останется правда: в свежих анимациях Apple видны швы, и люди, которые их замечают, ничего не выдумывают. Но «каждый кадр должен иметь смысл» ломается, едва на него надавишь: измените размер окна, кликните по ссылке, выбросьте кадр ради отзывчивости — и вы уже его нарушили. Полезная версия — не закон про скриншоты, а правило поуже: не анимируй состояние, в котором приложение никогда не было. Этот баг реален, исправим и ровно того сорта, что вскрывает замороженный кадр.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Ветеран Mozilla уходит после 12 лет и называет ловушку обратной связи, льстящую любой компании
Прощание Джей-Ара Конлина — не разнос с выжженной землёй. Его тезис тише и опаснее: организации получают завышенное одобрение спорных фич, потому что недовольные молча уходят, а не жалуются.