Обновить

Комментарии 41

А как заставить, скажем Intellij IDEA использовать эту Substance? А то уж больно убого выглядит на винде)
Интересный факт: старые версии Netbeans использовали эту фичу, но потом её то ли выпилили, то ли сделали deprecated.

Интересно, почему?
Интересный факт: netbeans до сих пор так работает.
например добавьте
--laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel
в параметр
netbeans_default_options
( /etc/netbeans-7.0/netbeans.conf )
Что в сочетании с Oxygen GTK, например, позволяет придать ему более-менее нативный вид в KDE.
Для этого и использую :)
А вы не считаете, что за создание ненативно выглядящих десктопных приложений нужно запирать программиста в комнате с разнообразными обоями без еды и воды?
Нет уж.
Из еды только огурцы, из питья — молоко.
На одном молоке можно прожить много лет.
Это с огурцами-то? :)
Есть вариант, что вначале будут огурцы, а потом молоко или наоборот, это смотря ещё в каком порядке употреблять.
Зачем вы так с разработчиками Microsoft Office 2007-2010?
MS Office 2007 был «первой ласточкой». Теперь же Ribbon присутствует в большом количестве приложений и становится стандартом Look and Feel.
НЛО прилетело и опубликовало эту надпись здесь
Что такое веб-интерфейс? Это не приложение которое работает с сетью (сейчас даже дома у многих есть несколько компьютеров объединённых в сеть и работающих, скажем, с офисными документами или фильмотекой на общем сетевом диске).

Веб-интерфейс это интерфейс запускаемый внутри браузера, по сути, внутри виртуальной машины JavaScript, предоставляемой браузером. Такой подход имеет не только преимущества но и недостатки.

Тезис «Да и вообще десктопные приложения постепенно отмирают» мгновенно теряет смысл когда дело касается конкретики.

Отмирает ли десктопное офисное ПО по сравнению с Google Docs? Микрософт продолжает получать огромные прибыли.
Отмирают ли дектопные игры по сравнением с браузерными? Да ни в коем разе. Они просто другие.
Отмирают ли десктопные версии бухгалтерского и учётного ПО по сравнению с веб-версиями? Нет. Тот же 1С имеет версию для веб но её не больно-то покупают.

Тысячу раз да.
Очень утомляет, когда приложения выглядят по-разному.
Унификация интерфейса придумана была для уменьшения утомляемости, но всё равно находятся уникумы, восстающие против эргономичности в интерфейсах.
К сожалению, тут вопрос больше не к разработчикам приложений, а к разработчикам swing. Он изначально задумывался как ненативно выглядящий. И «нативные» темы всё же немного отличаются от того, как реально выглядят другие приложения в ОС. И если в случае с Windows ещё терпимо, то GTKLookAndFeel — то ещё глючное тормозное убожество. И сколько бы они не подгоняли тему, рендерер шрифтов так и остаётся велосипедным. Он мало того, что просто отличатся, так по мне ещё и во много раз хуже оригинальных рендереров (особенно, в Linux).

Потому SWT…
К сожалению, тут вопрос больше не к разработчикам приложений, а к разработчикам swing. Он изначально задумывался как ненативно выглядящий. И «нативные» темы всё же немного отличаются от того, как реально выглядят другие приложения в ОС.
Он изначально задумывался, как набор lightweight-компонент, т.е. «нативно» относительно платформы запуска выглядеть никак не может. Зато обратный плюс — одинаково выглядит на всех системах.
Блин, я уже испугался что скины и до Java добрались, а оказалось всего лишь шкурки
А чем одно от другого отличается?
Ну Шкурки — безобидный набор байтов отождествляющий внешний вид ПО
Скины — вполне себе вещественный объект иногда способствующий пагубному влиянию на здоровье
Вообще говоря скины в Java слишком общее название, по такому заголовку можно подумать что вы нашли/написали универсальную реализацию механизма шкурок на Java. Просто стили для Swing компонентов, но ведь это не вся Java, из популярных гуев есть еще как минимум SWT, ну и JavaFX 2.0 финалка уже на подходе. Короче просто скины Swing'ового интерфейса, и они как бы давно не новость.
не просто скины а пример поддержки выбора скинов пользователями с минимальным изменением кода самого приложения.
А зачем это? Приложение должно выглядеть так, как выглядит операционная среда, под которой запущено приложение. Следовать ее стандартам и гайдлайнам. Зачем разукрашивать программу, как новогоднюю елку?
открыл органайзер, винамп, миранду, офис, тотал, лотус. Всё такое разное :(
Попробуйте Mac OS. Там жесткие требования к приложениям из App Store. Все в стиле OS X. Да и за пределами App Store не осталось почти программ для Mac, которые не имели бы нативный Mac-интерфейс.
Я думаю, дело здесь в том, что нативные маковские виджеты выглядят гораздо более привлекательно, чем виндовые. ;)
Вообще все касается специфики апликации. Если мы разрабатываем рабочую среду, то да, нативный лук будет привычнее. А если же это, скажем, игра?

