Previous Entry Share Next Entry
2016-01

gui development

меня довольно давно пинают написать ряд кроссплатформенного софта

вопрос общественности: писать гуи “в лоб”, под каждую платформу отдельно, или пытаться его генерировать из каких-то своих definition файлов?

третье решение “написать под одну платформу, портировать под другие” не вариант по очевидным причинам (время порта, когда софт уже привязался к особенностям чего-то, может быть астрономическим)

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

что еще я забыл? ах, да. можно было бы конечно под все платформы взять какой-нибудь GWT и браузер, но попытка сделать простенький редактор диаграмм на JS вызывает у меня лютую ненависть к браузеровендорам, т.к. эта область плохо покрыта всякими кроссплатформенными обертками – то есть, делать-то можно, но например векторная графика и локали это PITA.


  • 1
fi_mihej October 13th, 2010
wxWidgets, под нужный/используемый язык, можно еще заюзать. Как вариант.

wizzard0 October 13th, 2010
Их можно зумить и\или часто релэйаутить? (Плавно)

metaclass October 13th, 2010
А что ты такое сделать хочешь?
А то вообще зум и частый layout - это однозначно собственные гуишные компоненты под каждую платформу, самостоятельное рисование, итд.

wizzard0 October 13th, 2010
См. интерфейс PersonalBrain / yEd.

Редактор диаграмм с возможностью привязывать к ним аннотации и виджеты.

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

wizzard0 October 13th, 2010
Или, скорее, не yEd а Class Diagram из VS.

О, я внезапно вспомнил про Adobe AIR, но с нее тоже хрен спрыгнешь, если вдруг что.

grundik October 14th, 2010
Adobe AIR говно. Чисто моё впечатление от:
1. использования нескольких программ
2. разглядывания их исходников
3. чтения спеков на платформу в процессе 2

(Deleted comment)
wizzard0 October 13th, 2010
Ну чего, html5-capable очень даже унифицируются :)
Но инконсистенси много, да.

zeux October 13th, 2010
На мобильных платформах и на PC должен быть по-моему принципиально разный гуи, какая тут унификация...

fi_mihej October 13th, 2010
Можно: оно динамичное (рантаймовое). Только плавность анимации зума (плавность задания дискретных значений зума и ивентов перерисовки в процессе этого самого анимированного зума) придется обеспечивать ручками. Но в рамках wxWidgets API (кроссплатформенно то бишь).
layout там так же с динамичной привязкой и автоматическим, относительным размещением элементов (если делать зум окна - то оносительное расположение сохранится автоматом. Но когда такое не нужно - то можно и абсолютные значения задавать). Если надо на глазах изумленного юзера, сделать красивый плавный перелет кнопачкав из одной конфигурации их размещения - в совершенно другую - то снова таки надо будет ручками это писать (правда хз, на сколько оно будет сложно, учитывая особенность распределения элементов в wx). А если без анимации перелетов кнопачков - то не проблема: в рамках парадигмы.

blueher October 13th, 2010
В принципе с векторной графикой всё не так уж плохо если забить на IE младше 9-ки (или использовать для них Chrome Frame) - тогда довольно-таки кроссбраузерное решение.

А насчёт локалей не совсем понял что имелось в виду

blueher October 13th, 2010
Да, и ещё - раз тут назвали wxWidgets то сразу же вспоминается QT
У них кстати встроен WebKit что опять же даёт возможность тырить всякие красивости (и кривости, ага ;) ) прямо из web-страничек

wizzard0 October 13th, 2010
А кутэшные виджеты можно зумить и\или часто релэйаутить? (Плавно)

blueher October 13th, 2010
Честно говоря не в курсе, но как заметил metaclass - вряд ли под такую задачу ты найдёшь подходящий framework, во всех них zoom и layout это редкие и дорогостоящие операции by design

murkt October 13th, 2010
Можно

fi_mihej October 13th, 2010
Кстати, пользуясь случаем поплакаюсь в воздух: ну блин когда уже сделают wxQT, а то под Win - есть под Mac - есть, под GTK - есть, а под QT, до сих пор нету?!!111
Хотя вроде-как уже начали.

grundik October 14th, 2010
QT в винде выглядит абсолютно инородно.
На маке то же самое.

wizzard0 October 13th, 2010
> А насчёт локалей не совсем понял что имелось в виду

Например, "5,00 долл." или "$5.00", календари и прочая такая муть.

> если забить на IE младше 9-ки

В общем да... еще для VML/SVG был Raphael, а еще меня бесят дефолтные местами вылазящие поведения на даблклик и правый клик, когда надо контекстные меню и активация элементов, вместо выделения.

wizzard0 October 13th, 2010
и keyboard handling тоже в браузерах зело инконсистентный, да.

blueher October 13th, 2010
Согласен что и одно и другое делается для web applications негетеросексуально.
Но имхо если тебе не нужно что-то специфическое от машины на которой ты запускаешься (доступ к файлам, каким-то железякам) или уж очень суровая производительность - плюсы вебного приложения перевешивают его минусы.

metaclass October 13th, 2010
Вынести максимум функциональности в кроссплатформенный бэк-енд, а GUI писать таки отдельно под каждую платформу.
Qt можно было бы попытаться использовать, если не лезть в низкоуровневые дебри.

grundik October 14th, 2010
> Вынести максимум функциональности в кроссплатформенный бэк-енд, а GUI писать таки отдельно под каждую платформу.

Яростно плюсую.

justy_tylor October 13th, 2010
wxWidgets, Qt, возможно C#/Mono (не в курсе, как там сейчас с совместимостью по GUI библиотекам).
Однако. Если под линухи можно стилизировать тот же гуй, что сделан под винду, то для маков понадобятся переделки - там другая клавиатура, другая компоновка окон и другие ожидания пользователей.

wizzard0 October 13th, 2010
В общем да, переделки будут. Основная мысль понятна.

(Deleted comment)
wizzard0 October 13th, 2010
Хохохо. Оценил. Нуу.... Может быть. Если рисовка будет своя

ady_1981 October 13th, 2010
Swing не устраивает видимо?
Мой опыт говорит, что разрабатывать десктопную GUI гораздо проще и быстрее, чем вебную.

faceted_jacinth October 13th, 2010
Пиши клиента на Питоне + ткинтер. Он одинаково уродский везде, но работает причём дико быстро в смысле трудозатрат! Потом, если что, перепишешь.

grundik October 14th, 2010
Под каждую платформу - своего GUI-клиента, ибо принципы построения UI у каждой платформы свои.

Если UI довольно простой - то можно и один на всех.

  • 1
?

Log in

No account? Create an account