Кроссплатформенная разработка рабочего стола - PullRequest
3 голосов
/ 28 января 2011

Мне нужен совет по кроссплатформенному движку / фреймворку для разработки приложений для настольных ПК (Windows, MAC, Linux). Я вижу 3 варианта: Qt, Java и Adobe AIR.

  • Он должен быть прост в установке (время выполнения - недостаток, но я думаю, что обертка и / или установщик C ++ могут решить проблему).
  • Он должен быть быстрым и иметь богатый графический интерфейс (не 3D-игра, но определенно 2D-графика).
  • Среда разработки должна легко устанавливаться, а инструмент разработки пользовательского интерфейса должен иметь функцию перетаскивания для определения макета приложения.
  • Целевое приложение должно иметь собственный внешний вид. Профессиональная платная поддержка должна быть доступна.

Ответы [ 6 ]

13 голосов
/ 28 января 2011

Всем этим критериям отвечает Qt, за исключением «естественного внешнего вида».Не существует такой вещи, как кроссплатформенный фреймворк с нативным интерфейсом, особенно в OS X, где пользователи очень требовательны к «ощущению» приложений.Если вам действительно нужен внешний вид native , вам лучше всего написать общую инфраструктуру на C ++ или C #, а затем предоставить собственный GUI для каждой платформы (вы можете использовать MonoMac для обеспечениянативный интерфейс Cocoa с использованием C # вместо нативного Objective-C, если это ваша чашка чая.

Тем не менее, мы очень довольны Qt (и коммерческой поддержкой) для кроссплатформенной разработки.В частности, новый ускоренный OpenGL 2D Scene API делает анимированные интерфейсы довольно легкими.QtCreator - приличная среда разработки с поддержкой визуальных дизайнеров.

9 голосов
/ 28 января 2011

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

Он должен быть прост в установке (время выполнения - недостаток, но обертка C ++ и / или установщик могут решить эту проблему, я думаю).

Используя Java, вы можете положиться на Java Web Start , который, насколько мне известно, является лучшим решением для простых в использовании приложений: вы нажимаете ссылку в браузере, и приложение устанавливается в меню «Пуск» / на рабочем столе и запускается сразу после загрузки. Похоже, что Adobe AIR предлагает эквивалентную функцию, но, на мой взгляд, Java Web Start интегрирует, благодаря глубине своей экосистемы, гораздо более мощные решения для распространения (как, например, простая возможность генерировать файл .jnlp по требованию). ).

Он должен быть быстрым и иметь богатый графический интерфейс (не 3D-игра, но определенно 2D-графика).

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

Среда разработки должна легко устанавливаться, а инструмент разработки пользовательского интерфейса должен иметь функцию перетаскивания для определения макета приложения.

Eclipse является отраслевым стандартом де-факто для IDE и объединяет несколько построителей DnD IDE. Я бы просто взял в качестве примера недавно освобожденную Windows Builder Pro .

Целевое приложение должно иметь собственный внешний вид. Профессиональная платная поддержка должна быть доступна.

Что ж, Swing default look'n'feel действительно немного отличается от системного. однако, есть отличные сторонние, перечисленные здесь , например.

Наконец, несколько примеров:

  • Отличный Блог Palantir Technologies Перечислите некоторые выдающиеся приложения Swing
  • Gephi является довольно полным и эффективным средством просмотра графиков большого объема
  • Моя предыдущая работа (не рассматривайте это как замаскированное объявление, это всего лишь способ показать довольно солидный свинг).
5 голосов
/ 28 января 2011

Я бы не рекомендовал Java для разработки десктопов. Мне все равно, что говорят другие, Java все еще медленный по сравнению с родными языками, такими как C ++. Я бы пошел с Qt. Среда IDE имеет конструктор графического интерфейса и может быть интегрирована в Eclipse или Visual Studio.

Вот полезный ресурс: http://qt.nokia.com/products/

2 голосов
/ 30 марта 2011

Как ни странно, никто не упомянул Real Studio (теперь Xojo ), который отвечает всем вашим требованиям:

  • Он прост в установке и не требует отдельного времени выполнения
  • Он компилируется в собственный код, поэтому работает достаточно быстро
  • Он имеет хорошую библиотеку пользовательского интерфейса, которая является родной для каждой платформы
  • Среда IDE очень хороша с дизайнерами пользовательского интерфейса перетаскивания
  • Целевые приложения являются полностью нативными и используют собственные элементы управления
2 голосов
/ 28 января 2011

Взгляните на Appcelerator Titanium : в основном это веб-приложение в браузере.Вы можете иметь все что угодно в графическом интерфейсе, используя wen tech, но это выглядит как ап [р.

1 голос
/ 28 января 2011

Прежде всего стоит упомянуть http://wxwidgets.org/, один из самых популярных фреймворков X-platoform.В зависимости от сложности вашего приложения и требований к «нативности», кросс-платформенная среда может работать для вас.Приложения x-платформы, созданные на основе фреймворка, обычно кажутся немного «чужими», особенно на Mac, но работоспособными.Хороший пример: http://taskcoach.org/.

Если ваши пользователи терпимо относятся к объемам загружаемых файлов, огромным требованиям к памяти и небольшому количеству нестандартного внешнего вида, тогда просто Java, eclipse RCP или Платформа NetBeans может работать на вас.Вы можете сэкономить немало времени на разработку этого пути.

Однако я не знаю о кроссплатформенной среде, которая удовлетворяет всем вашим требованиям.

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

Отличный обзор процесса «Native X-Platform» можно найти в этом ответе в этом ответе Криса.Hanson .

...