Кроме того, каждый день мы используем огровное количество сайтов, которые имеют совершенно разный дизайн и лук. И нас это не смущает…
К играм гайдлайны не относятся. И статья эта тоже к играм не относится. Игры совершенно иной класс программ, к которым предъявляются иные UI/UX-требования.
А зачем это? Приложение должно выглядеть так, как выглядит операционная среда, под которой запущено приложение. Следовать ее стандартам и гайдлайнам.
А если это, например, java-приложение? Как оно может выглядеть по стандартам и гайдлайнам ОС как раз без того или иного laf?
В случае с Mac OS — используя Cocoa-биндинги для Java. В случае с Windows — winapi-биндинги. И использовать эти биндинги не просто чтобы создать окно, а там уже рисовать с помощью того же GDI, а законно использовать визуальные компоненты, предоставляемые операционной системой.
в конце статьи есть скриншоты MS Office. Все версии имеют разное оформление не совпадающее со стандартными контролами Windows.

Тезис об обязательном сходстве интерфейса с системным оформлением является неоднозначным. Например, такая крупная контора как Microsoft ему не следует.

В любом случае, если нет желания позволять пользователям самим выбирать скины, то можно этого и не делать. Если есть, то добавить поддержку скинов несложно (см. пример в статье).
Используя оконные оформления, основанные на графике, вы отказываетесь от возможности использования нативных компонентов операционной системы. Во многих операционных системах катомизируются методы работы с интерфейсом для пользователей и изменения отражаются во всех приложениях, работающих на нативном интерфейсе. Тогда как графические оформления не могут реагировать на апдейты операционной системы и в меньшей мере на кастомизацию. Я не встречал программы с ненативным интерфейсом в Mac OS, которые мне приятно было использовать (кроме PhpStorm, который держится за счет полной встроенной кастомизации всех функций и отображения).

Кроссплатформенные оконные оформления, основанные на нанесении графики — это скорее какой-то костыль для кроссплатформенных OpenSource/Freeware-проектов. Мало кто купит ненативную программу для Mac OS X. Не знаю как в Windows с этим, правда.
В таком случае это просто частное мнение.

Повторюсь, крупные корпорации не поддерживают тезис о необходимости «нативного» внешнего вида.

Тот же Apple поставляет Windows-версии своей продукции (Сафари, QuickTime) не учитывая рекомендации Microsoft по оформлению.

Повторюсь

В любом случае, если нет желания позволять пользователям самим выбирать скины, то можно этого и не делать. Если есть, то добавить поддержку скинов несложно (см. пример в статье).
Версию про биндинги итд я уже понял, да, но всё же речь о swing) Если отвлечься от темы статьи, то да, можно тот же SWT использовать, но это не всем подходит. Или даже AWT вполне себе «нативно» рисует GUI, только печально и убого всё полчается почему-то.
Можно на SWT, можно на QT Jambi, можно на JavaFX. Много на чём можно. Но если приложение уже написано на Swing то добавить поддержку скинов очень просто.
SWT?
можно переопределять стили?
вместе с исходным кодом на сайте Substance можно скачать и документацию. Делание собственных скинов это нетривиальная задача.
В свингах конечно всё это хорошо и давно известно, но свинги то сами по себе беда :(
я сейчас пишу в Eclipse RCP и вот там бы laf пригодился бы (хотя с другой стороны когда приложение выглядит нативно), но просто я на убунте поставил хорошенькую тему, и весь интерфейс заточен под эту тему. Выглядит классно, НО в винде это просто УГ :D
Жду когда добавят поддержку кастомизации интерфейса в RCР с помощью Css (вроде такое в вебе вычитал).
Если сделаете ещё статью будет отлично
в e4 будет css-кастомизация, Вы правы.
Люблю эту библиотеку. А холивар на тему должно ли приложение выглядеть нативно для системы или нет будет вечным. Если сегодня любая система позволяет менять свой скин то что говорить о приложениях. Пусть пользователи выбирают. Нужно просто дать им такую возможность. Кому-то это понравится, а кому-то нет. Если такая функция есть то пользователю не на кого будет злится если что-то будет выглядеть как-то не так.
Не любая. Некоторые операционные системы бережно относятся к пользователям. Такие, как Mac OS X, например.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации