2010-06-23 5 views
6

Я развиваюсь в Java Swing некоторое время, и я начинаю ощущать, что настольные приложения на основе Swing кажутся немного устаревшими и утомительными для разработки.Сохранение навыков графического интерфейса пользователя

Я вижу новые приложения, которые выглядят очень гладкими и современными, например TweetDeck и Synthesia (игра на фортепиано). Несмотря на мудрость в Haase & Guy's «Filthy Rich Clients», я думаю, что писать приложения, подобные этим в Swing, было бы довольно сложной задачей.

Предполагая, что настольные приложения не будут полностью исчезать в течение следующих 5 лет (или что разделение между сетью и рабочим столом станет плавным), какие языки и технологии пользовательского интерфейса должны разрабатываться разработчиками перед началом работы ? Какая следующая большая вещь?

+3

Действительно классные интерфейсы, как правило, являются результатом талантливого кодера. Синтеза, например, просто закодирована в OpenGL и C. Я считаю Swing очень RAD по сравнению со многими другими графическими интерфейсами. –

+0

@disown +1 Можно сделать приятный дизайн с Swing, и еще приятнее использовать пользовательскую производную Synth в качестве стандартного laf (если бы все классы Synth были общедоступными, а не дружественными, было бы еще проще ... гм) , Делает работу, конечно, но тогда чего нет? – Taisin

ответ

0

Всегда найдутся разработчики OpenGL/Direct3D, но это может быть еще хуже, чем вы говорите.

На стороне Windows доступны WPF и Windows Forms.

На Mac/iOS Какао - это путь.

В Linux есть несколько опций, таких как GTK или QT.

Возможно, вы просто захотите укусить пулю и изучить HTML5/JavaScript. Я сомневаюсь, что скоро уйдет.

+0

«Всегда» - это действительно * долгое время! Я помню, как люди говорили, что в дни панккарда, о вещах, над которыми мы сейчас смеемся. Будучи программистом, который сделал свою долю OpenGL, я очень надеюсь, что почти 10 программистов OpenGL все еще существуют за 10 лет. С 3D-ускорением, доступным в браузере, даже более быстрыми Javascript JIT-двигателями и новыми аппаратными аппаратами на порядок быстрее, чем сегодня, какая причина для написания OpenGL? Это будет похоже на язык ассемблера в 2020 году. – Ken

+1

@ Ken: У разработчиков тоже будет необходимость. Аналогия неэффективна :-). –

+0

Марк: Несомненно, но исчезающе малая их часть, и только для очень конкретных задач. Я не вижу, как это делает аналогию неэффективной. – Ken

2

Microsoft's WPF, вероятно, является одной из новейших, самых крутых технологий.

Это позволяет вам значительно улучшить интерфейс GUI.

Вы также должны изучить некоторые из продуктов Microsoft's Expression. Они позволяют вам добавить дополнительную факел в свои графические интерфейсы.

+1

Я согласен с WPF. Построение настольных приложений обычно было чем-то трудным на любом языке, но я просто шокирован тем, насколько это легко в наши дни, особенно с Visual Studio 2010. – buckbova

1

Я не уверен, что в разработке пользовательского интерфейса рабочего стола есть «следующая большая вещь». Во всяком случае, «следующая большая вещь» - это мультитач-интерфейс, популярный планшет и смартфоны. Учитывая это, я думаю, что было бы разумно научиться создавать мультитач-пользовательские интерфейсы, загрузив sdk для мобильного телефона или планшета, который поддерживает мультитач.

1

Если вам нравится Свинг, взгляните на Google GWT.
Это как Swing для Интернета, ну почти.

0

Предлагаю заглянуть в Flex. Гораздо интереснее разрабатывать, чем Swing, а b/c - это Flash, который он может запускать в браузере или на рабочем столе.

+1

Со всеми спорами относительно платформы Adobe я бы избегал этого для новых проектов. –

+0

Swing может запускаться в апплете или на рабочем столе, если у вас установлен правильный плагин/время выполнения (т. Е. Такое же условие для Flex). – Ken

0

Java все еще работает нормально. Вы просто заменяете стандартные элементы управления изображениями и используете состояния изображения, чтобы изменить внешний вид мыши и щелчков мыши.

0

Я бы также предложил WPF в качестве еще одного интерфейса пользовательского интерфейса, чтобы получить под вашим поясом, потому что он действительно предоставляет некоторые довольно мощные пользовательские интерфейсы в настольных приложениях (и большинство из того, что может быть в WPF, можно перевести на Silverlight для webapps).

На обратной стороне вместо того, чтобы искать новый язык или технологию нового интерфейса, я думаю, что вам лучше работать с интерфейсом пользователя с точки зрения удобства использования и отслеживать тенденции, которые в настоящее время создают волны.

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

Вместо того, чтобы предлагать варианты в современном мире, где мы постоянно принимаем решения, цель этого нового пользовательского интерфейса заключается в том, чтобы паниковать счастливый путь. Если пользователь решает, что хочет сделать что-то другое, они могут, но пользовательский интерфейс заставит пользователя немного приложить усилия и прочитать мелкий шрифт.

Еще один пример - вспышка, выделяющая недавнее изменение, сделанное человеком (это делает, но я забываю термин, используемый для описания этого эффекта) при выходе на сайт.

Наконец, это один из моих фаворитов - переход от административного/пользовательского вида (также в основном в сфере веб-приложения) к специальному редактору WYSIWYG ... Flickr - яркий пример этого, где вы можете изменить титры на картинке, нажав на текущую подпись и отредактировать ее встроенную, без необходимости переходить к отдельному администратору, чтобы редактировать эти значения.

Есть ли кто-нибудь, кто видит такие интересные и новые тенденции?

0

Вы программировали в Swing некоторое время, и вы только начали чувствовать, что он выглядит устаревшим? :)

Качели выглядят как дерьмо, независимо от того, что делают люди с ухаживанием и чувством. На самом деле это поставило поставщиков настольных приложений Swing, таких как мы, в невыгодное положение из-за того, как выглядит блестящий и красивый материал WPF.

Если вы хотите остаться в сфере Java, я рекомендую вам попробовать SWT и JFace. Для этого вам не нужен Eclipse. Но это намного лучше выглядящая система с гораздо более приятным API.

Если вы хотите стать привлекательным, WPF - ваш друг. Вы ограничены Windows и не можете использовать Java (оба showstoppers для меня), но вы не можете игнорировать преимущества этой версии SDK, поскольку она настолько тесно связана с последними версиями Windows.

0

Я думаю, что в упомянутой книге вы упомянули, что большинство языков дают вам инструменты (или достаточно веревки, чтобы повесить себя;), чтобы выбросить основные уродливые элементы управления любой ОС, вы включены и рисуют любой пользовательский интерфейс, который вы хотите. Да, это утомительно для кожи или иначе вручную воспринимать визуальное представление элементов управления в пользовательском интерфейсе, но если это важно для вас, то вы сделаете это и, возможно, получите за это вознаграждение. Или подверглись критике за нарушение «стандартов интерфейса платформы».

Смежные вопросы