Комментарии 31
где же тёмная тема?
Не все используют темную тему.
Но кто то принципиально использует только тёмную тему!
А некоторые даже переключаются ?
Это на мой взгляд дело вкуса. Лично, никогда не мог привыкнуть к тёмной, всё равно не вычернишь все объекты, в интернет всё равно ходишь, программы какие-то имеют светлый и т д. Я понимаю что можно изголиться, и в браузер затемнитель принести, и прочее, но это всё полумеры, и скриншоты на картинках всё равно к вам придут, и прочий специализированный софт без тем. Бьёт по глазам переходы из темного в светлое постоянные. Я обычно в gamma panel приглушаю гамму, так что всё становится более контрастным но при этом не ярко-белым, а скорее как лист бумаги, и убираю яркость монитора, это на мои глаза идеально. Но повторюсь, по-моему очень индивидуально это всё.
Статья хорошая.
Но по мне сейчас есть концепты - одного модульное окно, нескольких экранов или вкладок, плюс парочка различных менюшек
в играх подчерпнуть другие решения также можно
Тогда уж Триумвират, а не тройственный союз. А в целом вышло здорово.
Вот эта вот возня с меню и тулбаром (да еще и увеличенным по высоте), абсолютно бессмысленна в инструменте разработчика. В студии уже сделали максимум возможного, поместили меню в заголовок окна, чтобы место не занимало на экране. Его все равно ни один опытный разработчик не открывает во время работы, не говоря уже о тулбарах, которые естественно все отключены. Максимум рабочего пространства для кода и сочетания клавиш на все используемые действия.
И, делая всё это, я опирался на то видение и использование продукта, которое удобно лично мне, под мой сложившийся стиль работы с Visual Studio. Не все UX-аналитики из Microsoft со мной согласятся, но такую цель я и не ставил.
Когда за дизайн берется программист
Иногда (не всегда конечно) получается лучше, чем у дизайнеров.
Иногда очень хорошо получается, когда вообще не думаешь о том как оно будет выглядеть, а задумываешься только над тем что именно ты хочешь показать. Что-то упрощаешь, от чего-то отказываешься, получаешь устраивающий тебя интерфейс, который кстати уже и работает.
Вот мне например было неважно, как должно выглядеть моё приложение Телесуфлёр. Когда получится готовый продукт, сразу прочувствовались проблемы и определился вектор развития.
Это так же логично, как думать над контентом презентации, а не застревать на вопросе "а какие же цвета должны быть на фоне всех слайдов" - последний вариант контрпродуктивен.
Да все равно там полно кнопочек и менюшек, которые нафиг не упали. Мне больше концепт из vscode нравится, когда ты просто вводишь имя команды, а она тебе подсказывает.
А ещё можно прикрутить к этому делу AI и пусть он подсказывает. Вот за примером можно warp терминал посмотреть. Если кнопок станет меньше, то и хитрая их компановка не понадобится.
Конечно тут можно развести рассуждение, что программисты, которым не нравится vscode, это ненастоящие программисты ? но дело в том, что в полноценном Vs у вас есть выбор – поиск там есть ровно такой же по командам, но и кнопки есть. А vscode предполагает, что вы нёрд, и на этом всё.
Мне больше концепт из vscode нравится, когда ты просто вводишь имя команды, а она тебе подсказывает.
Так оно в VS тоже есть: Ctrl-Q. Я меню пользуюсь исключительно редко.
Мне кажется, или вы придумали то, что уже придумано и называется Ribbon?
Посмотрите например тот же Autodesk Revit, "меню" которого ну очень похоже на ваши макеты, включая мини-справку во всплывайке с иллюстрациями результата операции и даже видео.
Не готов утверждать про Ribbon, но концепция очень напомнила другой (более знакомый мне) продукт Autodesk: Fusion 360. @kalirgumхочется выразить уважение за то, что вы в одно лицо взялись за такую задачу и получили результат. И, уверен, Fusion 360 вдохновит Вас на многие интересные идеи. Они правда не стоят на месте в вопросе UI в силу специфики продукта: это довольно сложный инструмент, но они позиционируют его на рынке "для всех", так что вынуждены выкручиваться.
Вот да, непонятно, чем придуманное автором отличается от ленты. Все описанное уже появилось в 2007 в ворде:
крупные кнопки с частыми командами
разный размер кнопок
контролы для частых действий
справка с картинками
Если думаете, что ничем не отличается, попробуйте разместить ленту вертикально, в левой части экрана. Или попробуйте в ленте, находясь на вкладке А, за один щелчок мыши вызвать команду из вкладки B. Ну или померьте площадь экрана, которая занимает лента вместе с меню.
В своем решении вы ничего про вертикальное расположение не говорите, кроме того, это не новая концепция, всего лишь направление лайоута поменять (естественно, конкретные решения могут к этому быть неприспособленными, но на саму идею это не влияет)
Или попробуйте в ленте, находясь на вкладке А, за один щелчок мыши вызвать команду из вкладки B.
А зачем? Ну и тогда уж ответьте, каким образом в вашем решении можно за один щелчок мыши вызвать команду из разных выпадающих меню?
Ну или померьте площадь экрана, которая занимает лента вместе с меню.
Детали реализации. А еще ее свернуть можно (как и ваше решение, если реализуете)
В общем, не вижу ничего принципиально нового в предлагаемом шаблоне. Если его не реализуют, вероятно, на то есть свои причины.
Давно интересует, почему так мало интереса к радиальным меню? В графических программах это активно используется, когда в начале проекта можешь подобрать необходимый тулсет, и за минимальное количество движений выбрать требуемый инструмент. Если для программиста эргономика - это горячие клавиши, то при активной работе с мышью или графическим планшетом эргономика - это минимизации движения мышью. И радиальное меню в этом плане вроде выигрывает. Все равно держать весь тулсет на виду - лишний шум.
Тут подойдет аксиома Эскобара
Интерфейс, построенный на базе «уникальных функций (команд уровня меню)» сделали в IBM в рамках https://en.wikipedia.org/wiki/IBM_Common_User_Access (далее — CUA) в 1987 году. Расцвета он достиг в продуктах Microsoft, где использовался вплоть до Windows Vista/MS Office 2007. Одной из самых важных идей, заложенных в такой интерфейс, была универсальность. Менеджер интерфейса (код, который отрисовывал и обрабатывал меню, тулбары и давал их редактировать) вообще ничего «не знал» о конкретных командах. Эта универсальность была действительно классной вещью. К сожалению, начиная года так с 2007, дизайнеры выкинули её на помойку, и я считаю это жуткой деградацией. Развивать GUI можно и оставаясь в рамках универсальности, хотя, конечно, тут надо много думать. Вместо этого пошла мода на интерфейсы, где всё приколочено гвоздями так, как понравится дизайнеру (да, действительно, кто такие эти ваши пользователи, чтобы иметь интерфейс, который нравится им…). Конечно, так проще, но баланс между лёгкостью обучения и лёгкостью использования (тоже важное понятие в UI) однозначно становится перекошен в сторону первого. Да и вообще, универсальность сама по себе большая ценность, т.е. её отсутствие потом где-нибудь да вылезет боком.
Попробую объяснить на одном примере из статьи. Идея визуально показывать layout'ы (вместо текстовых названий типа VS Classic, Eclipse-like, I am my mom's DB Architect, My Little Pony) на первый взгляд выглядит хорошей. Но.
Первое: чему нас учил CUA? Тому, что в меню должно быть то, с чем мы постоянно работаем. А если мы с чем то работаем редко, надо упихать это в диалог и повесить его на команду, заканчивающуюся на … (ellipsis). Это простое правило заставляет нас думать: а надо ли переключение лэйаутов вообще пихать в меню? В 99% кейсов юзер выбирает схему один раз в самом начале, и потом ничего не трогает. И ему не надо больше никогда мозолить глаза этим замечательным выбором. Ах да, у нас же мотивация — показать юзеру новые фичи, чтобы он ими пользовался. Ну так если юзер настолько тупой, что не догадается нажать GUI Layout… и посмотреть, что будет, он, чего доброго, не догадается и что выбор лэйаута нахрен отменит любые уже сделанные им настройки, входящие в понятие лэйаута. У всего ведь есть свои плюсы и минусы. К тому же, это пользователь студии, программист, он не может быть настолько тупым.
Второе: чему нас учил CUA? Тому, что команды должны быть универсальными, а если что-то никак не получается сделать в рамках универсальных команд, может это и не команда вовсе? Очевидно же, что layout это такой skin на минималках. У него есть название (в статье названий нет, там просто перечислены Layout preset 1..10, но в реальности они есть и их обычно называют в честь продуктов, где такой лэйаут использовался по умолчанию). У него есть описание. У него есть preview (а у команды — нет!). И у него есть (архитектурно) json или XML с имплементацией. Вот тут-то отсутствие универсальности и начнёт вылезать нам боком. Если бы у нас был диалог GUI Layout, то тогда…
Диалог GUI Layout мог бы, ничего не зная о конкретных лэйаутах, сходить в папку Layouts с файлами .layout и построить список, отобразив превьюшки. А это значит, что дизайнер лэйаутов мог бы работать независимо от программиста, тупо выдавая файлы, а не байндить каждый раз новый лэйаут к новой команде.
Появление нового лэйаута гарантированно ничего не сломает, если мы делаем адаптивный интерфейс (например, динамическое сокрытие малоиспользуемых команд).
Юзеры смогут скачивать файлы .layout, создавать свои и делиться ими с друзьями.
Если мы захотим сделать что-то действительно крутое, например предпросмотр лэйаута не картинкой, а в реале, как мы это сделаем? Если это диалог со списком больших картинок, представляющих лэйаут, можно при нажатии кнопки “Show me, how would it look” делать диалог сильно прозрачным, или свёрнутым вбок, а лэйаут применять, но не окончательно, а в режиме предпросмотра. Если это у нас команда в меню, как такое сделать? Добавлять в меню “Show me, how would it look”? А как юзер поймёт, что эта опция относится к лэйаутам?
Третье: чему нас учил CUA? Тому, что команды должны быть универсальными, и если мы имеем одинаковое поведение для некоторого числа команд, надо вводить новый тип команды (кнопка, выпадающий список, выпадающий список с вводом и т.п.). Допустим, мы решили, что всё-таки хотим засунуть выбор лэйаутов в меню вопреки всему вышенаписанному. Как это сделать? Разве не разумно было бы создать новый тип команды, представленной не иконкой, а большой картинкой? И тогда юзер не наводил бы курсор слева на Layout preset 7, одновременно кося глазом вправо на картинку, а наводил курсор сразу на картинку с подписью. И при этом видел бы для сравнения картинки других лэйаутов. А потом вот такой новый тип команды можно было бы использовать и для других вещей, где предпоказ был бы уместен.
В общем, лично я, по заветам отцов-основателей из IBM, стараюсь придерживаться в интерфейсах разумной универсальности, чего (как пользователь) желаю и всем остальным UI-разработчикам.
P.S. Большое спасибо за поднятую интересную тему.
@ImagineTables Большое спасибо Вам за конструктивное обсуждение! Действительно, Ваш подход к теме лэйаутов приложения более прогрессивен, чем предложенный мною
С креативом у меня не очень, потому в голову пришел только один вариант — тройственный союз.
Каскадная лента? Мне немного напоминает Ribbon Menu.
Очень надеюсь что подобный дизайн ни когда не появится в VS. Мне совершенно не понятно это стремление к тому чтоб делать огромные кнопки и убирать возможности вынести все необходимые миникнопки на верхнюю панель. Избавление от каскадных меню в которых так же как в дереве быстро можно найти то что нужно вместо того чтоб линейно просматривать миллион пунктов ни как не сгруппированных это вообще бред. И уж тем более убирать текстового меню и заменять его пиктограммами который потом гадай, а как блин тут изобразили слова Analyze, View, Project и т.д.
Так а где новый дизайн-то? :(
Добавить командную панель и вот вам и VS Code практически. Кажется проще в обратную сторону сделать и прикрутить в VS Code справку по командам.
На мой взгляд плитки - худшее, что случалось на десктопе. Начиная от проблем с умещения названий в оные и до отъедания пространства экрана, до собственно поиска нужных команд и клавиатурной навигации по всему этому ахтунгу. А уж если привинтили тени/градиент то и вовсе прощай глаза и процессор. Ещё и углы скруглить для полного счастья останется.
Das ist nicht moderne
Как Visual Studio могла бы выглядеть с новым меню: делюсь GUI-шаблоном