Pull to refresh

Comments 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.
UFO just landed and posted this here
Что такое веб-интерфейс? Это не приложение которое работает с сетью (сейчас даже дома у многих есть несколько компьютеров объединённых в сеть и работающих, скажем, с офисными документами или фильмотекой на общем сетевом диске).

Веб-интерфейс это интерфейс запускаемый внутри браузера, по сути, внутри виртуальной машины 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 то добавить поддержку скинов очень просто.
вместе с исходным кодом на сайте Substance можно скачать и документацию. Делание собственных скинов это нетривиальная задача.
В свингах конечно всё это хорошо и давно известно, но свинги то сами по себе беда :(
я сейчас пишу в Eclipse RCP и вот там бы laf пригодился бы (хотя с другой стороны когда приложение выглядит нативно), но просто я на убунте поставил хорошенькую тему, и весь интерфейс заточен под эту тему. Выглядит классно, НО в винде это просто УГ :D
Жду когда добавят поддержку кастомизации интерфейса в RCР с помощью Css (вроде такое в вебе вычитал).
Если сделаете ещё статью будет отлично
в e4 будет css-кастомизация, Вы правы.
Люблю эту библиотеку. А холивар на тему должно ли приложение выглядеть нативно для системы или нет будет вечным. Если сегодня любая система позволяет менять свой скин то что говорить о приложениях. Пусть пользователи выбирают. Нужно просто дать им такую возможность. Кому-то это понравится, а кому-то нет. Если такая функция есть то пользователю не на кого будет злится если что-то будет выглядеть как-то не так.
Не любая. Некоторые операционные системы бережно относятся к пользователям. Такие, как Mac OS X, например.
Sign up to leave a comment.

Articles