2012-05-07 2 views
3

Я выполняю проект в течение лета, который включает в себя полное переписывание большого приложения, которое будет более современным и совместимым с кросс-платформой. Он должен работать в Windows, OS X и iPad. IPad-сборка является приоритетом. Предпочтительно, что в будущем это будет довольно легко преобразовать в веб-приложение.Кросс-платформенный графический интерфейс на окнах/osx/ipad

Мой текущий план - сделать весь графический интерфейс в HTML/CSS/JS, используя Chrome Embedded Framework для визуализации страниц и обработки интерактивности. Таким образом, весь пользовательский интерфейс является кросс-платформой для всего, и мне просто нужно написать конкретный код платформы для его отображения. Это также означает, что если/когда я переношу его в Интернет, большая часть пользовательского интерфейса уже находится в совместимом с Интернетом формате. Остальная часть кода приложения должна быть в основном кросс-платформой, а просто чистым C++. Для iPad нет CEF, поэтому я рассматриваю возможность использования класса UIWebView для выполнения того же самого. Мне любопытно, что вы используете, используя HTML в качестве графического интерфейса на iPad.

Мои основные проблемы являются:

  • Performance - Я не знаю, что технические характеристики UIWebView являются, насколько использовать его для GUI идет. Будет много интерактивных диалогов и даже анимации. Я провел некоторое исследование того, как вы связываетесь с Objective-C из Javascript, и самый популярный метод (установка расположения документа на какой-то пользовательский URL, такой как MyApp: //, и извлечение сообщения из строки) кажется, что он будет очень медленным ,

  • Удобство использования - пользователи iOS используются для определенного уровня интерактивности (например, действительно плавные переходы, перетаскиваемые боковые панели, все быстро и отполировано). Я уверен, что могу сделать это в Windows/OS X, используя CEF, но не уверен в iPad.

Спасибо за ваше время!

ответ

0

Вы можете, конечно, использовать HTML5/CSS/JS GUI на iPad. Есть даже графические интерфейсы, которые помогут вам в этом. Я знаю это Enyo. Вы найдете еще много.

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

Для развертывания на устройствах iOS вы можете просто поместить GUI внутри UIWebView вручную, или вы можете использовать phonegap, который заботится о грязной работе для вас, а также дает вам возможность публиковать на Android и несколько другие мобильные платформы, кроме iOS, из тех же источников.

Для настольных версий вы можете оценить, могут ли одни и те же графические интерфейсы работать внутри встроенного окна браузера. Приложения Enyo, не зависящие от аппаратного обеспечения телефона/планшета, довольно хорошо работают внутри веб-браузера на рабочем столе, но я подозреваю, что пользователи могут найти странный графический интерфейс для использования на рабочем столе. Если вам нужно построить что-то более традиционное, я рекомендую Qt, если вам нужна мощность и лучший внешний вид & чувствую или FLTK, если вы хотите простоты. Обе платформы работают в Windows, OS X и Linux.

+0

Enyo выглядит довольно круто, спасибо за ссылку. Выглядит многообещающе, насколько HTML идет. Я не хочу использовать что-то тяжелое, как Qt, и FLTK выглядит уродливо. – phosphoer

1

Предполагаю, что вы используете Mac с последней версией XCode (иначе вы не сможете публиковать в App Store на Mac OS X или iOS) и на C++. Это в сторону, ваш лучший выбор будет использовать два разных инструментария. Я рекомендую WxWidgets для Windows & Mac OS X (он обеспечивает внешний вид & для обеих платформ) и стандартный набор инструментов iOS для iPad.

Проблема с использованием одного инструментария для обеих платформ заключается в том, насколько они несовместимы друг с другом. Для gui можно использовать HTML5/CSS3/Javascript, но вам нужно будет сделать три отдельных проекта (по одному для каждой платформы). Хотя я знаю, что есть инструментарий, который можно использовать для создания настольных приложений с использованием HTML/CSS, но я не думаю, что он совместим с мобильными устройствами.

Если вы сейчас задаетесь вопросом, как компании делают приложения для iOS, Android, Windows, Mac OS X и даже Linux, у них есть пара разработчиков, которые являются специфичными для своей платформы. Таким образом, они будут группой разработчиков Windows, другой группой разработчиков Mac OS X и так далее. Иногда, если они используют кросс-платформенный инструментарий, такой как WxWidgets или Qt, различные группы разработчиков настольных компьютеров объединяются в одну группу разработки для настольных компьютеров.

Сделать рабочий стол & труднее, если в проекте работает только несколько человек.

1

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

0

Вы можете попробовать FireMonkey, который является коммерческим и поддерживается (в некоторой степени) компанией Embarcadero. Основные моменты - кросс-платформенная компиляция и отладка (!), Полностью аналогичное поведение в Mac OS и Windows (iOS работает, но обычно требуется другая форма), полностью векторизованные (!!) пользовательские интерфейсы, что означает, что они могут быть увеличены в/из также вращается в 3D, полная поддержка 3D (!!!) и анимации и эффекты, встроенные в библиотеку, даже если они не обязательно подходят для бизнес-приложений. Он дополняется очень хорошим и очень быстрым RAD.

Недостатки - относительно небольшое сообщество и некоторые недостатки и недостающие компоненты, все еще находящиеся в версии 2, такие как диалоги выбора папки, поддержка значков в трее и другие разные элементы. Вы можете искать вопросы на платформе. Вы можете написать для Firemonkey на C++ или в Delphi Object Pascal.

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