{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Пользовательский интерфейс",
    "_rss_description": "Принципы и методы Решение по-эпловски Ховер из овер",
    "_rss_language": "ru",
    "_itunes_email": "ilyabirman@ilyabirman.ru",
    "_itunes_categories_xml": "<itunes:category text=\"Arts\"><itunes:category text=\"Design\" \/><\/itunes:category>\r\n<itunes:category text=\"Society &amp; Culture\"><itunes:category text=\"Personal Journals\" \/><\/itunes:category>\r\n<itunes:category text=\"Technology\" \/>\r\n",
    "_itunes_image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic-square@2x.jpg?1573933764",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/ilyabirman.ru\/meanwhile\/tags\/ui\/",
    "feed_url": "https:\/\/ilyabirman.ru\/meanwhile\/tags\/ui\/json\/",
    "icon": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764",
    "authors": [
        {
            "name": "Илья Бирман",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/",
            "avatar": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764"
        }
    ],
    "items": [
        {
            "id": "6735",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/fresh-ideas-wont-help\/",
            "title": "Если интерфейс плохой, дело не в недостатке идей",
            "content_html": "<p>Оказался участником обсуждения некоего интерфейса. Пригласивший меня человек говорил, что им нужны свежие идеи. Мол, интерфейс плохой, и мы никак не можем придумать, как улучшить — уже всех дизайнеров в компании попросили предложить свои варианты, а всё равно чё-то не то. Говорит, может, ты каких-то ещё свежих идей принесёшь.<\/p>\n<p>Разумеется, как всегда оказалось, что дело не в недостатке свежих идей. Дело в том, что никто не хочет делать обычную работу проектировщика: выделять сценарии, применять теорию близости и закон Фиттса, редактировать текст. Хороший интерфейс появляется не в результате озарения, а в результате вдумчивого проектирования. Но, похоже, большинству людей это кажется скучным и занудным, и они мечтают, чтобы у них хороший интерфейс появился как-нибудь чудом.<\/p>\n",
            "summary": "Оказался участником обсуждения некоего интерфейса. Пригласивший меня человек говорил, что им нужны свежие идеи",
            "date_published": "2026-05-18T22:44:05+05:00",
            "date_modified": "2026-05-18T22:43:05+05:00",
            "tags": [
                "пользовательский интерфейс",
                "сценарный подход"
            ],
            "_date_published_rfc2822": "Mon, 18 May 2026 22:44:05 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6735",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6729",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/toasts-obstruct\/",
            "title": "Тосты загораживают интерфейс",
            "content_html": "<p>Плохим интерфейсом являются так называемые «тосты» — уведомления, временно выезжающие из-под низа. Разумеется, они являются частным случаем попапа, а значит, согласно теореме Горбунова о попапах, это самое тупое, что можно сделать.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/instagram-toasts@2x.jpg\" width=\"613\" height=\"655\" alt=\"\" \/>\n<\/div>\n<p>Когда публикуешь фотографию в экстремистской соцсети, а потом готовишься опубликовать ещё одну, соцсеть решает уведомить тебя тостом об успехе предыдущей публикации, и этот тост загораживает синюю кнопку публикации или перехода к следующему шагу. Очень точным движением тост можно смахнуть вниз, но если не научиться этому, то остаётся просто ждать несколько секунд, пока он исчезнет.<\/p>\n<p>Можно представить интерфейс, в котором уведомление именно такого вида и именно в этом месте будет наиболее удобно, но если такой вид уведомлений становится частью дизайн-системы и показать его становится вопросом одной строчки кода, то он неизбежно начнёт использоваться везде, ведь разработка кастомного удачного уведомления будет расцениваться как нецелесообразная трата ресурсов. Поэтому в хорошей дизайн-системе такого элемента просто не должно быть.<\/p>\n",
            "summary": "Плохим интерфейсом являются так называемые «тосты» — уведомления, временно выезжающие из-под низа. Разумеется, они являются частным случаем попапа, а значит",
            "date_published": "2026-05-12T20:54:18+05:00",
            "date_modified": "2026-05-12T20:57:57+05:00",
            "tags": [
                "пользовательский интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/instagram-toasts@2x.jpg",
            "_date_published_rfc2822": "Tue, 12 May 2026 20:54:18 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6729",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/instagram-toasts@2x.jpg"
                ]
            }
        },
        {
            "id": "6728",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/sort-vs-filter\/",
            "title": "Сортировка и фильтрация",
            "content_html": "<p>Заметил, что многие дизайнеры интерфейса не отличают сортировку и фильтрацию. Говорят: «тут можно отсортировать квартиры по конкретному району». Иногда это просто оговорка и на понимание не влияет. Но в моей жизни такие разговоры чаще всего случаются как раз в обсуждении деталей поведения сложных интерфейсов. За неверным выбором слов часто скрывается и недопонимание сути, а как следствие — фиговое проектирование.<\/p>\n<p>Сортировка — это когда у вас есть массив данных, и вы выбираете в каком порядке показывать эти данные: по убыванию цены, по возрастанию рейтинга или по дате изменения.<\/p>\n<p>Фильтрация — это когда у вас есть массив данных, и вы выбираете, какую его часть показать: только у моря и с завтраком, с массой в пределах от 0,5 до 3 масс Солнца или только содержащие подстроку «жопа».<\/p>\n<p>Если у вас 1183 записи, то как их ни сортируй, их останется 1183, а при фильтрации будет показана только их часть.<\/p>\n<p>Значения какого-то поля у многих записей могут совпадать, скажем, у сотни треков в музыкальной коллекции может быть один и тот же исполнитель. Тогда сортировка может быть вложенной, например треки можно отсортировать по названию исполнителя; внутри исполнителя — по дате релиза; внутри релиза — по произвольному порядковому номеру трека в релизе. Дать пользователю управлять такими нюансами в интерфейсе — нетривиальная задача.<\/p>\n<p>Ещё замечу, что когда мы говорим «сортировать по тому-то», мы можем иметь в виду как само поле, которое используется для упорядочивания (по имени), так и принцип этого упорядочивания (по убыванию, по алфавиту). Мы можем брать даже какую-то производную поля и уже её упорядочивать, например, можно отсортировать студентов по убыванию длины имени или города по возрастанию населения.<\/p>\n<p>Строго говоря, сортировка по алфавиту это тоже сортировка по производной поля: мы упорядочиваем по возрастанию порядковых номеров букв в алфавите. Причём это сортировка вложенная: все слова, у которых первая буква одинаковая, мы ещё сортируем по возрастанию порядковых номеров вторых букв в алфавите и так далее. Разумеется, мы об этом не задумываемся, когда говорим «сортировать по алфавиту», но это полезно понимать для стройности мыслей при проектировании сложных систем.<\/p>\n<p>Путаница между сортировкой и фильтрацией возникает потому, что и то и другое связано с полями отображаемых записей. Какая-нибудь вклада «новые» в интерфейсе может как сортировать сообщения по времени, например, показывать более новые в начале, так и фильтровать их, например, показывать только добавленные с прошлого раза.<\/p>\n<p>Отсортировать по району можно: сначала показать записи из Аннина, потом из Бутова, потом из Внукова. Придётся ещё решить, как сортировать записи уже внутри района, ведь их явно будет много в каждом. Но вот отсортировать «по конкретному району» невозможно: это всё равно что отсортировать всех по конкретному росту 172 см.<\/p>\n<p>Когда вы проектируете систему, в которой люди будут работать со сложными данными, у вас должны быть сценарии использования, связанные с необходимостью взгляда на эти данные под разным углом, и понимание буквального смысла каждого из этих углов. Если вы путаетесь в сортировке и фильтрации, скорее всего, у нас нет ясности о том, что именно человек сможет увидеть в интерфейсе и каким образом он этого добьётся.<\/p>\n",
            "summary": "Заметил, что многие дизайнеры интерфейса не отличают сортировку и фильтрацию. Говорят: «тут можно отсортировать квартиры по конкретному району»",
            "date_published": "2026-05-12T11:58:59+05:00",
            "date_modified": "2026-05-12T11:58:51+05:00",
            "tags": [
                "пользовательский интерфейс",
                "ясность"
            ],
            "_date_published_rfc2822": "Tue, 12 May 2026 11:58:59 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6728",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6727",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/github-desktop-verify-identity\/",
            "title": "Гитхаб-десктоп зачем-то пытается верифицировать идентичность",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/github-desktop-verify-identity@2x.jpg\" width=\"617\" height=\"344\" alt=\"\" \/>\n<\/div>\n<p>Гитхаб-десктоп зачем-то всё время пытается верифицировать идентичность какого-то своего сервера. И если у него это не получается, то он мне об этом сообщает, фокусируя собственное окно поперёк всего.<\/p>\n<p>А мне вообще насрать, дорогой, я даже не смотрел в тебя последние две недели! Ну не побегу я щас разбираться, чего тебе не хватает или почему не работает интернет.<\/p>\n<p>Да и даже если бы я что-то делал в Гитхаб-десктопе прямо сейчас. Дался ему этот сервер! Я не пользуюсь гитхабом, у меня репозиторий вообще в другом месте.<\/p>\n",
            "summary": "Гитхаб-десктоп зачем-то всё время пытается верифицировать идентичность какого-то своего сервера. И если у него это не получается, то он мне об этом сообщает",
            "date_published": "2026-05-10T20:20:51+05:00",
            "date_modified": "2026-05-10T20:20:40+05:00",
            "tags": [
                "модальность",
                "пользовательский интерфейс",
                "привычка"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/github-desktop-verify-identity@2x.jpg",
            "_date_published_rfc2822": "Sun, 10 May 2026 20:20:51 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6727",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/github-desktop-verify-identity@2x.jpg"
                ]
            }
        },
        {
            "id": "6725",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/saved-for-later\/",
            "title": "Интерфейсное место для отложенного на потом",
            "content_html": "<p>Интерфейсы постоянно донимают людей и что-то им предлагают, как назойливые торговцы на популярных пляжах. И часто у них встречаются кнопки типа «Потом», «В другой раз», «Не сейчас».<\/p>\n<p>Понятно, что обычно это просто такое «Нет», которое как бы оставляет авторам моральное право спросить ещё раз. Как если бы ты позвал девушку на свидание, а ей было бы запрещено говорить «нет»; максимум «в другой раз».<\/p>\n<p>Но я снова хочу рассмотреть случай, когда я действительно заинтересовался предложением и хочу его изучить, просто не сейчас. Проблема, напомню, в том, что когда у меня будет время, я нигде ваше предложение не найду.<\/p>\n<p>Раз уж у всех операционных систем уже есть подсистема уведомлений, то что, если мы там предусмотрим стандартное место для всего, что «Не сейчас»? Чтобы я хотя бы смог вернуться и найти там то, что ранее отмёл.<\/p>\n<p>Если я жму «Потом», то я хочу сам контролировать, когда это потом наступит, а не ждать, что какая-то внешняя сила решит, когда пристать ко мне снова.<\/p>\n",
            "summary": "Интерфейсы постоянно донимают людей и что-то им предлагают, как назойливые торговцы на популярных пляжах",
            "date_published": "2026-05-09T20:26:28+05:00",
            "date_modified": "2026-05-09T09:08:36+05:00",
            "tags": [
                "пользовательский интерфейс"
            ],
            "_date_published_rfc2822": "Sat, 09 May 2026 20:26:28 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6725",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6717",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/kak-vlezat-k-polzovatelyu-so-svoey-fignyoy\/",
            "title": "Как влезать к пользователю со своей фигнёй",
            "content_html": "<p>Есть разные способы рассказывать пользователю о своих новых фичах, часть из них плохие, а часть — нормальные. Предлагаю простой критерий для отделения плохих вариантов от нормальных без использования слова «попап» и вообще интерфейсных терминов и моральных оценок. Важно понять суть конфликта и использовать действующие силы максимально эффективно.<\/p>\n<p>Вот вы сообщаете, что у вас что-то новое, приглашаете этим воспользоваться.<\/p>\n<p>Вопрос: есть ли у пользователя очевидная возможность всё-таки продолжить делать то, за чем он пришёл, <i>не теряя ваше сообщение?<\/i> Вот почему это важно для бизнес-целей вашего сообщения.<\/p>\n<p><b>Если пользователь может продолжить своё, только отклонив ваше,<\/b> то у сообщения очень мало шансов заинтересовать, ведь желание его закрыть огромно — всё внимание направлено на избавление, а не на суть сообщения. Получается, вы вызываете раздражение у <i>каждого<\/i> пользователя, но за эту цену обращаетесь лишь <i>к немногим<\/i>.<\/p>\n<p>Более того, рассмотрим отдельно этих немногих, кто всё-таки успел заинтересоваться. Им теперь нужно <i>выбирать<\/i> между вашим сообщением и тем, что они хотели изначально! Им нужно и то и то, но они вынуждены взять что-то одно. Ваше сообщение должно не просто заинтересовать и пробиться сквозь раздражение; оно должно разгромно выиграть конкуренцию с изначальным намерением пользователя! Получается абсурд: для пользователя лучше, чтобы ваше сообщение оказалось бесполезным, тогда он хотя бы просто отмахнётся от него и испытает меньше страданий.<\/p>\n<p>Если пользователь может продолжить своё, только отклонив ваше, вы вызываете максимум раздражения и получаете минимум полезного эффекта.<\/p>\n<p><b>Если пользователь может продолжить своё, не отклоняя ваше,<\/b> то на пользователя никак не давит необходимость сделать выбор. Ваше сообщение не мешает ему продолжать делать своё дело, а значит его внимание не тратится на избавление от вашего сообщения. Освободившееся внимание может быть потрачено на суть сообщения, а значит сообщение с большей вероятностью заинтересует.<\/p>\n<p>Более того, все те, кого ваше сообщение заинтересовало, смогут воспользоваться предложением в нём, причём независимо от того, выиграло ли оно конкуренцию с исходным планом. Если выиграло разгромно, пользователь с радостью пойдёт за вами. Если просто заинтересовало, пойдёт или сначала за вами, потом по своим делам, или наоборот. Если вообще не заинтересовало, оно вызвало намного меньше раздражения, потому что ничему не помешало.<\/p>\n<p>Если пользователь может продолжить своё, не отклоняя ваше, вы вызываете минимум раздражения и получаете максимум полезного эффекта.<\/p>\n<p>Итак, не так важно, какие именно элементы интерфейса вы используете. Просто проверьте, вынуждаете ли вы пользователя отмахиваться от вас или всё-таки даёте себе шанс получить достаточное внимание.<\/p>\n",
            "summary": "Есть разные способы рассказывать пользователю о своих новых фичах, часть из них плохие, а часть — нормальные",
            "date_published": "2026-04-22T22:42:39+05:00",
            "date_modified": "2026-04-22T22:45:33+05:00",
            "tags": [
                "дизайн продуктов",
                "пользовательский интерфейс"
            ],
            "_date_published_rfc2822": "Wed, 22 Apr 2026 22:42:39 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6717",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6703",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/skeleton-state\/",
            "title": "«Скелет» как состояние компонента и экрана",
            "content_html": "<p>Столкнулся с дизайн-системой, где у всех компонентов отрисованы состояния «скелет» — это типа как выглядит элемент, пока он не загрузился. Дизайнеры вообще говорили «скелетон», но скелетон — это такой бобслей для одиночек, а skeleton — это скелет. С этим состоянием есть проблема, сейчас объясню.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/skeleton@2x.png\" width=\"478\" height=\"156\" alt=\"\" \/>\n<\/div>\n<p>Пока экран приложения загружается, вместо индикаторов загрузки хорошо показывать скелет экрана. Тогда вместо того, чтобы привлекать внимание к тормозам, мы создаём у пользователя впечатление, что экран почти загрузился. Секундные задержки перестают ощущаться, человек успевает сориентироваться на экране.<\/p>\n<p>Так что же не так с состоянием компонента «скелет»? То, что скелет — это состояние экрана целиком, а не отдельного компонента. (Если уж на то пошло, у компонента может быть состояние «кость», а не «скелет».)<\/p>\n<p>Во-первых, рисование отдельных скелетных состояний компонентов провоцирует дизайнеров на рисование излишне детализированных скелетов экранов. Вот Вконтакте например:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vk-skeleton-detailed@2x.png\" width=\"1024\" height=\"844\" alt=\"\" \/>\n<\/div>\n<p>Зачем столько мусора? Чтобы показать, что экран ещё грузится, достаточно такого:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vk-skeleton-sane@2x.png\" width=\"1024\" height=\"844\" alt=\"\" \/>\n<\/div>\n<p>Да и ещё спокойнее можно.<\/p>\n<p>Во-вторых, во время загрузки экрана он обычно не знает, какие именно компоненты на нём будут, чем они будут наполнены, какого они будут размера. То есть даже непонятно, какие именно компоненты в этом состоянии «скелет» туда ставить, приходится выдумывать. В то же время, если какие-то элементы на экране нужны независимо от подгружаемых данных, скажем, кнопки навигации, то их стоит сразу показывать в нормальном виде, безо всяких скелетов.<\/p>\n<p>В-третьих, даже если представить, что сам набор элементов известен сразу, а подгружается только их наполнение, то получается довольно неприятный эффект, когда во время загрузки на экране в случайные моменты появляются разные блоки, постоянно что-то прыгает, отталкивает то, что ниже. То есть даже в этом случае лучше нарисовать весь экран в скелетном состоянии, а когда загрузилось достаточно данных для его стабильного построения — тогда показать всё на своих местах.<\/p>\n",
            "summary": "Столкнулся с дизайн-системой, где у всех компонентов отрисованы состояния «скелет» — это типа как выглядит элемент, пока он не загрузился",
            "date_published": "2026-03-31T12:38:47+05:00",
            "date_modified": "2026-04-01T00:35:20+05:00",
            "tags": [
                "обратная связь",
                "пользовательский интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/skeleton@2x.png",
            "_date_published_rfc2822": "Tue, 31 Mar 2026 12:38:47 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6703",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/skeleton@2x.png",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vk-skeleton-detailed@2x.png",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vk-skeleton-sane@2x.png"
                ]
            }
        },
        {
            "id": "6636",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/kniga-andreya-markelova-putevoditel-po-knopkam\/",
            "title": "Книга Андрея Маркелова «Путеводитель по кнопкам»",
            "content_html": "<p>Прочитал книгу Андрея Маркелова <a href=\"https:\/\/alpinabook.ru\/catalog\/book-putevoditel-po-knopkam\/\" class=\"nu\">«<u>Путеводитель по кнопкам<\/u>»<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/putevoditel-po-knopkam.jpg\" width=\"1200\" height=\"1200\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Картинка с сайта издательства<\/div>\n<\/div>\n<p>Никогда не слышал об Андрее Маркелове, а он вдруг написал большую книгу об интерфейсе.<\/p>\n<p>В целом книга полезная, и я рекомендую её прочитать всем дизайнерам интерфейса после того, как они прочитают <a href=\"https:\/\/bureau.ru\/projects\/book-ui\/\">мою книгу<\/a>.<\/p>\n<p>И всё же к книге есть вопросы. Во-первых, я несогласен с некоторыми мыслями:<\/p>\n<ul>\n  <li>Андрей пишет, что «не видит повода не делать ховер у кнопки». А повод такой: это лишнее мельтешение. Дизайн должен быть таким, что я без ощупывания понимал, где кнопка. Если это непонятно, нужно улучшить дизайн кнопки. А если понятно, то нафига ей ещё и ховер?<\/li>\n  <li>Называет «ошибкой», когда в дизайн-системах полям предусматривают состояние «в фокусе». Вот это поворот! В обоснование говорит, что на Маке это всё равно не работает. Так надо починить Мак, а не ломать всё остальное, Андрей!<\/li>\n  <li>В чекбоксах Андрей зачем-то вводит вариант на плашке с обводкой вокруг чекбокса вместе с его текстом. Типа у других элементов есть некое прямоугольное воплощение, и поэтому, чтобы в дизайн-системе у всех был одинаковый набор вариантов, пусть и у чекбоксов тоже будет. Но ведь дизайн-система должна отвечать задачами дизайна, а не наоборот. Чекбокс на плашке — лишнее усложнение и загрязнение. В отдельных случаях группу чекбоксов можно завернуть в филдсет, если хочется.<\/li>\n  <li>Пишет, что радиокнопки и чекбоксы в интерфейсах смешались, но типа ничё страшного, ведь из контекста и так понятно. Но ведь должно быть понятно и без контекста. В этом смысл разных элементов управления, чтобы было сразу видно, что с ними делать, чтобы не приходилось гадать «из контекста». Кроме того, он дальше сам рассуждает, что мол пользователи не замечают эту проблему так же, как мозг автоматически исправляет опечатку. Ну так определись с аналогией: это опечатка или правильная орфография, ёлки? А то выходит, что опечатки это окей, раз всё понятно из контекста.<\/li>\n  <li>В главе про выпадающий список пишет, что в системе Виндоус выпадающий список называется комбобоксом (что?), хотя спустя всего несколько страниц вдруг сам вспоминает, что комбобокс — это поле ввода со встроенным списком вариантов.<\/li>\n  <li>Горизонтальный переключатель, который segmented control, Андрей по-русски называет «Сегмент кнопок». Ни разу за всю жизнь не встречал такого термина у русскоговорящих дизайнеров. Я вообще всегда думал, что в segmented control сегментами называют отдельные варианты. Типа, «сегментированный» элемент, из нескольких сегментов состоит. А он называет всю эту штуку «сегментом». В каких-то местах, что ещё более странно, «сегментом кнопок» он называет и просто группу кнопок, каждую из которых можно включать независимо (как например включатели жирности-курсива-подчёркивания в редакторах).<\/li>\n<\/ul>\n<p>Во-вторых, книга написана как-то по-дурацки:<\/p>\n<ul>\n  <li>Рассказывая об истории интерфейсов, Андрей вводит какие-то эпохи, «наши эры». И мало того, что он зачем-то это придумал, так ещё и меня вынуждает в эту игру играть. Он вдруг между делом пишет что-то, что вид радиокнопок изменился в Средневековье, а я должен понять, что он имеет в виду под этим Средневековьем. Разумеется, не листаю назад, где он это объяснял, а просто пропускаю это предложение, как лишённое смысла.<\/li>\n  <li>Андрей пишет, что что-то там встречается «в живой природе» или даже буквально «in vivo». Имеется в виду, в жизни, в настоящих интерфейсах. Графомания.<\/li>\n  <li>О себе Андрей пишет в третьем лице («автор уверен, что»), но иногда вдруг съезжает в первое («я»), что делает очень комичным использование третьего. Иногда это буквально в соседних предложениях, как например в начале страницы 75.<\/li>\n  <li>В книге встречается несуществующее слово «троеточие» (знак «...» называется «многоточием»).<\/li>\n<\/ul>\n<p>Прочие наблюдения:<\/p>\n<ul>\n  <li>Когда делают ввод всяких пинкодов, где каждая цифра вводится в своё отдельное поле, он это называет «Сегмент полей». Это снова очень странно, слово сегмент по-русски не может так работать, но вообще полезно, конечно, дать этой штуке название. Наверное, сегментированное поле может быть какие-то условно-рабочим вариантом.<\/li>\n  <li>Андрей рассказывает о пользе нескольких вариантов внешнего вида вкладок в одной дизайн-системе, что позволяет организовать их наглядную иерархию. Это классная мысль, которую я до этого нигде не встречал. Это очень похоже на то, как делают иерархию заголовков в хорошем издании.<\/li>\n  <li>Элементы управления окном в Вижене-про расположены снизу, и он их называет «подоконником», это клёво.<\/li>\n  <li>Было интересно про контролы в «Ньютоне» и всякие старые интерфейсы.<\/li>\n<\/ul>\n<p>Когда в десятый раз встречаешь в книге пример, аналогию или замечание как в моей книге, начинаешь думать, что Андрей её прочитал и она запала ему в душу!<\/p>\n",
            "summary": "Прочитал книгу Андрея Маркелова «Путеводитель по кнопкам»",
            "date_published": "2026-03-28T23:18:50+05:00",
            "date_modified": "2026-03-30T10:45:10+05:00",
            "tags": [
                "книги",
                "пользовательский интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/putevoditel-po-knopkam.jpg",
            "_date_published_rfc2822": "Sat, 28 Mar 2026 23:18:50 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6636",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/putevoditel-po-knopkam.jpg"
                ]
            }
        },
        {
            "id": "6691",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/start-typing-x\/",
            "title": "Начните вводить Х",
            "content_html": "<p>Иногда встречаю подписи у полей типа «Начните вводить Х». Имеется в виду, что не нужно вводить целиком. Только начнёшь печатать «Пу», и оно там как-то угадает и поможет дописать, что это «Улица Пушкина».<\/p>\n<p>Очень хорошо, что поле угадывает и помогает, но не нужно хвастаться этим в подписи. А то выходит, что первые два слова подписи рассказывают не о содержании, а о типе и поведении элемента интерфейса.<\/p>\n<p>Если у вас поле, куда надо ввести адрес, оно должно называться «Адрес». То, что в него нужно «вводить», должно быть и так ясно, ведь это поле! Если неясно, нарисуйте поле нормально. А то, что достаточно «начать», я и так увижу, когда начну вводить, а оно подскажет. Я же в любом случае начну? Ну и всё.<\/p>\n",
            "summary": "Иногда встречаю подписи у полей типа «Начните вводить Х». Имеется в виду, что не нужно вводить целиком",
            "date_published": "2026-03-21T12:43:49+05:00",
            "date_modified": "2026-03-21T13:37:11+05:00",
            "tags": [
                "пользовательский интерфейс",
                "синтаксис интерфейса",
                "студентам"
            ],
            "_date_published_rfc2822": "Sat, 21 Mar 2026 12:43:49 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6691",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6688",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/trust-the-user\/",
            "title": "Доверяй пользователю",
            "content_html": "<p>На Маке окно можно задвинуть вниз за границу экрана, чтобы из-под низа торчал только заголовок. Но при каких-то условиях система, видимо, считает это «ошибкой» пользователя и исправляет её: окно вдруг снова оказывается целиком на экране. Наверное пользователь поставил так окно случайно и потерял его? Сейчас я ему помогу всё сделать правильно!<\/p>\n<p>Эффект, разумеется, противоположный. То, что оно теперь вылезло целиком, сделало его невидимым среди десятка других подобных окон. Я же ищу его среди торчащих снизу ушей, ведь я оставлял его именно там!<\/p>\n<p>Пользователю надо доверять. Если ты сделал фичу и человек ей воспользовался, не надо вдруг решать, что он это сделал случайно, и ломать фичу. Или не давай «плохую», на твой взгляд, фичу вовсе, или не мешай ей пользоваться.<\/p>\n<p>На днях по работе было подобное обсуждение. Пользователь может закрепить некоторые строчки в списке. Но вот проблема: «если он в фильтрах выбрал что-то другое, эти строчки могут сбить его с толку, ведь они не соответствуют фильтру, так что давайте их тогда откреплять». Да с чего? Он же сам их закрепил! Смысл закрепления в том, чтобы видеть их всегда, несмотря ни на что! Если мы считаем, что закрепление мешает поиску, значит надо сделать их в разных частях интерфейса. Но абсурд же сначала давать человеку закреплять, а потом вдруг решать, что нам виднее, и откреплять.<\/p>\n<p>См. также:<\/p>\n<ul>\n  <li><a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/let-me-click\/\">Дай нажать<\/a><\/li>\n<\/ul>\n",
            "summary": "На Маке окно можно задвинуть вниз за границу экрана, чтобы из-под низа торчал только заголовок. Но при каких-то условиях система, видимо, считает это «ошибкой» пользователя и исправляет её",
            "date_published": "2026-03-19T23:26:26+05:00",
            "date_modified": "2026-03-19T23:25:57+05:00",
            "tags": [
                "пользовательский интерфейс",
                "студентам"
            ],
            "_date_published_rfc2822": "Thu, 19 Mar 2026 23:26:26 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6688",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6685",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/posadochny-v-rayaneyre\/",
            "title": "Посадочный в Раянэйре",
            "content_html": "<p>В продолжение темы <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/pyatyorochka-zhiznmart\/\">загрузки Пятёрочки и Жизнь-марта<\/a> — Андрей Пулин прислал скриншот приложения Раянэйра, если его запустить, когда оно требует обновления. Посадочный всё равно доступен:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/ryanair-care.jpg\" width=\"402\" height=\"874\" alt=\"\" \/>\n<\/div>\n<p>Много вопросов вызывают приложения, которым настолько надо обновиться, что они перестают работать, но уж хотя бы так.<\/p>\n",
            "summary": "В продолжение темы загрузки Пятёрочки и Жизнь-марта — Андрей Пулин прислал скриншот приложения Раянэйра, если его запустить, когда оно требует обновления",
            "date_published": "2026-03-18T11:42:42+05:00",
            "date_modified": "2026-03-18T11:41:03+05:00",
            "tags": [
                "пользовательский интерфейс",
                "сценарный подход"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/ryanair-care.jpg",
            "_date_published_rfc2822": "Wed, 18 Mar 2026 11:42:42 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6685",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/ryanair-care.jpg"
                ]
            }
        },
        {
            "id": "6684",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/pyatyorochka-zhiznmart\/",
            "title": "Загрузка Пятёрочки и Жизнь-марта",
            "content_html": "<p>У магазина «Пятёрочка» есть приложение. Я понятия не имею, зачем магазину приложение, да и не сказать, что интересуюсь этим вопросом. Единственное, зачем я им пользуюсь — показать скидочный куаркод на кассе. Разумеется, именно этот сценарий в приложении реализован максимально через жопу.<\/p>\n<p>Вот вам раскадровка:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/pyatyorochka-loading.jpg\" width=\"2412\" height=\"874\" alt=\"\" \/>\n<\/div>\n<p>Когда запускаешь приложение, оно показывает тупую заставку и о чём-то усиленно думает. Потом вылезает уведомление о медленном соединении (с орфографической ошибкой). Через какое-то время начинает грузиться главный экран. Там куча каких-то разделов, все из которых не нужны. Спустя ещё несколько секунд главный экран продолжает грузиться уже иначе: снизу появляются красные кружочки (прогрузились, видимо), зато сверху исчезают иконки (разгрузились обратно, видимо). Напоминаю, что всё это время кассир ждёт, что ты ему покажешь куаркод.<\/p>\n<p>Соединение восстановлено! Ну надо же! Благодаря этому удалось загрузить квадратик, в котором в будущем появится куаркод (но не сам куаркод, конечно, ведь это огромные объёмы данных). О, вот и куаркод. Ура? Ну нет конечно, такой маленький куаркод не просканируется, проверено. В него ещё надо нажать, чтобы он увеличился. Жму! Из-под низа выезжает панелька, где в будущем появится увеличенный куаркод. Казалось бы, он же уже загрузился, почему он не показывается сразу? Ну почему-почему, много вопросов задаёшь. Люди в очереди с понимаем ждут.<\/p>\n<p>Каждому из этих решений наверняка есть объяснение. Со стороны-то легко критиковать. А вот если бы я разобрался во всех нюансах, то и сам бы понял, что нельзя было сделать иначе.<\/p>\n<p>Но вот приложение магазина «Жизнь-март». Знаете как там выглядит заставка при запуске? А вот так:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/zhiznmart-loading.jpg\" width=\"402\" height=\"874\" alt=\"\" \/>\n<\/div>\n<p>Просто сразу подносишь к сканеру и скидка срабатывает.<\/p>\n<p>Хм. Да, наверное, всё-таки можно сделать нормально.<\/p>\n",
            "summary": "У магазина «Пятёрочка» есть приложение. Я понятия не имею, зачем магазину приложение, да и не сказать, что интересуюсь этим вопросом",
            "date_published": "2026-03-17T15:19:06+05:00",
            "date_modified": "2026-03-17T15:22:20+05:00",
            "tags": [
                "пользовательский интерфейс",
                "сценарный подход"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/pyatyorochka-loading.jpg",
            "_date_published_rfc2822": "Tue, 17 Mar 2026 15:19:06 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6684",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/pyatyorochka-loading.jpg",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/zhiznmart-loading.jpg"
                ]
            }
        },
        {
            "id": "6679",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/think-on-60\/",
            "title": "Думаем дальше № 60 — «Тоталитарная секта тестировщиков гипотез» с Михаилом Руденко",
            "content_html": "<p>С Михаилом Руденко говорим о привычках, пороге входа, навязывании решений дизайнером и учитывании пожеланий пользователей.<\/p>\n<p>Все выпуски подкаста:<br \/>\n<a href=\"https:\/\/podcasts.apple.com\/us\/podcast\/думаем-дальше\/id1744862171\">Эпл<\/a> · <a href=\"https:\/\/www.youtube.com\/playlist?list=PLl7kvlp_qh0j9uzQGU2ws4DkBWdbjY1_d\">Ютюб<\/a> · <a href=\"https:\/\/music.yandex.com\/album\/29069497\">Я.Музыка<\/a> · <a href=\"https:\/\/open.spotify.com\/show\/7i4OkUq55wAC1iyZYEshmi\">Спотифай<\/a> · <a href=\"https:\/\/thinkon.mave.digital\">Мейв<\/a> · <a href=\"https:\/\/cloud.mave.digital\/51724\">РСС для подкастного приложения<\/a><\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n  <tr>\n    <td style=\"text-align: right\">0:00<\/td>\n    <td style=\"text-align: left\">Спор о поведении пробела в аудиоредакторах<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">26:43<\/td>\n    <td style=\"text-align: left\">Оказывается, мы спорили зря<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">31:55<\/td>\n    <td style=\"text-align: left\">Нужно ли снижать порог входа в сложные продукты<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">40:41<\/td>\n    <td style=\"text-align: left\">Илья защищает точку зрения Михаила. Разговор о картине мира пользователя и навязывании правильных решений<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">48:14<\/td>\n    <td style=\"text-align: left\">История про импортозамещённый мессенджер<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">54:36<\/td>\n    <td style=\"text-align: left\">Как спрашивать, что хотят пользователи, и как интерпретировать их пожелания<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">58:42<\/td>\n    <td style=\"text-align: left\">Искусство спора<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:00:47<\/td>\n    <td style=\"text-align: left\">Операторы эволюции, девелопмент со смыслом и почему не нужно использовать лучшие практики<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:16:20<\/td>\n    <td style=\"text-align: left\">Приложение принципа Юма к продуктовым метрикам<\/td>\n  <\/tr>\n<\/table>\n",
            "summary": "С Михаилом Руденко говорим о привычках, пороге входа, навязывании решений дизайнером и учитывании пожеланий пользователей",
            "date_published": "2026-03-11T19:05:00+05:00",
            "date_modified": "2026-03-11T19:04:52+05:00",
            "tags": [
                "дизайн продуктов",
                "Думаем дальше",
                "исследования",
                "пользовательский интерфейс"
            ],
            "_date_published_rfc2822": "Wed, 11 Mar 2026 19:05:00 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6679",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6674",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/napishi-otlozhennoe-soobschenie\/",
            "title": "Напиши отложенное сообщение",
            "content_html": "<p>В телеге можно написать отложенное сообщение — придёт адресату в указанное время. При этом есть такой сценарий: просишь человека о чём-то, а он сейчас не может сделать, и просит ему напомнить завтра утром. Тогда ты сразу же пишешь сообщение на завтра утром, мол, «напоминаю» (сам при этом утром спишь).<\/p>\n<p>Но поскольку все про это знают, то иногда сам адресат может сказать не «напомни», а прямо «будь добр, напиши отложку!». И вот это уже бред, ведь получается, что он использует интерфейс установки самому себе напоминалки через текст в чате!<\/p>\n<p>По-моему, в телеге должна появиться функция «напомнить об этом сообщении». То есть тебе что-то написали, ты жмёшь на это сообщение и прям сам выбираешь, когда тебе о нём же ещё раз уведомление прислать. А другую сторону не трогаешь этим.<\/p>\n",
            "summary": "В телеге можно написать отложенное сообщение — придёт адресату в указанное время. При этом есть такой сценарий",
            "date_published": "2026-03-06T23:01:31+05:00",
            "date_modified": "2026-03-06T23:01:18+05:00",
            "tags": [
                "пользовательский интерфейс",
                "сценарный подход",
                "Телеграм"
            ],
            "_date_published_rfc2822": "Fri, 06 Mar 2026 23:01:31 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6674",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6672",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/minus-plus-trashcan\/",
            "title": "Настройка количества товаров с мусоркой",
            "content_html": "<p>Иногда встречается такой дизайн элемента для настройки количества товаров в корзине, где вместо минуса рисуют мусорку — мол, товар уже удалится, а не просто уменьшится количество:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/minus-plus-trashcan@2x.png\" width=\"107\" height=\"36\" alt=\"\" \/>\n<\/div>\n<p>Сначала это кажется логичным, ведь уменьшение количества и удаление — разные вещи, и выглядеть должны по-разному. Возможно, кто-то из дизайнеров в этом видит возможность дополнительно предупредить об удалении. Наверное, кому-то просто кажется остроумной такая динамичность.<\/p>\n<p>Но вообще-то хорошо бы, чтобы при уменьшении количества до нуля, товар не удалялся сразу: у пользователя должно быть право на ошибку и возможность вернуть товар обратно. Если же удаление товара неотменяемое, то превращение минуса в мусорку не поможет предотвратить ошибку; тогда надо дисейблить минус, а кнопку удаления ставить отдельно. Что касается остроумности, то это только в голове дизайнера мусорка — частный случай минуса для одного значения, но для пользователя изначально никакого минуса нет, а есть лишь эта мусорка, ведь обычно количество будет «1 шт.».<\/p>\n<p>Короче, не рекомендую так делать. Элемент хуже узнаётся, ощущается нестабильным и не решает никакой задачи.<\/p>\n",
            "summary": "Иногда встречается такой дизайн элемента для настройки количества товаров в корзине, где вместо минуса рисуют мусорку — мол, товар уже удалится, а не просто уменьшится количество",
            "date_published": "2026-03-03T11:31:29+05:00",
            "date_modified": "2026-03-03T11:23:18+05:00",
            "tags": [
                "пользовательский интерфейс",
                "привычка"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/minus-plus-trashcan@2x.png",
            "_date_published_rfc2822": "Tue, 03 Mar 2026 11:31:29 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6672",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/minus-plus-trashcan@2x.png"
                ]
            }
        },
        {
            "id": "6665",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/auto-try-same-password\/",
            "title": "Попробовать тот же пароль к другому вайфаю",
            "content_html": "<p>Вот пример обычного, неэкзотического сценария, который и Мак, и Айфон полностью игнорируют: когда знаешь пароль от вайфая, но не уверен в самой сети.<\/p>\n<p>Такое бывает в кафешках и отелях. Есть куча похожих сетей с подчёркиваниями, разной заглавностью, приписками типа «гест», «фри», «опен», «лобби», «ворк», «5ггц», «3-й этаж», а тебе дали только пароль. Тыкаешь в одну сеть, вводишь пароль, а он не подходит, или сама сеть еле живая. Пробуешь другую — спрашивает пароль заново. Казалось, ну сделайте тупой правило: если я пытаюсь подключиться к закрытой сети, а за последние пять минут я уже к какой-то пробовал подключиться, попробуйте молча тот же пароль. Но нет.<\/p>\n<p>И это пример фичи, про которую Стив Джобс рассказал бы на презентации вот так же с примером, и все бы аплодировали, что только Эпл такие штуки делает. Безо всякого ликвид-гласса, вообще ноль видимых элементов интерфейса на экране. Сейчас искусство просто подумать о пользователе и сделать удобно, без особых фанфар, утеряно.<\/p>\n",
            "summary": "Вот пример обычного, неэкзотического сценария, который и Мак, и Айфон полностью игнорируют: когда знаешь пароль от вайфая, но не уверен в самой сети...",
            "date_published": "2026-02-21T16:22:22+05:00",
            "date_modified": "2026-02-21T16:21:26+05:00",
            "tags": [
                "пользовательский интерфейс",
                "сценарный подход"
            ],
            "_date_published_rfc2822": "Sat, 21 Feb 2026 16:22:22 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6665",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6662",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/i-know-better\/",
            "title": "Стой, я лучше знаю: сломанная модель поиска в Ай-ОСе 26",
            "content_html": "<p>Андрей Пулин пишет о поведении поиска в Ай-ОСе 26, которую он назвал «Стой, я лучше знаю»:<\/p>\n<blockquote>\n<p>Поле поиска появляется, но оно не в фокусе. Вместо этого на экране появляется какая-то подборка того, что, по мнению системы, могло бы тебя устроить и без поиска, например какие-то предложения. Так работает лупа в аппсторе и музыке. Как это выглядит для меня: я нажимаю на лупу и готов уже печатать, но система останавливает меня от этого. Она говорит мне «Бротан, ты наверное хочешь найти что-то, но сдаётся мне, что я знаю лучше. Вот посмотри, какие классные штуки, может, и не надо ничего искать». А потом я замечаю внизу поле поиска, в которое превратилась лупа.<\/p>\n<p>Система пытается выработать у меня привычку тапать на поиск дважды. Эта привычка тоже плохо работает, потому что часть поисковых полей в iOS 26 содержат в правой части микрофон и создание новой сущности (смс), а часть не содежит микрофона, но вместо новой сущности у них кнопка закрытия поля поиска. Я за полгода так и не смог привыкнуть к этому говну.<\/p>\n<\/blockquote>\n<p>Это пример того, как интерфейс не просто ломает привычку, а ещё и не даёт выработать новую. Причём проблема возникает в две стороны. С одной стороны, как пишет Андрей, теперь нельзя положиться на работу поиска, потому что вместо поиска показывают что-то другое. Но с другой, то самое «другое», теперь тоже невозможно открыть нормальным способом.<\/p>\n<p>Я на днях в приложении «Здоровье» пытался что-то найти в статистике заплывов, а этот раздел тупо исчез: в последней версии там только саммари и настройка шаринга. А где не саммари, а вообще все данные-то? Оказалось, в «поиске»: когда жмёшь на лупу, на самом деле открывается не поиск, а какие-то спрятанные туда разделы. Ну не козлы ли?<\/p>\n",
            "summary": "Андрей Пулин пишет о поведении поиска в Ай-ОСе 26, которую он назвал «Стой, я лучше знаю»",
            "date_published": "2026-02-18T08:51:51+05:00",
            "date_modified": "2026-02-18T08:51:38+05:00",
            "tags": [
                "Айфон",
                "пользовательский интерфейс",
                "привычка"
            ],
            "_date_published_rfc2822": "Wed, 18 Feb 2026 08:51:51 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6662",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6657",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/standard-permissions-ui\/",
            "title": "Стандартное место для прав сайта или приложения",
            "content_html": "<p>Сайты и приложения бесят своими просьбами дать права на то и сё. В идеале бы запретить им это спрашивать вообще: если я захочу, я сам дам в настройке, а по умолчанию — нет, тебе нельзя знать моё положение, слать мне уведомления, использовать камеру и всё остальное. Проблема в том, что если так постановить, то большинство пользователей никогда не разберутся, как это включить, когда им это нужно, и они будут думать, что программа не работает.<\/p>\n<p>В результате используется такое решение. Когда сайт или приложение первый раз пытаются получить доступ к чему-то запретному, система спрашивает разрешения у пользователя. Таким образом, пользователю не приходится самому искать, где это включить. С другой стороны, если пользователь отказал, то второго шанса не будет, дальше уже если передумал — придётся искать. Таким образом, пользователю не приходится терпеть многочисленные переспрашивания.<\/p>\n<p>Конфликт в том, что мы с одной стороны хотим, чтобы пользователю было легко настроить то, что он сам хочет, а с другой — не бесить пользователя назойливостью сайта или приложения. Решение, которое используется — компромисс. Мы выбираем немножко бесить пользователя (один раз) и через это сделать настройку немножко проще (делаем её удобной тоже один раз).<\/p>\n<p>Предлагаю перейти от компромисса к нормальному решению. Для этого нужно обострить конфликт: никаких немножко и иногда; вместо этого мы хотим <i>никогда<\/i> не бесить пользователя и чтобы настройка <i>всегда<\/i> была лёгкой.<\/p>\n<p>Для этого вводим стандартное обозначения прав сайтов и приложений. Допустим, это будет щит, но это не важно. Вставляем его рядом с названием сайта в адресную строку всех браузеров:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/site-rights@2x.jpg\" width=\"1024\" height=\"384\" alt=\"\" \/>\n<\/div>\n<p>И куда-нибудь сюда во всех приложениях, но можно ещё дать способ показать внутри своего интерфейса тоже:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/app-rights@2x.jpg\" width=\"402\" height=\"874\" alt=\"\" \/>\n<\/div>\n<p>Даём АПИ, чтобы подписать в окне настройки разрешений каждое разрешение объяснением того, зачем оно нужно. Всё, теперь сайт или приложение могут и в своём интерфейсе сколько угодно говорить, мол, чтобы работали видеозвонки, мне нужно доступ к камере; и в самом интерфейсе настройки под разрешением уведомлений уверять, что спамить не будут. Но не могут сами ничего попросить!<\/p>\n",
            "summary": "Сайты и приложения бесят своими просьбами дать права на то и сё. В идеале бы запретить им это спрашивать вообще",
            "date_published": "2026-02-14T12:10:45+05:00",
            "date_modified": "2026-02-14T12:12:30+05:00",
            "tags": [
                "безопасность",
                "пользовательский интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/site-rights@2x.jpg",
            "_date_published_rfc2822": "Sat, 14 Feb 2026 12:10:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6657",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/site-rights@2x.jpg",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/app-rights@2x.jpg"
                ]
            }
        },
        {
            "id": "6653",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-course-frag-193\/",
            "title": "На интерфейсном курсе: зачем делать виджеты на Ай-ОСе непохожими на системные",
            "content_html": "<p>Ранее здесь выходило видео <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-course-frag-187\/\" class=\"nu\">«<u>зачем делать виджеты на Ай-ОСе похожими на системные<\/u>»<\/a>. А это пример обратного, но тоже хороший. Комментирую его. 4 минуты:<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/Oos6g8k6JKA?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/div>\n<p>Это фрагмент № 193 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 5 апреля 2024 года.<\/p>\n<p>Мы открыли запись на курс 14 марта — 12 апреля. Ещё несколько дней −30% от обычной цены из-за ранней записи.<\/p>\n<p><a href=\"https:\/\/bureau.ru\/courses\/ui-online\/\" class=\"button buy-button big-button\">Почитать о курсе<\/a><\/p>\n<p class=\"foot\">Программа, отзывы, запись<\/p>\n",
            "summary": "Ранее здесь выходило видео «зачем делать виджеты на Ай-ОСе похожими на системные». А это пример обратного, но тоже хороший",
            "date_published": "2026-02-09T19:22:22+05:00",
            "date_modified": "2026-02-09T19:22:14+05:00",
            "tags": [
                "вёрстка",
                "видео",
                "пользовательский интерфейс",
                "студентам",
                "фрагменты курса ПИ"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-Oos6g8k6JKA-cover.jpg",
            "_date_published_rfc2822": "Mon, 09 Feb 2026 19:22:22 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6653",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-Oos6g8k6JKA-cover.jpg"
                ]
            }
        },
        {
            "id": "6606",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/design-vs-evolution\/",
            "title": "Вместо дизайна теперь эволюция",
            "content_html": "<p>В цифровых продуктах больше нет дизайна: ему на смену пришла эволюция.<\/p>\n<p>Когда я читал Ричарда Докинза об эволюции, мне запомнился пример про гортанный нерв жирафа. Нерв соединяет гортань с мозгом, но у жирафа он идёт вниз через всю длинную шею, огибает аорту и возвращается обратно наверх. Логично было бы соединить две точки в голове напрямую, однако жираф эволюционировал из вида с короткой шеей, где этот нерв уже огибал аорту. Когда шея росла, нерв просто растягивался.<\/p>\n<p>А вот другой пример, уже не из Докинза: Инстаграм. Это была хронологическая лента фотографий интересных тебе авторов. Потом вдруг приделали мессенджер, а посты перемешали как попало с рекламой и видео. Потом слизали со Снепчата сторис. Они никак не вязались с лентой, поэтому их воткнули сверху в виде кружочков, которые живут своей жизнью и управляются другими жестами. Затем в разные места повставляли видеотрансляции (это не то же, что просто видео), какое-то IGTV (это тоже другое), и слизанные с Тиктока рилсы (и это тоже другое). Рилсы поселили в отдельной вкладке с собственной палитрой управляющих жестов.<\/p>\n<p class=\"foot\">Компания «Мета», которой принадлежит Инстаграм, признана экстремистской и её деятельность запрещена в России, причём не за плохой дизайн, а за какие-то другие грехи<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/design-vs-evolution.jpg\" width=\"1714\" height=\"702\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Дизайн и эволюция<\/div>\n<\/div>\n<p>Когда-то продукты проектировали осмысленно: разделы организовывали в иерархию, функциям находили логичные места. Человек мог увидеть за продуктом систему: из каких частей он состоит, как организованы экраны, какие виды данных есть. Пользователи это не анализировали, но это помогало ориентироваться и давало чувство контроля.<\/p>\n<p>Сейчас так не делают. Вместо этого в продукте делают сотни случайных изменений, оставляя успешные и откатывая неудачные. В итоге логики в продукте не видит никто. Пользователи на всякий случай дублируют фотографии из ленты в сторис (потому что в ленте их никто не найдёт, и пользователи об этом знают). Рилсы, в свою очередь, сами как-то проникают в ленту (потому что многие не заходят в раздел рилсов, и разработчики об этом знают).<\/p>\n<p>Как жираф — беспорядочное месиво из нервов, кишок и костей, так и Инстаграм — каша из фич без логики, порядка и задумки. Ни там ни там не чувствуются руки Создателя, который бы внимательно продумал, как всё должно быть устроено.<\/p>\n<!--\ndesign-evolution-1.jpg\nДизайн\n\ndesign-evolution-2.jpg\nЭволюция\n--><p>Переход от дизайна к эволюции происходит в большинстве окружающих нас цифровых продуктов. Иногда это подаётся как развитие профессии дизайнера: нам говорят, что современный дизайнер должен тестировать гипотезы и анализировать метрики. Но эта работа не может быть развитием профессии дизайнера — это буквально антоним дизайна. Никто ничего не проектирует; вместо этого делаются случайные шаги, и закрепляются те, что оказались успешными.<\/p>\n<p>Называть оператора эволюции дизайнером, конечно, можно — в конце концов, термины могут менять свои значения. Но ведь для перебора вариантов и оценки их живучести человек не требуется в принципе: природа справлялась с этим за миллиарды лет до его появления. Кому-то внутренности человека кажутся более красивыми, чем внутренности Макбука — это дело вкуса. Но факт в том, что для создания внутренностей человека человек не понадобился.<\/p>\n",
            "summary": "В цифровых продуктах больше нет дизайна: ему на смену пришла эволюция",
            "date_published": "2026-02-06T00:48:22+05:00",
            "date_modified": "2026-02-09T18:23:47+05:00",
            "tags": [
                "дизайн",
                "дизайн продуктов",
                "пользовательский интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/design-vs-evolution.jpg",
            "_date_published_rfc2822": "Fri, 06 Feb 2026 00:48:22 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6606",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/design-vs-evolution.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4269,
    "_e2_ua_string": "Aegea 12.0a (v4269e)"
}